filtfilt returns unexpected large value when using with LPC
4 views (last 30 days)
Show older comments
Hi, I am just trying source-filter separation with lpc function and filtfilt function. However, when the signal pass through filtfilt, it becomes extremely large. When I use filter instead of filtfilt, there is no problem with it.
Is there any problems in my code?
a = lpc(source,50);
e = source - filtfilt([0 -a(2:end)],1,source);
recovered = filtfilt(1,a,e); % this filtfilt makes the problem
0 Comments
Answers (1)
Zhao Wang
on 29 Sep 2016
I understand that you want to use the "filtfilt" function in source-filter separation. After using the "filtfilt" function, the amplitude of the filtered signal becomes large.
This increase in signal amplitude may be caused by how the "filtfilt" function processes the signal. The "filtfilt" function performs zero-phase digital filtering by processing the input signal in both the forward and reverse directions. This processing mechanism leads to a filter transfer function that equals the squared magnitude of the original filter transfer function. Because of this property, the output signal may be larger than the output of the "filter" function with the same filter design.
For more details about the "filtfilt" function, refer to the following link:
You can also refer to the 'Zero-Phase Filtering' section in the following link for another example of using the "filtfilt" function:
If you have any further question, you can contact MathWorks Technical Support for assistance.
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!