matlab filtfilt 函數


緊接上一篇,簡單分析matlab中的非常好用的 filtfilt 函數,一款零相移濾波函數。
其matlab中的語法如下:

y = filtfilt(data,x);
1
非常簡單,不是一般的簡單!然而,其他語言中,不能用!。。。所以只能深扒matlab代碼。。。

y = filter(b(:,ii),a(:,ii),y,zi(:,ii)*y(1));
y = y(end:-1:1);
y = filter(b(:,ii),a(:,ii),y,zi(:,ii)*y(1));
y = y(end-nfact:-1:nfact+1);
1
2
3
4
意思即: 濾波–翻轉–再濾波–再翻轉
所以在c語言的編寫中,只要寫好了濾波函數,加之以上的整個過程,即可實現此零相移濾波函數。

另外,在matlab中的filtfilt函數中,對原始信號進行了一次拼接


————————————————
版權聲明:本文為CSDN博主「yuchendai」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/u010856402/article/details/79296531


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM