05-15-2014 06:25 AM
I have an audio signal which I'm trying to analyze. One of the steps needed is a bandpass filter, which returns results that (in my opinion) don't make any sense. Here is what I do:
- FFT signal and identify frequency peaks (lets say I identify a peak at 8000 Hz)
- Configure a bandpass filter for the input signal (Equi-Ripple-Bandpass-VI).
- I chose the passband to be 8000 ± 5 Hz
- Low blocking freq. is 7980, High blocking freq. is 8020
- Sample frequency 40 kHz
To check if my configuration was correct, I FFT'd the filtered signal. I'd expect only one peak at 8000 Hz. However, all the peaks from the original signal are there too. It seems like not much has changed, except the amplitude has been shifted.
Am I missing something?
05-15-2014 06:50 AM
05-15-2014 07:41 AM
I created a simplified demo VI:
I'd expect the FFT after the filter (bottom right graph) to only show the peak at 10272 Hz, as I limit the passband to ±5 Hz around the peak.
05-15-2014 07:45 AM
05-15-2014 07:54 AM
It shouldn't filter around 10 kHz though...
05-15-2014 08:08 AM
Hi freijon,
maybe your filter frequency settings are too "strict"? Using a wider band works fine:
Combining a passing band of 10Hz with a stopband of 30Hz needs a very high-order bandpass. Maybe you reached some limits in that bandpass function?
05-15-2014 08:43 AM - edited 05-15-2014 08:44 AM
Hey GerdW,
Maybe I don't understand the bandpass filter correctly, I assumed that the filter works as follows:
0 < f_block_low < f_pass_low < f_pass_high < f_block_high < infinity
- The frequencies below f_block_low are being blocked (in my example: (0...10252)
- The frequencies between f_pass_low and f_pass_high are being passed (in my example: (10267...10277)
- The frequencies above f_pass_high are being blocked (10272...)
So regarding your statement that my stopband is 30 Hz, I'd rather say its the entire frequency spectrum except for the passband. If thats not the case, then my assumptions have been wrong from the beginning.
05-15-2014 08:47 AM
Hi freijon,
i wanted to say: you have a "passband" of 10Hz, a "suppression band" of 30Hz width, and everything outside those bands should be filtered. Your assumption is correct.
But still your frequency limits are very demanding for a filter and requires a high-order filter (if even possible). Try your VI with some less demanding settings…