《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 不同階數(shù)的FIR數(shù)字濾波器的DSP實(shí)現(xiàn)
不同階數(shù)的FIR數(shù)字濾波器的DSP實(shí)現(xiàn)
杜永興 秦嶺 席曉莉
摘要: FIR濾波器的結(jié)構(gòu)主要是非遞歸結(jié)構(gòu),,沒有輸出到輸入的反饋,。并且FIR濾波器很容易獲得 嚴(yán)格的線性相位特性,避免被處理信號(hào)產(chǎn)生相位失真,。而線性相位體現(xiàn)在時(shí)域中僅僅是h( n)在時(shí)間上的延遲,,這個(gè)特點(diǎn)在圖像信號(hào)處理、數(shù)據(jù)傳輸?shù)炔ㄐ蝹鬟f系統(tǒng)中是非常重要的,。此外,,他不會(huì)發(fā)生阻塞現(xiàn)象,能避免強(qiáng)信號(hào)淹沒弱信號(hào),,因此特別適合信號(hào)強(qiáng)弱相差懸殊的情況,。其主要的不足之處是,其較好的性能是以較高的階數(shù)為代價(jià)換來的,。因此,,在保證相同性能的前提下,努力降低其階數(shù)是FIR數(shù)字濾波器設(shè)計(jì)的重要因素之一,。 下面介紹應(yīng)用Matlab和DSP芯片來實(shí)現(xiàn)FIR濾波器的通用模式,。
Abstract:
Key words :

FIR濾波器的結(jié)構(gòu)主要是非遞歸結(jié)構(gòu),沒有輸出到輸入的反饋。并且FIR濾波器很容易獲得 嚴(yán)格的線性相位特性,,避免被處理信號(hào)產(chǎn)生相位失真,。而線性相位體現(xiàn)在時(shí)域中僅僅是h( n)在時(shí)間上的延遲,這個(gè)特點(diǎn)在圖像信號(hào)處理,、數(shù)據(jù)傳輸?shù)炔ㄐ蝹鬟f系統(tǒng)中是非常重要的,。此外,他不會(huì)發(fā)生阻塞現(xiàn)象,,能避免強(qiáng)信號(hào)淹沒弱信號(hào),,因此特別適合信號(hào)強(qiáng)弱相差懸殊的情況。其主要的不足之處是,,其較好的性能是以較高的階數(shù)為代價(jià)換來的,。因此,在保證相同性能的前提下,,努力降低其階數(shù)是FIR數(shù)字濾波器設(shè)計(jì)的重要因素之一,。
 

  下面介紹應(yīng)用Matlab和DSP芯片來實(shí)現(xiàn)FIR濾波器的通用模式。

1 FIR濾波器的設(shè)計(jì)方法

  通常采用窗函數(shù)法設(shè)計(jì)FIR濾波器方法簡單,,但是這些濾波器的設(shè)計(jì)還不是最優(yōu)的,。 首先 通帶和阻帶的波動(dòng)基本上相等,雖然一般需要δ2<δ1,,但是在窗函數(shù)法中不能分別控制 這些參數(shù),。另外對(duì)于大部分窗函數(shù)來說,通帶內(nèi)或阻帶內(nèi)的波動(dòng)不是均勻的,,通常離開過渡 帶時(shí)會(huì)減小,。若允許波動(dòng)在整個(gè)通帶內(nèi)均勻分布,就會(huì)產(chǎn)生較小的峰值波動(dòng),。

  最優(yōu)化設(shè)計(jì)是將所有的采樣值作為變量,在某一優(yōu)化準(zhǔn)則下,,通過計(jì)算機(jī)進(jìn)行迭代運(yùn)算得 到的最優(yōu)結(jié)果,。其優(yōu)化準(zhǔn)則可以使用均方誤差準(zhǔn)則。但實(shí)踐證明,,應(yīng)用最大誤差最小化準(zhǔn)則 的等波紋迫近法是更為實(shí)用的方法,,應(yīng)用他設(shè)計(jì)時(shí),階數(shù),、通帶和阻帶的邊緣以及誤差的加 權(quán)函數(shù)都可以自由選擇,,十分靈活,設(shè)計(jì)得到的濾波器,,其誤差在整個(gè)頻率范圍內(nèi)均勻分布 ,,因而可以以最低的階數(shù)迫近提出的指標(biāo)要求。

  設(shè)待設(shè)計(jì)濾波器的幅頻特性為HdA(ω),實(shí)際得到的濾波器的幅頻特性為HA(ω),,目的是使HA(ω)最好地迫近HdA(ω),。等波紋最佳一致迫近是根據(jù)設(shè)計(jì)要求,導(dǎo)出一組條件,,使整個(gè)迫近頻率區(qū)域上的迫近誤差絕對(duì)值為最小,,定義一個(gè)加權(quán)函數(shù)W(ω),W(ω)在不同的頻帶下可以取不同的值,,可用他自由決定各個(gè)頻 帶中誤差的權(quán)重,。優(yōu)化設(shè)計(jì)時(shí),W(ω)為已知函數(shù),,這樣,,加權(quán)誤差函數(shù)E(ω)可定義為: 

    

       由于Q(ω)是一個(gè)已知的三角函數(shù),故除在點(diǎn)ω=0,π外,,上式處處有效,。令:

   

       則可得到如下數(shù)學(xué)模型:

   

       據(jù)此,可以把FIR濾波器的設(shè)計(jì)問題,,歸納為如下的加權(quán)契比雪夫迫近問題:尋找P( ω)的一組系數(shù)a(n)(或

使E(ω)的最大絕對(duì)值在整個(gè)頻帶上都達(dá) 到最小,。即:
    
           其中:B表示整個(gè)有意義的頻帶。

    求解契比雪夫迫近問題的依據(jù)是交錯(cuò)定理(這里不再介紹),。

2 用Matlab設(shè)計(jì)FIR數(shù)字濾波器

  Matlab信號(hào)處理工具箱采用Remez算法實(shí)現(xiàn)線性相位FIR濾波器的等波紋最佳一致逼近設(shè)計(jì) ,。與其他設(shè)計(jì)方法相比,其優(yōu)點(diǎn)是:設(shè)計(jì)指標(biāo)相同時(shí),,使濾波器階數(shù)最低,;階數(shù)相同時(shí),使 通帶最平坦,,阻帶最小衰減最大,;通帶和阻帶均為等波紋形式,適合設(shè)計(jì)片段常數(shù)型濾波器 ,。其調(diào)用格式如下:

  

   remezord函數(shù)用于估算FIR數(shù)字濾波器的等波紋最佳一致逼近設(shè)計(jì)的最低階數(shù)N,,從而使 濾波器在滿足指標(biāo)的前提下造價(jià)最低?;菊{(diào)用格式如下:

  

  其返回參數(shù)供remez函數(shù)使用,。編制程序(略)FIR數(shù)字濾波器的濾波仿真程序:

  設(shè)有一個(gè)正弦疊加信號(hào):x=sin(2*pi*100*t)+sin(2*pi*200*t)+sin(2*pi*3 00*t);經(jīng)過帶通濾波器后,,濾除頻率為100 Hz和300 Hz的信號(hào),,如圖1所示。結(jié)果如圖2所示,。

                                

 

3 用DSP線性緩沖區(qū)和帶位移的雙操作數(shù)尋址方法來實(shí)現(xiàn)不同階數(shù)的FIR數(shù)字濾波器

  實(shí)現(xiàn)的核心器件采用美國德州儀器公司生產(chǎn)的DSP芯片TMS320C5402,。對(duì)于N級(jí)FIR濾波 器,,在數(shù)據(jù)存儲(chǔ)器中開辟一個(gè)稱之為滑窗的N個(gè)單元的緩沖區(qū),存放最新的N個(gè)輸入樣本 ,。從最老的樣本開始,,每讀一個(gè)樣本后,將此樣本向下移位,。讀完最后一個(gè)樣本后,,輸入最 新樣本至緩沖區(qū)的頂部(見圖3)。FIR濾波器的主程序(程序流程圖見圖4),,其中包括3個(gè)子程序Variableinc,,Bfunction.asm,F(xiàn)ilter_coeffinc,。Variableinc程序的主要作用是:將TMS320個(gè)寄存器定義為全局符號(hào),,這樣就可以直接引用寄存器(符號(hào))。Bf unction.asm程序的主要作用是:初始化FEC和初始化C54,。Filter_coeff.inc程序提供濾波器的系數(shù),,其系數(shù)用Q15格式表示。

              

            

4 結(jié)語

  實(shí)踐證明,該濾波器準(zhǔn)確度高,、穩(wěn)定性好,易于移植使用,具有較強(qiáng)的實(shí)用性與靈活性,。Mat lab可方便地設(shè)計(jì)出FIR數(shù)字濾波器,并且修改系數(shù)方便,。由于DSP的可移植性好,,所以能從不同方法得來的濾波器系數(shù)寫入filter_coeff.inc子程序中,從而得到不同的濾波效果,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。