FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
6224 Discussions

## half-band filter Honored Contributor II
1,838 Views

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 Honored Contributor II
260 Views

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. Honored Contributor II
260 Views

What is the value of n in the example http://www.dsprelated.com/showarticle/124.php? Besides, if there is only two polyphases {(0, 2, 4, 6), (1, 3, 5, 7)}, the filter output still needs to be the convolution of the input and the filter coeffs (not just pass through). Thanks Honored Contributor II
260 Views

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? Honored Contributor II
260 Views

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? Honored Contributor II
260 Views

--- 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. 