matlab filtfilt 函數

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

y = filtfilt(data,x);
1
很是簡單,不是通常的簡單!然而,其餘語言中,不能用!。。。因此只能深扒matlab代碼。。。.net

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語言的編寫中,只要寫好了濾波函數,加之以上的整個過程,便可實現此零相移濾波函數。blog

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


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

相關文章
相關標籤/搜索