用DSP實(shí)現(xiàn)FIR數(shù)字濾波器
FIR濾波器具有幅度特性可隨意設(shè)計(jì)、線性相位特性可嚴(yán)格精確保證等優(yōu)點(diǎn),因此在要求相位線性信道的現(xiàn)代電子系統(tǒng),如圖像處理、數(shù)據(jù)傳輸?shù)炔ㄐ蝹鬟f系統(tǒng)中,具有很大吸引力。本文簡(jiǎn)單介紹了其線性相位條件和設(shè)計(jì)方法,并且提供了一種用DSP實(shí)現(xiàn)的方法。
關(guān)鍵詞:IIR(Infinite Impulse Response) FIR(Finite Impulse Response) DSP(Digital Signal Processor)
一、 引 言
在許多信息處理過程中,如對(duì)信號(hào)的過濾、檢測(cè)、預(yù)測(cè)等,都要廣泛地用到濾波器,而數(shù)字濾波器則因其設(shè)計(jì)靈活、實(shí)現(xiàn)方便等特點(diǎn)而廣為接受。
所謂數(shù)字濾波器就是具有某種選擇性的器件、網(wǎng)絡(luò)或以計(jì)算機(jī)硬件支持的計(jì)算程序。其功能本質(zhì)是按事先設(shè)計(jì)好的程序,將一組輸入的數(shù)字序列通過一定的運(yùn)算后轉(zhuǎn)變?yōu)榱硪唤M輸出的數(shù)字序列,從而改變信號(hào)的形式和內(nèi)容,達(dá)到對(duì)信號(hào)加工或?yàn)V波以符合技術(shù)指標(biāo)的要求。
二、 數(shù)字濾波器的兩種類型
對(duì)于一般的數(shù)字濾波器,按照單位沖激響應(yīng)可分為無限長(zhǎng)沖激響應(yīng)IIR(Infinite Impulse Response)系統(tǒng)和有限長(zhǎng)沖激響應(yīng)FIR(Finite Impulse Response)系統(tǒng)。
在IIR系統(tǒng)中,用有理分式表示的系統(tǒng)函數(shù)來逼近所需要的頻率響應(yīng),即其單位沖激響應(yīng)h(n)是無限長(zhǎng)的;而在FIR系統(tǒng)中,則用一個(gè)有理多項(xiàng)式表示的系統(tǒng)函數(shù)去逼近所需要的頻率響應(yīng),即其單位沖激響應(yīng)h(n)在有限個(gè)n值處不為零。
IIR濾波器由于吸收了模擬濾波器的結(jié)果,有大量的圖表可查,可以方便、簡(jiǎn)單、有效地完成設(shè)計(jì),效果很好,但是其相位特性不好控制,必須用全通網(wǎng)絡(luò)進(jìn)行復(fù)雜的相位較正,才能實(shí)現(xiàn)線性相位特性的要求。
FIR濾波器則可在幅度特性隨意設(shè)計(jì)的同時(shí),保證精確、嚴(yán)格的線性相位特性。這在要求相位線性信道的現(xiàn)代電子系統(tǒng),如圖像處理、數(shù)據(jù)傳輸?shù)炔ㄐ蝹鬟f系統(tǒng)中,是具有很大吸引力的。而且,其單位沖激響應(yīng)是有限長(zhǎng)的,不存在不穩(wěn)定的因素,并且可用因果系統(tǒng)來實(shí)現(xiàn)。
下面著重討論具有線性相位特性的FIR濾波器。
三、 FIR濾波器線性相位特性的條件及設(shè)計(jì)方法
1.線性相位條件
為保證濾波器帶內(nèi)輸出信號(hào)的形狀保持不變,常常要求濾波器單位沖激響應(yīng)h(n)的頻率響應(yīng)H(ejω)應(yīng)具有線性的相頻特性,即H(ejω)=H(ω)e-jωk,其中H(ω)為幅頻特性,k為正整數(shù)。由傅氏變換的特性可知,線性相位濾波器只是將信號(hào)在時(shí)域上延遲了k個(gè)采樣點(diǎn),因此不會(huì)改變輸入信號(hào)的形狀。
可以證明,如果濾波器單位沖激響應(yīng)h(n)為實(shí)數(shù),且滿足:偶對(duì)稱即h(n)=h(N-1-n)或奇對(duì)稱h(n)=-h(N-1-n)時(shí),則其相頻特性一定是線性的。
2.設(shè)計(jì)方法
(1) 窗函數(shù)設(shè)計(jì)法
從時(shí)域出發(fā),把理想的無限長(zhǎng)的hd(n)用一定形狀的窗函數(shù)截取成有限長(zhǎng)的h(n),以此h(n)來逼近hd(n),從而使所得到的頻率響應(yīng)H(ejω)與所要求的理想頻率響應(yīng)Hd(ejω)相接近。優(yōu)點(diǎn)是簡(jiǎn)單、實(shí)用,缺點(diǎn)是截止頻率不易控制。
(2) 頻率抽樣設(shè)計(jì)法
從頻域出發(fā),把給定的理想頻率響應(yīng)Hd(ejω)加以等間隔抽樣,所得到的H(k)作逆離散傅氏變換,從而求得h(n) ,并用與之相對(duì)應(yīng)的頻率響應(yīng)H(ejω)去逼近理想頻率響應(yīng)Hd(ejω)。優(yōu)點(diǎn)是直接在頻域進(jìn)行設(shè)計(jì),便于優(yōu)化,缺點(diǎn)是截止頻率不能自由取值。
(3) 等波紋逼近計(jì)算機(jī)輔助設(shè)計(jì)法
前面兩種方法雖然在頻率取樣點(diǎn)上的誤差非常小,但在非取樣點(diǎn)處的誤差沿頻率軸不是均勻分布的,而且截止頻率的選擇還受到了不必要的限制。因此又由切比雪夫理論提出了等波紋逼近計(jì)算機(jī)輔助設(shè)計(jì)法。它不但能準(zhǔn)確地指定通帶和阻帶的邊緣,而且還在一定意義上實(shí)現(xiàn)對(duì)所期望的頻率響應(yīng)實(shí)行最佳逼近。
四、 FIR濾波器的實(shí)現(xiàn)
不論是窗函數(shù)設(shè)計(jì)法,還是頻率抽樣設(shè)計(jì)法,都要求出濾波器的單位沖激響應(yīng)h(n),然后才能在時(shí)域中實(shí)現(xiàn)頻域中的濾波。
1.濾波系統(tǒng)的差分方程
在頻域,當(dāng)其輸入信號(hào)為X(ejω)時(shí),如濾波器的頻率響應(yīng)為H(ejω),則其輸出信號(hào)為Y(ejω)=X(ejω)H(ejω)。
在時(shí)域,設(shè)濾波器的單位沖激響應(yīng)h(n)為一N點(diǎn)序列,即0≤n≤N-1時(shí)h(n)的值不為零,根據(jù)離散傅氏變換的性質(zhì),則可以將濾波器的輸入序列x(n)的響應(yīng)y(n)表示為x(n)與h(n)的卷積和,即:
這就是濾波系統(tǒng)的差分方程,它給濾波器的實(shí)現(xiàn)奠定了理論基礎(chǔ)。即求出時(shí)域的h(n)后,便可通過卷積來實(shí)現(xiàn)頻域的濾波。
2.卷積和運(yùn)算的實(shí)現(xiàn)
(1) h(n)序列N個(gè)點(diǎn)數(shù)值的存儲(chǔ)
由于h(n)是根據(jù)濾波性能要求已經(jīng)設(shè)計(jì)好的有限長(zhǎng)單位沖激響應(yīng),故其N個(gè)點(diǎn)的數(shù)值是已知的,因此可以存放在ROM或RAM當(dāng)中,且對(duì)應(yīng)著N個(gè)不同的地址,便于尋址。
(2) 輸入序列x(n)的移位寄存
輸入序列x(n)是不斷變化的,因此只能對(duì)其進(jìn)行移位寄存,寄存器的個(gè)數(shù)為N,即N個(gè)寄存器中分別存放著x(n)、x(n-1)……x(n-N+1),它們都隨著n的變化而變化。
(3) 乘法器
用以完成兩個(gè)數(shù)值的乘法,即h(m)x(n-m),也就是將存儲(chǔ)器中N地址所對(duì)應(yīng)的N個(gè)固定數(shù)值h(m)分別與N個(gè)移位寄存器中的不斷變化的N個(gè)變化數(shù)值x(n-m)相乘。
(4) 累加器
用以實(shí)現(xiàn)N個(gè)乘積的累加,即將當(dāng)前x(n)所對(duì)應(yīng)的N個(gè)乘積進(jìn)行累加,所得到的和就是y(n)。當(dāng)濾波器的下一個(gè)輸入值即x(n +1)到來時(shí),累加器清零,并重新將下一組x(n +1)所對(duì)應(yīng)的N個(gè)乘積進(jìn)行累加,所得到的和就是y(n +1)。
3.DSP的支持
DSP作為信號(hào)處理應(yīng)用,與一般微處理器有很大的區(qū)別。
(1) 哈佛結(jié)構(gòu):采用多個(gè)并行存儲(chǔ)器塊結(jié)構(gòu),使得能夠訪問的存儲(chǔ)器個(gè)數(shù)增加,從而減少在一個(gè)指令周期中所需存儲(chǔ)器操作周期數(shù)。
(2) 乘加流水線為核心的數(shù)據(jù)通路:卷積和運(yùn)算的基本操作就是乘法與加法,DSP則將相乘及累加統(tǒng)一考慮,構(gòu)成以乘法器、加法器流水線為中心的運(yùn)算部件。
(3) 特殊的指令:指令RPT由數(shù)據(jù)存儲(chǔ)器指定重復(fù)次數(shù),指令MACD可以一次完成相乘并帶數(shù)據(jù)移位的累加,因此使得每一級(jí)FIR濾波器只需一個(gè)指令周期。
(4) 指令系統(tǒng)的多級(jí)流水線:采用多級(jí)流水線操作方式,可以把指令周期減小到最小值,同時(shí)也就增加了數(shù)字信號(hào)處理器的吞吐量。
五、 具體電路框圖及程序流程圖
圖 1為FIR濾波器DSP實(shí)現(xiàn)的電路方框圖,其核心部分為TI公司生產(chǎn)的DSP芯片TMS320C203 ,EP2ROM和RAM是其外圍電路。DSP送給A/D抽樣時(shí)鐘,對(duì)輸入的模擬信號(hào)抽樣,即將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),然后讀取每一次的抽樣值,并對(duì)抽樣值進(jìn)行卷積運(yùn)算(FIR數(shù)字濾波),最后將運(yùn)算結(jié)果(濾波后的數(shù)字信號(hào))送至D/A ,轉(zhuǎn)換成模擬信號(hào)進(jìn)行輸出。
圖 1 電路框圖
評(píng)論