IIR comb notch or peak filter

`[num,den] = iircomb(n,bw)`

[num,den] = iircomb(n,bw,ab)

[num,den] = iircomb(...,'type')

`[num,den] = iircomb(n,bw)`

returns
a digital notching filter with order `n`

and with
the width of the filter notch at -3 dB set to `bw`

,
the filter bandwidth. The filter order must be a positive integer. `n`

also
defines the number of notches in the filter across the frequency range
from 0 to 2π — the number of notches equals `n`

+1.

For the notching filter, the transfer function takes the form

$$H(z)=b\frac{1-{z}^{-n}}{1-\alpha {z}^{-n}}$$

where *α* and *b* are
the positive scalars and *n* is the filter order
or the number of notches in the filter minus 1.

The quality factor (Q factor) q for the filter is related to
the filter bandwidth by *q* = *ω _{0}*/

`[num,den] = iircomb(n,bw,ab)`

returns a digital notching filter whose bandwidth, `bw`

,
is specified at a level of -`ab`

decibels. Including
the optional input argument `ab`

lets you specify
the magnitude response bandwidth at a level that is not the default
-3 dB point, such as -6 dB or 0 dB.

`[num,den] = iircomb(...,'type')`

returns
a digital filter of the specified type. The input argument `type`

can
be either

`'notch'`

to design an IIR notch filter. Notch filters attenuate the response at the specified frequencies. This is the default type. When you omit the`type`

input argument,`iircomb`

returns a notch filter.`'peak'`

to design an IIR peaking filter. Peaking filters boost the signal at the specified frequencies.

The transfer function for peaking filters is

$$H(z)=b\frac{1-{z}^{-n}}{1+a{z}^{-n}}$$

Design and plot an IIR notch filter with 11 notches (equal to
filter order plus 1) that removes a 60 Hz tone (`f0`

)
from a signal at 600 Hz (`fs`

). For this example,
set the Q factor for the filter to 35 and use it to specify the filter
bandwidth.

fs = 600; fo = 60; q = 35; bw = (fo/(fs/2))/q; [b,a] = iircomb(fs/fo,bw,'notch'); % Note type flag 'notch' fvtool(b,a);

Using the Filter Visualization Tool (FVTool) generates the following plot showing the filter notches. Note the notches are evenly spaced and one falls at exactly 60 Hz.

`firgr`

| `iirnotch`

| `iirparameq`

| `iirpeak`

Was this topic helpful?