基于DSP的FIR濾波器的設計(二)
2.2 實現(xiàn)方案
由于在卷積運算之前, h (n) 的N個數(shù)值是已知的, 因此, 可先在程序存儲器中開辟N個單元來存放h (n)。由于輸入序列x (n) 是不斷變化的,因此, 在數(shù)據(jù)存儲器中可開辟N個存儲單元并對其進行移位寄存, 其初始值分別為x (n)、x (n-1)……x (n-N-1), 然后采用循環(huán)尋址的方法對其進行訪問。每次輸入新的樣本時, 可以以新樣本改寫滑窗中的最老的數(shù)據(jù), 而滑窗中的其他數(shù)據(jù)則不需要移動。利用片內8 kB (循環(huán)緩沖區(qū)長度)寄存器可對滑窗進行間接尋址, 循環(huán)緩沖區(qū)地址首尾相鄰。8級循環(huán)緩沖區(qū)的結構如圖1所示, 其中頂部為低地址, 圖1中的(a) (b) (c) 分別為初始狀態(tài)、輸入1個和2個樣本后的存儲情況。
圖1 8級循環(huán)緩沖區(qū)結構。
3 仿真結果
下面是一組信號采樣序列樣本x (n), 其中存在有高頻干擾?,F(xiàn)以x (n) 作為輸入序列, 然后濾除其中的干擾成分。
{x (n)} = {-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,-2,-4,8,12,12,10,6,6,*,0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0}
本設計的線性相位低通FIR數(shù)字濾波器的截止頻率ωc為0.2πrad, 窗口長度N為11。根據(jù)上述原理及實現(xiàn)方案, 若采用漢寧窗來實現(xiàn), 則可依據(jù)算式計算出用漢寧窗設計時的各h (n) 的系數(shù):
{h (n)} = {0, 0.0045, 0.0349, 0.0991, 0.1692,0.2, 0.1692, 0.0991,0.0349, 0.0045, 0}
在CCS2.0軟件中觀察x (n) 的輸入曲線如圖2所示, 圖3所示是其y (n) 輸出曲線。
由圖2和圖3兩圖對比可見, 經(jīng)過濾波后, 其輸入曲線變平滑了。并且, 根據(jù)計算所得:
{y (n)} = {0, -0.018, -0.1486, -0.4662, -0.893, -1.305, -1.7006, -2.1548, -2.6372, -3.0062, -3.1918, -3.3098, -3.5296, -3.8198,-4.009, -4.0482, -3.9514, -3.4596, -2.0672, 0.3162, 2.7908, 3.*8, 0.9464, -6.2018, -17.6736, -31.8884, -45.5584, -54.1796, -54.044, -44.916, -30.6*, -16.6756, -6.3676, 0.058,4.037, 6.5272, 7.5976, 7.318, 6.2854, 5.0906, 3.8896, 2.*2, 1.5078, 0.6238, 0.0788, -0.3198, -0.7348, -1.0768, -1.1474, -0.9538,-0.7342, -0.6852, -0.7*, -0.8172, -0.8136,-0.8834} 上面一共56個值。
圖2 x (n) 輸入曲線
評論