EDITED AND UPDATED:
My signal is an impulse response. In the following figure:
The frequency spectrum of the impulse response (original signal) is shown by blue line.
The original signal is corrected using an amplitude correction term shown by orange line.
The corrected signal is represented with a green line. The line above 700 Hz is flat because of the correction term.
I need to extract the corrected signal within frequency bounds 0 -700 Hz. I am using a IIR low-pass filter with filter order 10 implemented in MATLAB to get the frequency response within the required bounds. Please see the code to generate low pass filter.
fCross = 1360;
aPass = 0.1;
nFfT = 524288;
lpFilt = designfilt('lowpassiir',...
'FilterOrder',10,...
'PassbandFrequency', fCross, ...
'PassbandRipple', aPass, ...
'SampleRate', nFft);
When I perform the time-domain transformation of the signal, I get a time signal with ringing artifacts, shown in the figure below:
If I first convert the signal to time-domain and apply a low pass filter the ringing still persists (as shown in figure below), I am also not sure if the artefacts at the end are the time-shifted samples at the beginning of impulse response (onset of the IR).
I have the following questions:
- Why do I see the ringing artifacts after the decay of the impulse response and why are they pronounced at the end of the signal?
- How do I further process my signal (zero-padding, circular shifting) in order to minimize ringing?
- Are there any other filters that can be used instead of low pass filter?
Please note: the signal will be used for audio purposes so truncating it will cause information loss. Hence, that is not an option.
Thanks in advance!