How to filter out peaks in a signal in Simulink?
6 次查看(过去 30 天)
显示 更早的评论
I want to filter out peaks in signals in Simulink without causing a delay in a signal. I have tried median filters but I need a large sliding window value (20+) to filter out peaks, doing so will introduce a large delay in the output signal which is undesirable. Is there another way to effectively filter out peaks without causing a significant delay in the output ?
Here is an example image of how a signal looks like.The peaks here are at 15s-16s mark.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/194309/image.png)
Any help would be greatly appreciated. Thanks in advance!
0 个评论
采纳的回答
Naman Chaturvedi
2018-8-27
Hello Darshan,
You cannot filter the signal without some delay. You can choose the low pass filter appropriate for your purpose with some delay. It is not possible to perform a zero-phase filter in real-time because a zero-phase filter requires filter coefficients that are symmetric around zero. That means that the filter is non-causal, or that current output depends on future input. This of course is not possible in the real-time case (simulink) and can be faked as in the case of filtfilt in MATLAB during post-processing.
You can even post process the signal by Compensate for the Delay Introduced by an FIR Filter or passing the signal again through a conjugate of the filter used in the simulink in the first place.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Filter Design and Analysis 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!