I am trying to design the Blackman Window based FIR Low Pass Filter (as described in http://www.dspguide.com/CH17.PDF) for the IQ signal having sampling rate of 625 KHz and the input signal is FM with 10 KHz deviation and modulating signal 2 KHz CW. I generated the M = 171 coefficients using following steps:
1. Estimated the ideal LPF frequency response using the spectrum of the IQ signal to be filtered.
2. Performed inverse FFT of the ideal frequency response.
3. Carried out fftshift of the impulse response and extracted the real part.
4. Extracted the M Coefficients across the center of the ideal impulse response and normalized them by dividing with the maximum coefficient.
5. Multiplied the Coefficients with the blackman window.
6. These coefficients were used to filter the IQ signal.
Whenever the cut off frequency is 4 to 5 times of the actual desired frequency the spectrum of the IQ signal remains constant. Whenever the cut off frequency is reduced to the desired value, the magnitude of the signal spectrum increases.
What changes to be done, such that, irrespective of the cut off frequency the magnitude of the signal spectrum should remain constant.
Please help me.
Thanks in advance to all.
Hello Gaurav: I am trying to understand some details. In #1 did you estimate the LPF frequency response using both +ve and -ve part of the amplitude spectrum? If you use a symmetrical amplitude spectrum and the anti-symmetrical phase spectrum (unchanged), then with inverse FFT, you should come out with all real series.
Thanks for response.
Yes, I have considered both +ve and -ve part of amplitude spectrum. I have got the real series after inverse FFT
Hello Gaurav: The figures on p299, CH17, show custom designed filter, and how to obtain the coefficients. But if your aim is to obtain a Blackman LPF, then why not start out with such a freq domain filter in Fig 17-1a, and then follow the steps? Then you will not have to do step#5. cheers
Basically, I was experimenting LPF design using custom design. So, that if I have to add a notch, I can combine it in a single filter rather than convolving the two filters, but observed increase in the magnitude spectrum on reducing the cut off frequency to the desired.
The matlab function fir2 does that for you. You need to expect that the sharper the cutoff the less efficient a filter is for same number of taps and same methodology. You don't need to think of I/Q but just a real filter for either I or Q.
I was trying to write the C++ program to read the signal from sound card, down converting it to IQ. Hence, looking for equivalent of fir2.
You can apply a large ifft with resolution of your choice then truncate either by selecting centre bins as you did or by decimating the whole bins to the size of your target filter. if blackman window is no good try other windows.
You haven't told us what is your target cutoff point, passband ripple, stopband attenuation.
I am doing 4096 pt FFT. Hence the resolution is 625000/4096. The cut off frequency is 25 KHz and the passband and stopband ripples were 0.1dB.