姜恩華,朱 旋,陳東華
(淮北師范大學(xué) 物理與電子信息學(xué)院,安徽 淮北 235000)
數(shù)字信號處理教材中常常把FIR(Finite Impulse Response)數(shù)字濾波器設(shè)計與數(shù)字濾波網(wǎng)絡(luò)基本結(jié)構(gòu)內(nèi)容放在不同章節(jié)講解,這樣導(dǎo)致關(guān)于FIR 數(shù)字濾波器的知識點比較分散[1-2],不利于學(xué)生系統(tǒng)掌握FIR數(shù)字濾波網(wǎng)絡(luò)方面的知識.本文借助Matlab軟件,以FIR數(shù)字濾波器設(shè)計與數(shù)字濾波網(wǎng)絡(luò)為線索,開展FIR數(shù)字濾波器章節(jié)內(nèi)容的課堂輔助教學(xué).根據(jù)單位脈沖響應(yīng)h(n)關(guān)于(N-1)/2的對稱性和FIR數(shù)字濾波器的線性相位,借助Matlab函數(shù),通過FIR數(shù)字濾波器設(shè)計方法,求解單位脈沖響應(yīng)h(n);通過單位脈沖響應(yīng)h(n)得到FIR 數(shù)字濾波器的直接型濾波網(wǎng)絡(luò)結(jié)構(gòu);對h(n)進行Z變換,得到系統(tǒng)函數(shù)H(z),對H(z)進行因式分解,把H(z)分解為若干個一階或二階因式相乘的形式,得到FIR數(shù)字濾波器的級聯(lián)型濾波網(wǎng)絡(luò)結(jié)構(gòu).通過MATLAB范例,把FIR數(shù)字濾波器設(shè)計和數(shù)字濾波網(wǎng)絡(luò)結(jié)構(gòu)作為一個整體進行輔助教學(xué)[3-4],有助于學(xué)生加深對該部分知識的掌握和理解.
在Matlab軟件中,一方面提供FIR數(shù)字濾波器設(shè)計函數(shù),例如:窗函數(shù)法、頻率采樣法和等波紋逼近法的設(shè)計函數(shù),通過函數(shù)調(diào)用,設(shè)計FIR數(shù)字濾波器的單位脈沖響應(yīng)h(n);另一方面,也提供FIR數(shù)字濾波網(wǎng)絡(luò)的直接型結(jié)構(gòu)和級聯(lián)型濾波函數(shù),借助它們完成FIR數(shù)字濾波的輔助教學(xué).把FIR數(shù)字濾波器設(shè)計與數(shù)字濾波網(wǎng)絡(luò)兩方面的知識作為一個整體講解,豐富輔助教學(xué)的內(nèi)容,使得教學(xué)思路清晰,教學(xué)內(nèi)容完整飽滿[5-6],形象直觀地展現(xiàn)FIR數(shù)字濾波器設(shè)計與數(shù)字濾波網(wǎng)絡(luò)的理論知識,激發(fā)學(xué)生的學(xué)習(xí)興趣,起到較好的教學(xué)示范作用.
單位脈沖響應(yīng)h(n)關(guān)于(N-1)/2的對稱性和N的奇偶性決定設(shè)計的FIR數(shù)字濾波器的類型;FIR數(shù)字濾波器的傳輸函數(shù)H(ejω)決定其幅頻特性,系統(tǒng)函數(shù)H(z)決定其零極點分布,當(dāng)z=ejω,表示系統(tǒng)函數(shù)H(z)在單位圓上取值,即傳輸函數(shù)H(ejω)的值,對ω取0和π 時,對應(yīng)的z值為1和-1.系統(tǒng)函數(shù)H(z)如式(1)所示:
若單位脈沖響應(yīng)h(n)偶對稱且N為奇數(shù),把z值為1和-1代入式(1)中,式(1)的值可能為零也可能不為零,與幅頻特性曲線 ||H(ejω) 比較,該情況可以設(shè)計FIR數(shù)字低通、高通、帶通和帶阻濾波器;若單位脈沖響應(yīng)h(n)偶對稱且N為偶數(shù),把z值為-1代入式(1)中,式(1)為零,該情況可以設(shè)計FIR數(shù)字低通和帶通濾波器,不能設(shè)計高通和帶阻濾波器;若單位脈沖響應(yīng)h(n)奇對稱且N為奇數(shù),把z值為1和-1代入式(1)中,式(1)都為零,該情況只能設(shè)計FIR數(shù)字帶通濾波器;若單位脈沖響應(yīng)h(n)奇對稱且N為偶數(shù),把z值為1 代入式(1)中,式(1)為零,該情況只能設(shè)計FIR 數(shù)字高通和帶通濾波器,不能設(shè)計低通和帶通濾波器.
由于FIR數(shù)字濾波器的歸一化傳輸函數(shù)H(ejω)能夠根據(jù)線性相位特性直接得出,其歸一化的幅頻特性曲線 ||H(ejω) 和幅度響應(yīng)函數(shù)Hg(ω)曲線也很容易表示出來.
FIR數(shù)字濾波器的設(shè)計方法主要包括窗函數(shù)法、頻率采樣法和等波紋最佳逼近法等,每種設(shè)計方法都能實現(xiàn)FIR數(shù)字低通、高通、帶通和帶阻濾波器的設(shè)計,求得單位脈沖響應(yīng)h(n).
在Matlab 軟件中,提供窗函數(shù)設(shè)計法函數(shù)fir1(N,wp,’ftype’,win)及其窗函數(shù)win,頻率采樣法函數(shù)fir2(N-1,F(xiàn),A,win),其中F表示邊界頻率,等波紋最佳逼近法函數(shù)[N,fo,mo,W]=remezord(f,m,dev,F(xiàn)s)和remez(N,fo,mo,W),借助Matlab軟件提供的設(shè)計函數(shù),根據(jù)FIR數(shù)字濾波器的技術(shù)指標(biāo),按照FIR數(shù)字濾波器的設(shè)計方法,求得FIR濾波器的單位脈沖響應(yīng)h(n)[7].
FIR數(shù)字濾波網(wǎng)絡(luò)基本結(jié)構(gòu)主要為直接型和級聯(lián)型結(jié)構(gòu),通過FIR濾波器的單位脈沖響應(yīng)h(n),可以得到直接型網(wǎng)絡(luò)結(jié)構(gòu).對h(n)進行Z變換,求得FIR濾波器的系統(tǒng)函數(shù)H(z),通過對H(z)進行因式分解,分解為若干個一階或二階因式相乘的形式,如式(2)所示,可以得到FIR數(shù)字濾波網(wǎng)絡(luò)的級聯(lián)型結(jié)構(gòu)[8].
在Matlab軟件中,調(diào)用函數(shù)filter2(hn,x),采用直接型濾波網(wǎng)絡(luò)進行濾波;調(diào)用函數(shù)[s,g]=tf2sos(hn,1),把FIR 濾波器的系統(tǒng)函數(shù)H(z)轉(zhuǎn)換為級聯(lián)型的形式,調(diào)用函數(shù)y(n)=filtfilt(s,g,x),采用級聯(lián)型濾波網(wǎng)絡(luò)進行濾波[9].
2.1.1 FIR直接型數(shù)字濾波網(wǎng)絡(luò)結(jié)構(gòu)
由FIR 數(shù)字濾波器的單位脈沖響應(yīng)h(n)可以得到FIR 直接型數(shù)字濾波網(wǎng)絡(luò),其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示[1-2].
圖1 FIR直接型數(shù)字濾波網(wǎng)絡(luò)結(jié)構(gòu)
2.1.2 基于MATLAB的FIR直接型數(shù)字濾波輔助教學(xué)
采用窗函數(shù)法設(shè)計FIR數(shù)字帶阻濾波器,根據(jù)FIR數(shù)字帶阻濾波器的設(shè)計指標(biāo):邊界頻率:wp=[(wls+wlp)/2/pi,(wus+wup)/2/pi],階數(shù)為N-1,調(diào)用Matlab函數(shù)hn=fir1(N,wp,‘stop’,blackman(N+1)),設(shè)計FIR數(shù)字帶阻濾波器,得到其單位脈沖響應(yīng)h(n);采用FIR直接型帶阻濾波網(wǎng)絡(luò)完成濾波.設(shè)計的輸入序列x(n)如式(3)所示;輸入序列x(n)通過FIR 直接型帶阻濾波網(wǎng)絡(luò),即調(diào)用函數(shù)y(n)=filter2(hn,x)完成濾波[10],得到輸出y(n).h(n)、x(n)和y(n)的時域波形及其頻譜如圖2所示,同理,采用窗函數(shù)法也可以設(shè)計FIR低通、高通和帶通數(shù)字濾波器及其直接型結(jié)構(gòu)的數(shù)字濾波網(wǎng)絡(luò)[11-12].
圖2 直接型FIR帶阻濾波網(wǎng)絡(luò)的輸入和輸出信號及其頻譜
比較圖2的子圖(b)和(f)可以看出,低頻和高頻信號被保留,帶通信號被濾除.通過MATLAB范例,基本完成了窗函數(shù)法設(shè)計FIR數(shù)字濾波器及其濾波過程的輔助教學(xué).
2.2.1 FIR級聯(lián)型數(shù)字濾波網(wǎng)絡(luò)結(jié)構(gòu)
對FIR數(shù)字濾波器的系統(tǒng)函數(shù)H(z)進行因式分解,分解為若干個一階或二階因式的相乘形式,可以得到FIR級聯(lián)型數(shù)字濾波網(wǎng)絡(luò)結(jié)構(gòu),如圖3所示[13].采用等波紋最佳逼近法和頻率采樣法設(shè)計FIR數(shù)字濾波器,采用級聯(lián)型數(shù)字濾波網(wǎng)絡(luò)結(jié)構(gòu)完成濾波.
圖3 FIR級聯(lián)型數(shù)字濾波網(wǎng)絡(luò)結(jié)構(gòu)
2.2.2 基于MATLAB的FIR級聯(lián)型數(shù)字濾波網(wǎng)絡(luò)輔助教學(xué)
采用等波紋最佳逼近法設(shè)計FIR高通濾波器,其技術(shù)指標(biāo)為:邊界頻率:f=[0.15,0.25],階數(shù)為N-1,調(diào)用函數(shù)[N,fo,mo,W]=remezord(f,m,dev,F(xiàn)s)和hn=remez(M,fo,mo,w),求得FIR 數(shù)字高通濾波器的單位脈沖響應(yīng)h(n);采用FIR級聯(lián)型高通濾波網(wǎng)絡(luò)完成濾波.設(shè)計的輸入序列x(n)如式(4)所示,輸入序列x(n)通過FIR高通濾波網(wǎng)絡(luò),調(diào)用函數(shù)[s,g]=tf2sos(hn,1),把FIR數(shù)字濾波器的直接型結(jié)構(gòu)轉(zhuǎn)換為級聯(lián)型結(jié)構(gòu),調(diào)用函數(shù)y(n)=filtfilt(s,g,x)完成級聯(lián)型高通濾波,得到輸出y(n).h(n)、x(n)和y(n)的時域波形及其頻譜如圖4所示,同理,采用等波紋最佳逼近法也可以設(shè)計FIR低通、帶通和帶阻數(shù)字濾波器及其級聯(lián)型結(jié)構(gòu)的數(shù)字濾波網(wǎng)絡(luò)[14].
圖4 級聯(lián)型FIR高通濾波網(wǎng)絡(luò)的輸入和輸出信號及其頻譜
從圖4的子圖(b)和(f)可以看出,高頻信號被保留,低頻信號被濾除.通過MATLAB范例,基本完成等波紋最佳逼近法設(shè)計FIR數(shù)字濾波器及其濾波過程的輔助教學(xué).
采用頻率采樣法設(shè)計FIR 數(shù)字低通濾波器,其技術(shù)指標(biāo)為:通帶截止頻率:ωc=π/4,過渡帶寬度Bt=π/16,階數(shù)為N-1,調(diào)用函數(shù)hn=fir2(N-1,F(xiàn),A,win)完成FIR數(shù)字低通濾波器設(shè)計,win采用boxcar矩形窗函數(shù),求得單位脈沖響應(yīng)h(n).設(shè)計的輸入序列如式(5)所示,輸入序列x(n)通過級聯(lián)型FIR低通濾波網(wǎng)絡(luò)完成濾波.調(diào)用函數(shù)[s,g]=tf2sos(hn,1),把FIR低通濾波器的直接型結(jié)構(gòu)轉(zhuǎn)換為級聯(lián)型結(jié)構(gòu),調(diào)用函數(shù)y(n)=filtfilt(s,g,x)完成級聯(lián)型低通濾波,得到輸出y(n).h(n)、x(n)和y(n)的時域波形及其頻譜如圖5所示,同理,采用頻率采樣法也可以設(shè)計FIR高通、帶通和帶阻數(shù)字濾波器及其級聯(lián)型結(jié)構(gòu)的數(shù)字濾波網(wǎng)絡(luò)[15].
圖5 級聯(lián)型FIR低通濾波網(wǎng)絡(luò)的輸入和輸出信號及其頻譜
從圖5中的子圖(b)和(f)可以看出,低頻信號被保留,高頻信號被濾除.通過MATLAB范例,基本完成頻率采樣法設(shè)計FIR數(shù)字濾波器及其濾波過程的輔助教學(xué).
本文借助MATLAB軟件,完成FIR數(shù)字濾波器設(shè)計和數(shù)字濾波網(wǎng)絡(luò)的輔助教學(xué),借助Matlab函數(shù),通過FIR數(shù)字濾波器設(shè)計,求得單位脈沖響應(yīng)h(n).通過h(n)可以得到FIR數(shù)字濾波器直接型網(wǎng)絡(luò)結(jié)構(gòu),對系統(tǒng)函數(shù)H(z)因式分解為若干個一階和二階因式相乘的形式,可以得到FIR數(shù)字濾波器的級聯(lián)型濾波網(wǎng)絡(luò)結(jié)構(gòu).通過MATLAB 范例,把FIR 數(shù)字濾波器設(shè)計和數(shù)字濾波網(wǎng)絡(luò)基本結(jié)構(gòu)作為整體進行輔助教學(xué).借助Matlab函數(shù),設(shè)計FIR數(shù)字濾波器,通過FIR數(shù)字濾波器直接型和級聯(lián)型濾波網(wǎng)絡(luò)結(jié)構(gòu),完成對輸入序列的濾波.形象直觀地展現(xiàn)了FIR濾波器的設(shè)計和濾波過程,使得教學(xué)思路清晰,教學(xué)內(nèi)容完整飽滿,起到較好的教學(xué)示范作用.