discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] USRP2 Halfband filter coefficients help


From: ILKYOUNG KWOUN
Subject: Re: [Discuss-gnuradio] USRP2 Halfband filter coefficients help
Date: Thu, 12 Nov 2009 09:30:56 +0900

Thank you folks,
 
Jeff, thank you for your snapshot. I modified Firas' MATLAB m file(http://www.nabble.com/file/8506/usrpddc.m) to get similar picture.  :-)
 
Sebastiaan and Matt, thank you for your kind explanation. Now, I get it clearly.  :-)
 
Regards,
 
ILKYOUNG.


 
2009/11/12 Matt Ettus <address@hidden>

I will explain the RX side, the TX side is basically the same.

small_hb_dec is the short filter which works at the higher rate.  There are 2 of them instantiated, one for I and one for Q.  It has 7 taps. One of those taps is the center tap which only requires a shift and not a multiply, and 2 of those taps are zeros.  That leaves 4 taps.  The taps are symmetric, which leaves 2 multiplies per output.  Since we have at least 2 cycles to produce each output, we can use a single multiplier.

hb_dec is 2nd halfband filter and it works at the lower rate.  There are 2 of them instantiated, one for I and one for Q.  It has 31 taps.  One of those taps is the center tap which only requires a shift and not a multiply, and half of the remainder are zeros.  That leaves 16 taps. They are symmetric, so that means we need to do 8 multiplies to produce each output.  There are at least 4 cycles to produce each output, so we need to do 2 multiplies at a time.

One of those multipliers does the "outer" coefficients, meaning the ones at the very beginning and end of the impulse response, and one does the "inner" coefficients, meaning the ones around the center of the impulse response.  This division is purely an implementation choice, and does not affect the output.  I could have put the odd ones on one mult and the even ones on the other, or any other split you could imagine.  It doesn't matter.

Matt



Jeff Brower wrote:
Ilkyoung Kwoun-

Thank you for your advice. Actually I am aware of basic characteristics of
half band filter. It is very well explained in Rick Ryon's "Understanding
Digital Signal Processing (2nd Ed.)" (
http://www.amazon.com/Understanding-Digital-Signal-Processing-2nd/dp/0131089897/ref=sr_1_1?ie=UTF8&s=books&qid=1257900094&sr=8-1
 )

The thing I do not have any clue is the 'inner' and 'outer' coefficient
things in FIR filter. I guess this is something related to the practical
implementation issue rather than the fundamental concept. I did a simple
googling yesterday and found a paper. (
http://ce.et.tudelft.nl/publicationfiles/1090_509_shahbahrami_prorisc2005.pdf)
I hope I can find a way to get started.  :-)

Here is a Hypersignal log-magnitude plot showing the frequency response of the two halfband filters (31-tap in blue,
7-tap in red):

 http://www.signalogic.com/images/gnu_radio_halfband_filters.jpg

In the plots I used an arbitrary sampling rate of 25 MHz -- don't know what you're using.  Note that both filters have
an approx -6 dB point at Fs/4 as would be expected due to halfband symmetry properties.

As for "inner and outer" mention in the Verilog code, I might guess that refers to 2 multiplies needed when filtering
a complex signal.  As for why there are two (2) filters, one is used for higher rate up/down conversions and the other
for lower rate.  Firas' documentation has some information on this... also here is Q&A exchange between Firas and Matt
that might help you out:

 http://old.nabble.com/Some-USRP2-Questions-td20729711.html

-Jeff

2009/11/10 Sebastiaan Heunis <address@hidden>

Hi

I think Brian is just referring to the fact that you can see that the
HBFs are implemented as symmetric FIR filters (the coefficients).  A
HBF is just a special filter that is designed so that the cutoff
frequency will always be at fs/2, so if you filter with it and
decimate by 2 afterwards (which is why you would use an HBF), you
don't get aliasing.  Also, the decimation in the CIC filters can be
set to a wide range of values, so the HBF will always have to cut at
fs/2 regardless of the decimation in the CIC.  From what I've read,
Goodman and Carey came up with them so you can probably look for some
papers if you're interested.

Sebastiaan

--
Sebastiaan Heunis
Radar Remote Sensing Group, University of Cape Town, South Africa
Tel:  +27 72 950 9370

_______________________________________________
Discuss-gnuradio mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio




_______________________________________________
Discuss-gnuradio mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio



reply via email to

[Prev in Thread] Current Thread [Next in Thread]