Reputation: 1090
I would like to know if there is any best practice to solve the following problem which I think may be of general interest.
I have a signal sampled with 40 kHz for about 60s. That signal contains frequencies up to 5kHz but I am only interested in its 40 Hz component.
How can I get a stable, narrow bandpass filtered (around 40 Hz) signal which also has the same time base as the original signal (zero lag). The filter should also have a linear phase.
Computational efforts are not an issue.
Upvotes: 0
Views: 999
Reputation: 763
Design a narrow band pass filter using: https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.iirpeak.html and then implement it on the signal using the a forward-backward filter, filtfilt: https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.signal.filtfilt.html.
The forward-backward filtering requires sectioning of the signal but you can always produce sections with a large overlap.
Upvotes: 1