# Width of comb filter teeth

Started by October 9, 2008
```Hi all.  Does anyone know how to change the width of a feedback comb
filter's teeth? From the general idea on wikipedia, it seems like it is
only possible to change the delays and the gain.

Thanks
```
```On Oct 9, 5:21&#2013266080;pm, "sauwen" <sauwen...@gmail.com> wrote:
> Hi all. &#2013266080;Does anyone know how to change the width of a feedback comb
> filter's teeth? From the general idea on wikipedia, it seems like it is
> only possible to change the delays and the gain.

when you have a feedback comb filter (or even a feed-forward comb
filter), try to imagine replacing the delay element, z^-N, with a
quantitatively different delay element, z^-1.  then with that
feedback, you have a simple LPF where, depending on the feedback gain,
you can get an idea of how wide this single tooth is.  now replace
z^-1 with z^-N and you will see that your tooth is scrunched by a
factor of 1/N and there are N of these teeth from -Nyquist to just
under +Nyquist.

r b-j
```
```>On Oct 9, 5:21=A0pm, "sauwen" <sauwen...@gmail.com> wrote:
>> Hi all. =A0Does anyone know how to change the width of a feedback comb
>> filter's teeth? From the general idea on wikipedia, it seems like it
is
>> only possible to change the delays and the gain.
>
>when you have a feedback comb filter (or even a feed-forward comb
>filter), try to imagine replacing the delay element, z^-N, with a
>quantitatively different delay element, z^-1.  then with that
>feedback, you have a simple LPF where, depending on the feedback gain,
>you can get an idea of how wide this single tooth is.  now replace
>z^-1 with z^-N and you will see that your tooth is scrunched by a
>factor of 1/N and there are N of these teeth from -Nyquist to just
>under +Nyquist.
>
>
>r b-j
>
Hmm thanks for the insight..!
```
```robert bristow-johnson wrote:
> On Oct 9, 5:21&#2013266080;pm, "sauwen" <sauwen...@gmail.com> wrote:
>
> > Hi all. &#2013266080;Does anyone know how to change the width of a feedback comb
> > filter's teeth? From the general idea on wikipedia, it seems like it is
> > only possible to change the delays and the gain.
>
> when you have a feedback comb filter (or even a feed-forward comb
> filter), try to imagine replacing the delay element, z^-N, with a
> quantitatively different delay element, z^-1. &#2013266080;then with that
> feedback, you have a simple LPF where, depending on the feedback gain,
> you can get an idea of how wide this single tooth is. &#2013266080;now replace
> z^-1 with z^-N and you will see that your tooth is scrunched by a
> factor of 1/N and there are N of these teeth from -Nyquist to just
> under +Nyquist.
>

But what to do if you have a comp filter where you are interested in N
notches and now want to sharpen those notches without increasing their
number? FIR filter sharpening to the rescue!

Matthew's original DSP Guru article is now published (well done

http://www.dsprelated.com/showabstract/62.php

Regards,
Andor
```
```On Fri, 10 Oct 2008 02:35:04 -0700 (PDT), Andor
<andor.bariska@gmail.com> wrote:

>robert bristow-johnson wrote:
>> On Oct 9, 5:21&#2013266080;pm, "sauwen" <sauwen...@gmail.com> wrote:
>>
>> > Hi all. &#2013266080;Does anyone know how to change the width of a feedback comb
>> > filter's teeth? From the general idea on wikipedia, it seems like it is
>> > only possible to change the delays and the gain.
>>
>> when you have a feedback comb filter (or even a feed-forward comb
>> filter), try to imagine replacing the delay element, z^-N, with a
>> quantitatively different delay element, z^-1. &#2013266080;then with that
>> feedback, you have a simple LPF where, depending on the feedback gain,
>> you can get an idea of how wide this single tooth is. &#2013266080;now replace
>> z^-1 with z^-N and you will see that your tooth is scrunched by a
>> factor of 1/N and there are N of these teeth from -Nyquist to just
>> under +Nyquist.
>>
>
>But what to do if you have a comp filter where you are interested in N
>notches and now want to sharpen those notches without increasing their
>number? FIR filter sharpening to the rescue!
>
>Matthew's original DSP Guru article is now published (well done
>
>http://www.dsprelated.com/showabstract/62.php
>
>Regards,
>Andor

Hi Andor,
That's a good point you're making here.
Two items:

[1] I don't think Donadio's "filter sharpening" article
was ever on the dspguru.com website.  It was, however,
in the IEEE Sig. Proc. Magazine's "DSP Tip & Tricks"
column in Sept. 2003 (pages 61-63).  A slightly expanded
version of that article later became Chapoter 1 of the
book "Streamlining Digital Signal Processing, a Tricks
the IEEE).  That PDF file, that you cited, is the
book's Chapter 1.

[2] In the first sentence of the last paragraph on
page 6 of the PDF file, the phrase "half-power" should
be changed to "half-amplitude".

Regards,
[-Rick-]
```
```On Oct 10, 5:35 am, Andor <andor.bari...@gmail.com> wrote:
> robert bristow-johnson wrote:
> > On Oct 9, 5:21 pm, "sauwen" <sauwen...@gmail.com> wrote:
>
> > > Hi all.  Does anyone know how to change the width of a feedback comb
> > > filter's teeth? From the general idea on wikipedia, it seems like it is
> > > only possible to change the delays and the gain.
>
> > when you have a feedback comb filter (or even a feed-forward comb
> > filter), try to imagine replacing the delay element, z^-N, with a
> > quantitatively different delay element, z^-1.  then with that
> > feedback, you have a simple LPF where, depending on the feedback gain,
> > you can get an idea of how wide this single tooth is.  now replace
> > z^-1 with z^-N and you will see that your tooth is scrunched by a
> > factor of 1/N and there are N of these teeth from -Nyquist to just
> > under +Nyquist.
>
> But what to do if you have a comb filter where you are interested in N
> notches and now want to sharpen those notches without increasing their
> number?

what i intended was that one would do it the same way as
"sharpening" (perhaps not necessarily the same thing as what you are
referring to) the simple one-pole LPF by increasing the feedback coef
to get closer to 1.  but replace the z^-1 in the LPF prototype with z^-
N to get a comb.  as the coef (which happens to be the pole value)
gets closer to 1, the LPF cutoff gets lower (or closer to the center
of the tooth).

LPF:

.-----.            .------.
x[n] --->| 1-p |--->(+)---->| z^-1 |----------> y[n]
'-----'     ^      '------'       |
|                     |
|      .-----.        |
'--<---|  p  |<-------'
'-----'

now ask, what happens when z^-1 is replaced by z^-N?

feedback comb:

.-----.            .------.
x[n] --->| 1-p |--->(+)---->| z^-N |----------> y[n]
'-----'     ^      '------'       |
|                     |
|      .-----.        |
'--<---|  p  |<-------'
'-----'

i think it's pretty straight-forward and you sharpen the teeth by
increasing p (but |p| must remain less than 1).  that's how you
sharpen the single tooth of the LPF.  this was the simple answer that
i wanted to point to.  if you consider that even a simple LPF is a
sorta comb filter with teeth at every multiple of 2*pi, whatever you
can do with a LPF to lower the cutoff frequency (the difference
between the bandedge and the middle of the tooth at 0 Hz) is what you
do with a comb filter (where z^-1 is replaced by z^-N) to decrease the
frequency difference between the bandedge and the frequency of the
middle of the tooth.  but the frequency scale is itself scaled by 1/N
so the teeth are at multiples of 2*pi/N and the distance between tooth
center and edge is reduced by the same factor of 1/N.

you could make sharper comb filters (with more rectangular teeth) by
starting with a 2nd order (or higher order) LPF prototype (with z^-1)
and replacing those unit delays with a longer delay, z^-N.  you could
use the same concepts of Butterworth filters to make the teeth of the
comb filter look like little brick-wall rectangles with sharp corners
at the bandedges.

so now i'm gonna look more closely at Matt's pdf that you linked to.
i sorta think that this might correspond to transforming the
feedforward (FIR) LPF to a corresponding comb.  but i dunno yet.

r b-j
```
```sauwen wrote:

> Hi all.  Does anyone know how to change the width of a feedback
> comb filter's teeth? From the general idea on wikipedia, it
> seems like it is only possible to change the delays and the
> gain.

http://en.wikipedia.org/wiki/Comb_filter shows an unnormalized comb
filter. Put a multiplier in series to keep the peaks at unit gain and
the alpha coefficient will control Q; this is the same structure as
Robert has shown.

But. That way shifts the strong dependence on alpha from peaks to
troughs, which were pretty insensitive in the unnormalized version,
as Wikipedia's graphs show. (Specifically, the minima will approach
zero instead of 1/2 as |alpha| increases.) If that's fine with you,
great. Otherwise describe in detail just what you wish the response
to be across different settings -- what shall move and what is to
stay put.

Martin

--
Why is 6 afraid of 7?
Because 7 8 9.
```