歡迎大家到我的個人博客玩耍!
1.前言
在信號處理領域,一個信號當前時刻的值常常與其過去時刻的值以及輸入信號有關,很多人會用迭代算法去求,這是一種很直觀的解決辦法,但迭代算法實在是太慢了,尤其是數據量很大時,對實時信號處理簡直是災難!
有什麼辦法可以加快處理速度嗎?答案是“濾波器”!
用信號與系統的角度去觀察世界,所有的處理過程都可以看作一個濾波器。
下面以AR(2)模型爲例,比較迭代算法和使用濾波器處理的結果!
2.算例
AR(2)過程un的差分方程爲un=−a1u(n−1)−a2u(n−2)+v(n),其中vn是零均值,方差爲σv2=0.0731的加性白噪聲。AR參數a1=−0.975,a2=0.95。需要產生N=512點的un(n=1,2,⋯,N)。
3.結果比較
可以看到,濾波器實現和迭代實現結果是一樣的。
利用Matlab的tic,toc函數,得到兩種方法的運行時間,可以看到基於濾波器實現的時間要比迭代算法實現快一個數量級左右,是這一個很大的提升,特別是樣本點數很大時!
4.Matlab代碼下載
下載代碼請移步迭代算法的濾波器實現!