discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] Halfband filter,etc.


From: Brian Padalino
Subject: Re: [Discuss-gnuradio] Halfband filter,etc.
Date: Wed, 29 Oct 2008 16:20:17 -0400

On Wed, Oct 29, 2008 at 4:14 PM, Sebastiaan Heunis <address@hidden> wrote:
> Hi people
>
> Can I please ask a question or two about the HBF?  So I know that it
> is has 31 taps and what the coefficients look like from reading a bit.
>  Is it just a lowpass decimation filter from Goodman and Carey's list?
>  How does it work?  Is it just like a standard FIR filter where the
> input gets convolved with the filter taps?  Is the decimation achieved
> because every second tap is 0?  I know that we receive an input value
> every 64e6/(decimation/2) from the CIC filter.  I know for a
> decimation of 16 the hb_strobe is supposed to be 4MHz.  I just don't
> know where the last clocking down by 2 is done.  I've seen this bit of
> Verilog:
>
> always @(posedge clock)
>     begin
>        start_d1 <= #1 start;
>        start_d2 <= #1 start_d1;
>        start_d3 <= #1 start_d2;
>        start_d4 <= #1 start_d3;
>        start_d5 <= #1 start_d4;
>        start_d6 <= #1 start_d5;
>        start_d7 <= #1 start_d6;
>        start_d8 <= #1 start_d7;
>        start_d9 <= #1 start_d8;
>        start_dA <= #1 start_d9;
>        start_dB <= #1 start_dA;
>        start_dC <= #1 start_dB;
>        start_dD <= #1 start_dC;
>     end // always @ (posedge clock)
>
>   reg    mult_en, mult_en_pre;
>   always @(posedge clock)
>     begin
>        mult_en_pre <= #1 phase!=8;
>        mult_en <= #1 mult_en_pre;
>     end
>
>   assign clear = start_d4; // was dC
>   wire   latch_result = start_d4; // was dC
>   assign strobe_out = start_d5; // was dD
>
> Can anyone please help?

Taken from here:

    http://www.dspguru.com/info/terms/filtterm/index2.htm

The excerpt:

"Half-band filter - a type of FIR filter where the transition region
is centered at one quarter of the sampling rate, or fs/4.
Specifically, the end of the passband and the beginning of the
stopband are equally spaced on either side of fs/4. Half-band filters
are often used in decimation filtering because (almost) half their
time domain coefficients are zero. This means, for example, you can
achieve the performance of an M-tap FIR filter while only paying the
computational price of (M+1)/2 + 1 multiplications per filter output
sample."

The decimation can occur at either the input or the output.  It's
basically taking 1 out of every 2 output samples.  Since you throw
away one entire output, you don't have to perform that convolution.
This in conjunction with every other tap being 0, allows for a very
efficient filter + decimation scheme.

Hope this helps.

Brian




reply via email to

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