Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
12 years ago

half-band filter

I am trying to implement a half-band filter in Verilog. The questions are: 1. what is the definition for a half-band filter? Is it the same as what we have in traditional multi-rate DSP "P(z)+P(-z)=constant"? 2. Do we have another way to define it, that is, wp=ws=pi/2?

5 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    It is a FIR filter that have regular zero every other coeff (except the 3 centre taps) so it can be implemented with half mults. The central coeff can be designed as 2^n implying just pass through if the filter is split into 2 ployphases.

    frequency-wise its stopband starts from half of Nyquist.

    as to multirate it is separate issue. You can use halfband filter on same rate or use it to interpolate by 2(remove images) or decimate by 2 (remove any power beyond input Nyquist).

    DSPbuilder can do one for you at a click.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Should a half band filter satisfy P(z)+P(-z)=constant (or P(w)+P(w+pi)=constant) if P(z) is a half band filter? However, in the example http://www.dsprelated.com/showarticle/124.php, P(z)+P(-z) is almost zero at pi/2, which is much less than what the sum is at 0, pi, 2*pi. Is there a problem here?

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Should a half band filter satisfy P(z)+P(-z)=constant (or P(w)+P(w+pi)=constant) if P(z) is a half band filter? However, in the example http://www.dsprelated.com/showarticle/124.php, this sum is very small around pi/2 compared to its value at 0, pi, 2*pi. Besides, the value also alternates between positive and negative. Is there a problem here?

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    Should a half band filter satisfy P(z)+P(-z)=constant (or P(w)+P(w+pi)=constant) if P(z) is a half band filter? However, in the example http://www.dsprelated.com/showarticle/124.php, this sum is very small around pi/2 compared to its value at 0, pi, 2*pi. Besides, the value also alternates between positive and negative. Is there a problem here?

    --- Quote End ---

    The filter given in that example is this:

    h = [-8,0,27,0, -68,0,146,0,-281,0,499,0,-37,0,1353,0,-2161,0,3547,0,-6561,0,20727,32768,20727,0

    -6561,0,3547,0,-2161,0,1353,0,-37,0,499,0,-427,0,-68,0,27,0,-8]

    the passband ripple is about 1 dB and this too bad for a 45 taps (unless there is typing error by them or me)

    Otherwise it does cutoff at half Nyquist

    What are those (P) rules you mentioned and from where did you get them?

    If you have matlab you can use firnyquist function or firhalfband or even fir1 setting cutoff to .5 and odd filter

    It is also possible to design IIR halfband but this not that popular.