Efficient notch filters

Is there a way to produce an efficient notch filter with the bandpass
filter designer in Gnu Radio?

I’m seeing narrowband interfering signals that are in-band (with respect
to the bulk filtering in front
of the receiver), and I want to notch one or more of them into
oblivion. I’d previously used an
FFT filter, and set zeros in the bins where I wanted notches, but it
wasn’t very efficient.

Marcus L. wrote:

Is there a way to produce an efficient notch filter with the bandpass
filter designer in Gnu Radio?

You can subtract the output of a linear phase bandpass filter from the
original signal, as long as the original signal has been delayed by the
same number of taps as the filter before the subtraction.


Johnathan C.
Corgan Enterprises LLC
http://corganenterprises.com

Berndt Josef W. wrote:

For more info consult the documentation,


Johnathan C.
Corgan Enterprises LLC
http://corganenterprises.com

Marcus L. wrote:

Is there a way to produce an efficient notch filter with the bandpass
filter designer in Gnu Radio?
You can use a resonating IIR filter for that.
They are very efficient for building a notch or narrowband filters
(single out a single frequency)
The filter designers in gnuradio can not design it yet for you
unfortunatly.
(I am working on source which can design them.)

I do already have an optimized implementation of a resonating IIR
filter.
(Several of the taps are +1, -1 and 0)
See:
http://www.olifantasia.com/projects/gnuradio/mdvh/iir/

This filter only uses 2 multiplies to get very nice and narrow filters.

ALso note that the current standard multitap IIR implementation probably
has a bug, (See my mail with a fix for that in the mailinglist archive)

Greetings,
Martin

Martin D. schrieb:

ALso note that the current standard multitap IIR implementation probably has a bug, (See my mail with a fix for that in the mailinglist archive)

What would be the effect of this bug? I think this is used in a FFT
application I have. So, if it is a ‘serious’ problem, I’d
like to fix it… if it is a ‘less that serious’ problem, I can wait
until it filters out to the main set of code…

John C…

On Tuesday 31 July 2007 08:29:32 Johnathan C. wrote:

Marcus L. wrote:

Is there a way to produce an efficient notch filter with the bandpass
filter designer in Gnu Radio?

You can subtract the output of a linear phase bandpass filter from the
original signal, as long as the original signal has been delayed by the
same number of taps as the filter before the subtraction.

I use the band_reject filter option see below:

    elif options.filter_type == "nf":
            coeffs = gr.firdes.band_reject(
                    1.0,
                    sample_rate,
                    frequency - (bandwidth/2),
                    frequency + (bandwidth/2),
                    50,
                    gr.firdes.WIN_HANN)

For more info consult the documentation,

cheerio Berndt

John C. wrote:

Martin D. schrieb:

ALso note that the current standard multitap IIR implementation
probably has a bug, (See my mail with a fix for that in the
mailinglist archive)

What would be the effect of this bug? I think this is used in a FFT
application I have. So, if it is a ‘serious’ problem, I’d
like to fix it… if it is a ‘less that serious’ problem, I can wait
until it filters out to the main set of code…
It is hard to describe the seriousness of this bug.
See problem desciption and patch:
[Discuss-gnuradio] I think I solved a bug in gri_iir.h
and
http://www.olifantasia.com/pub/projects/gnuradio/mdvh/mypatches/gri_iir/

I think the order in which the shifted samples are processed is wrong.
This means that the filter response would be different from that
expected.
Since this code is not (much) used in the gnuradio examples it is hard
to come up with examples.
After my patch the code does work for me.

But at the moment I only use my own specialized optimized implementation
of a resonating IIR which is totaly unrelated to this implementation.
(Note this optimized version is not yet in svn (will be some day) and
can only do a resonating fir not any other)

Greetings,
Martin