There is a trick for designing them using the Parks-McClellan program which is widely available. I have a Windows executable at ftp://ftp.mission-systems-inc.com/ called "halfband" which uses the Remez exchange algorithm for designing them specifically.
A "physical" description would be:
If's a FIR filter. There is an odd number of coefficients. There are 3 non-zero coefficients at the temporal center. Thereafter, in both directions, the coefficients alternate with zero values and non-zero values. The coefficient structure is sinc-like which is what you should expect of a lowpass filter. It is an even sequence in time; i.e. c(i)=c(-i)
An interesting way to analyze the frequency response is to separate the time response, i.e. the coefficients, by conceptually removing the center coefficient and adding in a constant term suitably aligned in time. The remaining coefficients are even in number and alternate zero values with non-zero/symmetric values.
One can immediately observe, with the zero valued coefficients that the sample rate can be halved. The filter actually repeats its amplitude response at the original fs/2. So, this filter "repeats" at fs/2 (but in an antisymmetric fashion): If the response at f=0 is 1.0 then the response at fs/2 is -1.0. It looks like a wiggly "square wave" in frequency.
Now, if the contribution of the center coefficient is added back in, this "lifts" the frequency response by a constant ... or, if you like, a "DC" term but in frequency of course. The appropriate value will lift the response so that the region around fs/2 varies around zero. And the repetition of this new filter is at fs.
These filters are very handy for doing efficient lowpass filtering needed for sample rate conversion by 1/2 as nearly half the coefficients are zero and need not be implemented at all.
Dear Raghuram Tr, Half-band filters have two important characteristics, the pass-band and stop-band ripples must be the same, and the pass-band-edge and stop-band-edge frequencies are equidistant from the half-band frequency pi/2.
From MathWorks@ (MATLAB)
N = 90; % Filter order must be even
d = fdesign.halfband('Type','Lowpass','N',N);
f = design(d,'window','Window','hamming','SystemObject',true);
One can verify that the passband/stopband ripples are the same
There is a trick for designing them using the Parks-McClellan program which is widely available. I have a Windows executable at ftp://ftp.mission-systems-inc.com/ called "halfband" which uses the Remez exchange algorithm for designing them specifically.
A "physical" description would be:
If's a FIR filter. There is an odd number of coefficients. There are 3 non-zero coefficients at the temporal center. Thereafter, in both directions, the coefficients alternate with zero values and non-zero values. The coefficient structure is sinc-like which is what you should expect of a lowpass filter. It is an even sequence in time; i.e. c(i)=c(-i)
An interesting way to analyze the frequency response is to separate the time response, i.e. the coefficients, by conceptually removing the center coefficient and adding in a constant term suitably aligned in time. The remaining coefficients are even in number and alternate zero values with non-zero/symmetric values.
One can immediately observe, with the zero valued coefficients that the sample rate can be halved. The filter actually repeats its amplitude response at the original fs/2. So, this filter "repeats" at fs/2 (but in an antisymmetric fashion): If the response at f=0 is 1.0 then the response at fs/2 is -1.0. It looks like a wiggly "square wave" in frequency.
Now, if the contribution of the center coefficient is added back in, this "lifts" the frequency response by a constant ... or, if you like, a "DC" term but in frequency of course. The appropriate value will lift the response so that the region around fs/2 varies around zero. And the repetition of this new filter is at fs.
These filters are very handy for doing efficient lowpass filtering needed for sample rate conversion by 1/2 as nearly half the coefficients are zero and need not be implemented at all.