最小方均誤差 (數位濾波器)

来自testwiki
跳转到导航 跳转到搜索

Template:Multiple issues 在有限長度數位濾波器的設計中,最小平均平方誤差(英文:least mean-square error)是所設計的濾波器響應與理想濾波器響應在欲探討的頻段中的最小誤差。由於所設計的數位濾波器的長度不是無限長,所以在設計上和完美的濾波器會存在誤差。是訊號工程師會關心設計的濾波器的響應重點。此平均誤差利用統計學的方均值來計算求得。

定義

MSE1fsfs/2fs/2|R(f)Hd(f)|2df

其中R(f)為設計濾波器響應,有k+1項:R(F)=n=0ks[n]cos(2πnF)F 表示頻率變數對取樣頻率fs正歸化參數: F=ffs ,是離散化的頻率(normalized frequency)。此為離散時間傅立葉轉換表示法

其中Hd(f)=nh[n]ej2πffs=Hd(f)=nh[n]ej2πnF 是理想濾波器的離散時間傅立葉轉換表示法。

注意此算式中對頻譜的積分上下界,採取正負取樣頻率的一半即可。[1]因為響應函式已經被取樣,會讓信號頻譜具有週期性,其週期就是取樣頻率為fs。所以探討MSE時,積分範圍採取fs2fs2即可,節省運算量。

另外,此種將函數平方再對變數積分取平均的算法,類似對變數取L2範數。即是對向量做二維的純量化平均的處理,和另一個設計濾波器做法Mini-max相比,做最佳化較容易,因為這是實函數平方微分後再積分的線性運算

有限脈衝響應濾波器的設計應用

運用定義,將F取代f做變數變換:

F=ffsdF=1fsdf

MSE=1/21/2|R(F)Hd(F)|2dF=1/21/2|n=1ks[n]cos(2πnF)Hd(F)|2dF

因為絕對值內函數是以時刻變數構成的實函數,所以可將絕對值平方直接寫成兩個實函數部分相乘。

MSE=1/21/2(v=0ks[v]cos(2πvF)Hd(F))(τ=0ks[τ]cos(2πτF)Hd(F))dF

將MSN對s{n]做偏微分,

MSEs[n]=1/21/2cos(2πnF)(τ=0ks[τ]cos(2πτF)Hd(F))dF+1/21/2(v=0ks[v]cos(2πvF)Hd(F))dF

將上式第一個等號後面的兩個Σ項合併,因為引數起始值和最末項值相同。

MSEs[n]=2τ=0ks[τ]1/21/2cos(2πτF)cos(2πnF)dF21/21/2Hd(F)cos(2πnF)dF,n=0,1,2,...k

上式等號右邊的兩項中,都各有將餘弦函數從-1/2積分到1/2,又因為有兩個自變數係數不同的餘弦函數相乘,整個計算結果要分開討論。

R(F)Hd(F)項次

R(F)Hd(F)的項次nτ相異或相同,因為函數的正交性,會有不同的積分效果。此可由三角函數的積化合差驗證出來。

1/21/2cos(2πτF)cos(2πnF)dF={0,nτ1/2,n=τ,n01,n=τ,n=0 故可得:

MSEs[0]=2s[0]×121/21/2Hd(F)×1dF=0,n=0MSEs[n]=s[n]21/21/2cos(2πnF)Hd(F)dF=0,n0


MSE 是設計上濾波器響應函數和理想函數之間的誤差,吾人會希望這個誤差越小越好,即是設計的響應要和理想的響應,在所有時刻n上的趨勢一樣。

故使:MSEs[n]=0 for all n.

可得:

s[0]=1/21/2Hd(F)dFs[n]=21/21/2cos(2πnF)Hd(F)dF

觀察上式,若我們要得到濾波器的最小方均誤差,則要將理想濾波器頻域響應對餘弦函數做多項式內積

最後將s[n]的值帶入h[k]

{h[k]=s[0]h[k+n]=s[n]/2,h[kn]=s[n]/2,for n=1,2,3,...,kh[n]=0, for n<0 and nN.

h[n]即為欲設計的濾波器脈衝響應式。

結合權重函數

在數位濾波器設計中,可以利用權重函數W(F)去設計定頻段更接近理想值。則MSE則表示為:

MSE=1/21/2W(F)|R(F)Hd(F)|2dF=1/21/2W(F)(1/21/2s[τ])cos(2πτF)Hd(F))dF

MSE對s[n]的微分值為零可改寫為:

MSEs[n]=21/21/2W(F)cos(2πnF)(tauks[τ]cos(2πτF)Hd(F))dF

=τ=0ks[τ]1/21/2W(F)cos(2πnF)cos(2πτF)dF1/21/2W(F)Hd(F)cos(2πnF)df=0,n[0,k]

τ=0ks[τ]1/21/2W(F)cos(2πnF)cos(2πτF)dF=1/21/2W(F)Hd(F)cos(2πnF)dF

可再將上式寫成矩陣式:

[A[0,0]A[0,1]A[0,2]...A[0,k]A[1,0]A[1,1]A[1,2]...A[1,k]A[k,0]A[k,1]A[k,2]A[k,k]][s[0]s[1]s[k]]=[B[0]B[1]B[k]] A矩陣每一行表示不同τ代表的數值,每一列代表不同n代表的數值;s向量與B向量每一列表示不同n代表的數值。

其中:A[n,τ]=1/21/2W(F)cos(2πnF)cos(2πτF)dF,B[n]=1/21/2W(F)Hd(F)cos(2πnF)dF

經由此舉陣式可解出帶有權重函數設計的s[n]

最後將s[n]帶入h[k]

{h[k]=s[0]h[k+n]=s[n]/2,h[kn]=s[n]/2,for n=1,2,3,...,kh[n]=0, for n<0 and nN.

h[k]即是欲設計的濾波器響應。

參考文獻

Template:Reflist