一、實(shí)驗目的
了解FIR濾波器的特點(diǎn),掌握程序算法生成濾波器系數的方法,并實(shí)現FIR濾波器濾除高頻信號,并在LCD上顯示結果。
二、實(shí)驗原理
FIR濾波器
FIR(Finite Impulse Response)濾波器:有限長(cháng)單位沖激響應濾波器,又稱(chēng)為非遞歸型濾波器,是數字信號處理系統中最基本的元件,它可以在保證任意幅頻特性的同時(shí)具有嚴格的線(xiàn)性相頻特性,同時(shí)其單位抽樣響應是有限長(cháng)的,因而濾波器是穩定的系統。因此,FIR濾波器在通信、圖像處理、模式識別等領(lǐng)域都有著(zhù)廣泛的應用。
有限脈沖響應(FIR)濾波器(N-1階),不存在輸出對輸入的反饋支路,其單位脈沖h(n)是有限長(cháng)。對于一個(gè)FIR濾波器系統,它的沖激響應總是有限長(cháng)的,其系統函數可記為:
其中,N-1為FIR的濾波器的階數。
帶有常系數的FIR濾波器是一種LTI(線(xiàn)性時(shí)不變)數字濾波器。沖激響應是有限的意味著(zhù)在濾波器中沒(méi)有發(fā)反饋。長(cháng)度為N的FIR輸出對應于輸入時(shí)間序列x(n)的關(guān)系由一種有限卷積和的形式給出,最基本的具體形式如下:
FIR濾波器特性
有限長(cháng)單位沖激響應(FIR)濾波器有以下特點(diǎn):
(1)系統的單位沖激響應h (n)在有限個(gè)n值處不為零。
(2)系統函數H(z)在|z|>0處收斂,極點(diǎn)全部在z = 0處(因果系統)。
(3)結構上主要是非遞歸結構,沒(méi)有輸出到輸入的反饋,但有些結構中(例如頻率抽樣結構)也包含有反饋的遞歸部分。設FIR濾波器的單位沖激響應h (n)為一個(gè)N點(diǎn)序列,0 ≤ n ≤N -1,則濾波器的系統函數為:H(z)=∑h(n)* z^(-n),就是說(shuō),它有(N-1)階極點(diǎn)在z = 0處,有(N-1)個(gè)零點(diǎn)位于有限z平面的任何位置。
FIR濾波器的設計
FIR濾波器的設計比較簡(jiǎn)單,就是要設計一個(gè)數字濾波器去逼近一個(gè)理想的低通濾波器。通常這個(gè)理想的低通濾波器在頻域上是一個(gè)矩形窗。
在數字信號處理中,傅里葉變換用來(lái)求取時(shí)域信號的頻率成分。因此,通過(guò)對特定頻率幅度和相位的響應,求取傅里葉變換的逆變換(IDFT),就可以求出滿(mǎn)足要求的數字濾波器。
設計FIR濾波器需要提供的參數:
(1)濾波器的類(lèi)型:低通、高通、帶通、帶阻
(2)濾波器的采樣頻率
(3)濾波器的系數個(gè)數
(4)阻帶衰減(dB)
(5)通帶紋波(dB)
(6)過(guò)渡帶帶寬(Hz)
算法生成FIR濾波系數
本實(shí)驗利用Kaiser窗設計一個(gè)FIR低通濾波器,有用信號為100Hz,需要濾掉的信號為450Hz。
Kaiser窗是一種應用廣泛的可調節窗,它可以通過(guò)改變窗函數的形狀來(lái)控制窗函數旁瓣的大小,從而在設計中可用濾波器的衰減指標來(lái)確定窗函數的形狀。與其他窗相比,Kaiser窗最大的特點(diǎn)是可以同時(shí)調整主瓣和旁瓣寬度。 Kaiser窗的定義如下:
其中n=1,2,?,N-1 ,N 表示窗函數的總長(cháng)度, I_0是第一類(lèi)貝瑟爾函數。β是一個(gè)可調參數,可以通過(guò)改變β的值來(lái)調整窗函數的形狀,從而達到不同的阻帶衰減要求。
void filter_coefficient(int n, int band, float fs, float fln, float fhn, float wn, float beta, float h[])
n:濾波器階數(偶數)
band:濾波器類(lèi)型,1=低通,2=高通,3=帶通,4=帶阻
Fs:采樣頻率
fln:通帶上邊界頻率(低通) 、通帶下邊界頻率(高通、帶通、帶阻)
fhn:無(wú)意義(低通、高通)、通帶上邊界頻率(帶通、帶阻)
wn:濾波器窗體,1=retangular,2=tapered rectangular,3=triangular,4=Hanning,5=Hamming,6=Blackman,7=Kaiser
beta:Kaiser窗口的β參數(3< β <10)
h:濾波器系數
程序流程設計:
設計中首先要進(jìn)行外設使能配置,然后進(jìn)行LCD管腳復用配置和LCD中斷配置,接著(zhù)進(jìn)行LCD顯示和觸摸的初始化。然后通過(guò)FIR濾波器系數算法生成濾波因子,最后產(chǎn)生帶有噪聲的原始信號并進(jìn)行FIR濾波和FFT運算,將結果顯示在LCD屏幕上,在循環(huán)中進(jìn)行觸摸檢測,根據標志位判斷顯示時(shí)域或者頻域波形。
數字信號處理庫
DSPLIB 包含優(yōu)化的、C語(yǔ)言可調用的通用信號處理例程,用于計算密集型實(shí)時(shí)應用程序。 調用這些例程的運行速度比直接用C語(yǔ)言編寫(xiě)的等效代碼快得多。使用DSPLIB可以縮短應用程序開(kāi)發(fā)時(shí)間。
DSPLIB 3_4_0_0包括適用于 C64x+ 或 C66x 或 C674x 處理器的 Windows 或 Linux 安裝可執行文件。 每個(gè)可執行文件安裝一個(gè)組件包存儲庫、一個(gè)文檔目錄、一個(gè) Eclipse 插件目錄和一個(gè)擴展的組件目錄結構,其中包含組件庫、頭文件和測試示例。
TMS320C6748處理器使用的是dsplib_c674x_3_4_0_0。
函數源碼
FIR濾波函數
使用DSPLIB 的庫來(lái)進(jìn)行FIR濾波。使用時(shí),直接包含“DSPF_sp_fir_r2.h”文件 即可。
void DSPF_sp_fir_r2(const float *x, const float *h,float *restrict r, const int nh, const int nr);
程序使用DSPLIB 的庫來(lái)進(jìn)行FIR濾波,調用的程序源碼和使用說(shuō)明可以安裝DSPLIB后查看。調用的FIR濾波函數中:
第一個(gè)參數是指向大小為nr+nh-1 的輸入數組的指針。
第二個(gè)參數是指向大小為nh 的系數數組的指針。
第三個(gè)參數是指向大小為nr 的輸出數組的指針。
第四個(gè)參數是系數個(gè)數。
第五個(gè)參數是輸出樣本數
FFT運算函數
使用DSPLIB 的庫來(lái)進(jìn)行FFT運算。使用時(shí),直接包含“DSPF_sp_fftSPxSP.h”文件 即可。
API接口
void DSPF_sp_fftSPxSP(int N, float *ptr_x, float *ptr_w, float *ptr_y, unsigned char *brev, int n_min, int offset, int n_max);
程序使用DSPLIB 的庫來(lái)進(jìn)行FFT運算,調用的程序源碼和使用說(shuō)明可以安裝DSPLIB后查看。調用的FFT函數中:
第一個(gè)參數是樣本中FFT 的長(cháng)度,
第二個(gè)參數是指向數據輸入的指針。
第三個(gè)參數是指向復雜旋轉因子的指針。
第四個(gè)參數是指向復雜輸出數據的指針。
第五個(gè)參數是指向包含64 個(gè)條目的位反轉表的指針。如果樣本的FFT長(cháng)度可以表示為 4 的冪,
第六個(gè)參數是4,否則 第六個(gè)參數是 2 。
第七個(gè)參數是從主FFT開(kāi)始的樣本中的子 FFT偏移索引 。
第八個(gè)參數是樣本中主FFT的大小。
FFT逆變換函數
使用DSPLIB 的庫來(lái)進(jìn)行FFT逆變換。使用時(shí),直接包含“DSPF_sp_ifftSPxSP.h”文件 即可。
API接口
void DSPF_sp_ifftSPxSP (int N, float *ptr_x, float *ptr_w, float *ptr_y,
unsigned char *brev, int n_min, int offset, int n_max);
程序使用DSPLIB 的庫來(lái)進(jìn)行FFT逆變換,調用的程序源碼和使用說(shuō)明可以安裝DSPLIB后查看。調用的IFFT函數中:
第一個(gè)參數是樣本中FFT 的長(cháng)度。
第二個(gè)參數是指向數據輸入的指針。
第三個(gè)參數是指向復雜旋轉因子的指針。
第四個(gè)參數是指向復雜輸出數據的指針。
第五個(gè)參數是指向包含64 個(gè)條目的位反轉表的指針 。如果樣本的FFT長(cháng)度可以表示為 4 的冪,
第六個(gè)參數是4,否則第六個(gè)參數是2 。
第七個(gè)參數是從主FFT開(kāi)始的復雜樣本中的子FFT偏移索引 。
第八個(gè)參數是樣本中主FFT的大小。
三、操作現象
實(shí)驗設備
硬件連接
(2)將撥碼開(kāi)關(guān)撥到DEBUG模式01111,連接實(shí)驗箱電源,撥動(dòng)電源開(kāi)關(guān)上電。
軟件操作
導入工程,選擇Demo文件夾下的對應工程
編譯工程,生成可執行文件
將CCS連接實(shí)驗箱并加載程序
程序加載完成后點(diǎn)擊運行程序
運行程序后,LCD會(huì )顯示FIR濾波前后的時(shí)域波形,上方為100Hz信號與450Hz噪聲組成的混合信號,下方為濾波后得到的結果(保留100Hz信號)。
點(diǎn)擊一下LCD屏幕,會(huì )切換頻域波形,上方顯示原始頻域信號+噪聲,下方顯示濾波后的頻域波形,輸入波形為一個(gè)低頻率的正弦波與一個(gè)高頻的正弦波疊加而成,通過(guò)觀(guān)察頻域圖可知輸入波形中的低頻波形通過(guò)了濾波器,而高頻部分被濾除。
實(shí)驗結束后,先點(diǎn)擊黃色按鈕暫停程序運行,再點(diǎn)擊紅色按鈕退出CCS與實(shí)驗板的連接,最后實(shí)驗箱斷電即可。
-
信號處理
+關(guān)注
關(guān)注
47文章
884瀏覽量
102707 -
衰減器
+關(guān)注
關(guān)注
4文章
629瀏覽量
33930 -
LCD顯示
+關(guān)注
關(guān)注
0文章
129瀏覽量
18217 -
fir濾波器
+關(guān)注
關(guān)注
1文章
92瀏覽量
18858 -
傅里葉變換
+關(guān)注
關(guān)注
5文章
425瀏覽量
42325
發(fā)布評論請先 登錄
相關(guān)推薦
評論