Discussion:
[Discuss-gnuradio] Transition width
Thom L
2017-11-02 07:54:20 UTC
Permalink
Hello,
I can't understand what the "transition width" parameter represents when
filtering in gnuradio .. And how to adjust it effectively?
Thanks
Thomas
Sumit Kumar
2017-11-02 09:21:25 UTC
Permalink
Check this picture. Hope it helps

Loading Image...

If I am not wrong, a very small transition width will require more number
of filter taps.
Post by Thom L
Hello,
I can't understand what the "transition width" parameter represents when
filtering in gnuradio .. And how to adjust it effectively?
Thanks
Thomas
_______________________________________________
Discuss-gnuradio mailing list
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Ron Economos
2017-11-02 09:21:27 UTC
Permalink
It's the width of the filter response from the -6 dB point to the -60 dB
point. On analog radios, it's called the "shape factor" of the filter
and expressed as a ratio (a 500 Hz filter at -6 dB with a 2.0 shape
factor will be 1000 Hz wide at -60 dB).

Here's a small flow graph that illustrates the transition width.

http://www.w6rz.net/filter.grc

Here's the filter response with a transition width of 200 Hz.

sharp transition width

Here's the response with a transition width of 2000 Hz.


wide transition width

The smaller the transition width, the greater the number of taps
required to implement the filter. More taps requires more CPU cycles, so
be careful when setting the transition width. Too small a width can
create a filter that takes more than 100% of your CPU.

Ron
Post by Thom L
Hello,
I can't understand what the "transition width" parameter represents
when filtering in gnuradio .. And how to adjust it effectively?
Thanks
Thomas
Marcus Müller
2017-11-02 08:25:42 UTC
Permalink
Hi Thomas,

a filter usually has a passband, where signal goes through relatively
unattenuated, and a stop band, where signal is heavily
attenuated/suppressed.

The bandwidth between the edge of the pass band and the start of the
stop band is never 0 for filters that can be implemented in reality. We
call that bandwidth transition width.

How to "adjust it effectively" really depends on the *effect* you want
to achieve, so... we'll have to talk about the purpose of the filter!

Generally, the smaller the transition width compared to the sampling
rate, the longer the filter becomes, and thus, the more computationally
intensive[1]. But, that doesn't say anything about the sharpness of the
transition you *need*, as this is something that your specific use of
filtering dictates.

Best regards,

Marcus

[1]
https://dsp.stackexchange.com/questions/31066/how-many-taps-does-an-fir-filter-need
Post by Thom L
Hello,
I can't understand what the "transition width" parameter represents
when filtering in gnuradio .. And how to adjust it effectively?
Thanks
Thomas
_______________________________________________
Discuss-gnuradio mailing list
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Thom L
2017-11-02 09:30:15 UTC
Permalink
Hi Marcus,
Thank you for the detailed response!
This is very clear now
Best regards,
Thomas
Post by Marcus Müller
Hi Thomas,
a filter usually has a passband, where signal goes through relatively
unattenuated, and a stop band, where signal is heavily
attenuated/suppressed.
The bandwidth between the edge of the pass band and the start of the stop
band is never 0 for filters that can be implemented in reality. We call
that bandwidth transition width.
How to "adjust it effectively" really depends on the *effect* you want to
achieve, so... we'll have to talk about the purpose of the filter!
Generally, the smaller the transition width compared to the sampling rate,
the longer the filter becomes, and thus, the more computationally
intensive[1]. But, that doesn't say anything about the sharpness of the
transition you *need*, as this is something that your specific use of
filtering dictates.
Best regards,
Marcus
[1] https://dsp.stackexchange.com/questions/31066/how-many-taps-
does-an-fir-filter-need
Hello,
I can't understand what the "transition width" parameter represents when
filtering in gnuradio .. And how to adjust it effectively?
Thanks
Thomas
_______________________________________________
Thom L
2017-11-02 09:40:23 UTC
Permalink
Thanks to all for your fast, detailed and so clear answers! Now I think I'm
able to set correctly this parameter!
Thank you so much,
Best regards
Thomas
Post by Thom L
Hi Marcus,
Thank you for the detailed response!
This is very clear now
Best regards,
Thomas
Post by Marcus Müller
Hi Thomas,
a filter usually has a passband, where signal goes through relatively
unattenuated, and a stop band, where signal is heavily
attenuated/suppressed.
The bandwidth between the edge of the pass band and the start of the stop
band is never 0 for filters that can be implemented in reality. We call
that bandwidth transition width.
How to "adjust it effectively" really depends on the *effect* you want to
achieve, so... we'll have to talk about the purpose of the filter!
Generally, the smaller the transition width compared to the sampling
rate, the longer the filter becomes, and thus, the more computationally
intensive[1]. But, that doesn't say anything about the sharpness of the
transition you *need*, as this is something that your specific use of
filtering dictates.
Best regards,
Marcus
[1] https://dsp.stackexchange.com/questions/31066/how-many-taps-
does-an-fir-filter-need
Hello,
I can't understand what the "transition width" parameter represents when
filtering in gnuradio .. And how to adjust it effectively?
Thanks
Thomas
_______________________________________________
Kyeong Su Shin
2017-11-02 09:33:33 UTC
Permalink
Oops, sorry, I just realized that I did not post this to GNU Radio
Discussion List, and only sent this to the poster's e-mail. :)

Here's a yet another response that I sent.

Regards,
Kyeong Su Shin


---------- Forwarded message ----------
From: Kyeong Su Shin <***@uw.edu>
Date: Thu, Nov 2, 2017 at 2:07 AM
Subject: Re: [Discuss-gnuradio] Transition width
To: Thom L <***@gmail.com>


Hello Thom Lavarenne:



This is well covered on signal processing books, so I suggest digging for
them. (Wikipedia page, for a quick overview: https://en.
wikipedia.org/wiki/Transition_band )

Basically, real-world filters (e​specially FIR filters) do not look
rectangular; Instead, it looks like the figure attached (showing a simple
low-pass filter). It will start rejecting signal from freq 'f1', where the
'pass band' ends (roughly; not a precise definition). The performance of
the filter will keep improve until freq. 'f2', where the stop band starts
(again, roughly). Transition width is the difference between these two
frequencies. In case of the figure above, the cutoff frequency is 50kHz,
and the transition width is (60kHz - 50kHz) = 10kHz.

If you use a FIR filter and use a small transition width, processing speed
of the program will degrade, as more filter taps are needed. If you use a
large transition width, the speed of the program improves (less taps are
needed), but you have to deal with the lousy frequency response of the
filter. There are filters which can give you a small transition width
without increasing the computation complexity, but those filters often do
not have desired phase responses (you usually want to have a linear phase
response; non-linear phase response).

Low Pass Filter block on GNU Radio Companion will ask you to input these
parameters in frequency (Hertz), and generate a FIR filter using 'firdes'
function ( https://github.com/gnuradio/gnuradio/blob/master/gr-
filter/lib/firdes.cc ) . Other blocks (especially OOT blocks) may have
different implementations.

If you want to customize your filter for the best results, you can use GNU
Radio Filter Design Tool. (GNU Radio Companion - Tools - Filter Design
Tool).

Regards,
Kyeong Su Shin
Post by Thom L
Hello,
I can't understand what the "transition width" parameter represents when
filtering in gnuradio .. And how to adjust it effectively?
Thanks
Thomas
_______________________________________________
Discuss-gnuradio mailing list
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
Continue reading on narkive:
Loading...