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

half-band filter

Altera_Forum
Honored Contributor II
2,242 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?

0 Kudos
5 Replies
Altera_Forum
Honored Contributor II
664 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.
0 Kudos
Altera_Forum
Honored Contributor II
664 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

0 Kudos
Altera_Forum
Honored Contributor II
664 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?

0 Kudos
Altera_Forum
Honored Contributor II
664 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?

0 Kudos
Altera_Forum
Honored Contributor II
664 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.
0 Kudos
Reply