王 坤
(河南職業(yè)技術(shù)學(xué)院,鄭州 450046)
在每一個信號處理過程中,濾波作用占有很重的份量,其中數(shù)字濾波在信號的處理中占有很大的地位,是一種比較簡單同時也是基本的一種處理方法。與傳統(tǒng)的模擬濾波算法相比較由于自身存在零點的特征,系統(tǒng)比較穩(wěn)定,不易產(chǎn)生阻帶衰減、溫度漂移和噪聲等,具有良好的通帶,滿足高質(zhì)量的幅度和相位的要求,同時像FIR系統(tǒng)還容易實現(xiàn)線性的相位和多通濾波器。
數(shù)字信號處理器DSP可以通過自身具有的系統(tǒng)機構(gòu),對其進行指令操作,就可以用數(shù)據(jù)流程實現(xiàn)一些復(fù)雜地數(shù)字信號問題。在本文中,采用了某公司生產(chǎn)的TMS320C54X芯片作為DSP的處理芯片,從而來實現(xiàn)FIR系統(tǒng)的數(shù)字濾波器。并經(jīng)過仿真實驗表明,該算法符合系統(tǒng)要求,便于實現(xiàn)數(shù)字濾波器的功能。
一個用DSP進行信號處理的流程圖如圖1所示。
圖1 DSP信號處理系統(tǒng)
從上圖中可以看出,用DSP進行信號處理的流程如下:先進行信號的數(shù)字化,一般的信號都是模擬信號,但是DSP只接收數(shù)字化的信息,故要先進行這一步操作將模擬信號經(jīng)過A/D轉(zhuǎn)化成數(shù)字信號,然后根據(jù)實際的應(yīng)該過程,進行相對應(yīng)的卷積、FTT變化等處理,接著將這些處理后的數(shù)字信號用D/A進行轉(zhuǎn)化,形成模擬的采樣值,最后將得到的不平滑的濾波通過濾波器等設(shè)備進行處理,從而得到最終的模擬連續(xù)的信號。
因為DSP信號處理系統(tǒng)是以數(shù)字信號處理理論為基礎(chǔ),故兼具有數(shù)字信號的特點。其特點一,與之相兼容的接口比較多,都是以數(shù)字為基礎(chǔ)的,方便與其他的系統(tǒng)接口進行連接;其特點二,因為DSP芯片中的系統(tǒng)可以根據(jù)實際的操作由工作人員進行相對應(yīng)的編程,故可以隨機地進行改變,靈活性強,重復(fù)進行操作,不浪費;其特點三,運行速度快,最快可以達到10GMIPS,甚至更多;其特點四,因為是以數(shù)字為基礎(chǔ)的,不易被周圍其他的事物所影響,非常的穩(wěn)定和可靠;其特點五,數(shù)字的話可以方面進行精進;其特點六,方便集成,難度低,生產(chǎn)可以達到一定的規(guī)模。
將數(shù)據(jù)進行濾波的過程就是將一個待處理的數(shù)據(jù)按照一定的算法進行處理的過程,從而來得到自己期望的值。在這個滿足線性關(guān)系的差分方程中,保持著線性不變的特定,其輸出序列y(n)
和輸入x(n)之間存在著如式(1)所示的關(guān)系:
其中,x(n)為輸入序列,y(n)為輸出序列,ak和bk為濾波器系數(shù),N是濾波器的階數(shù)。若上式中所有的bk均為零,則有FIR濾波器的差分方程為:
對上式進行Z變換得到FIR濾波器的傳遞函數(shù)為:
從上面的三個公式中可以看出,H(z)是Z-1的N-1次多項式,故在Z的范圍內(nèi)存在著N-1的原點和重級點,故N階濾波器一般存在著的單元包括N個延遲單元、N個加法器與N+1個乘法器,能夠組成如圖2所示的兩種結(jié)構(gòu)。
圖2 FIR濾波器的一般結(jié)構(gòu)
從圖2中可以看到,無論是哪一種結(jié)構(gòu),F(xiàn)IR濾波器的單位時間響應(yīng)是等長的,故穩(wěn)定性強,不易被噪聲等所影響。同時加諸一些附加地約束條件,使得 H(z)呈現(xiàn)線性特征,故容易在各個領(lǐng)域中得到應(yīng)用。設(shè)計一個FIR濾波器,最主要的是確定一個轉(zhuǎn)移函數(shù)H(z),使之滿足各個要素,包括通帶頻率ωp、阻帶頻率及兩個帶上的最大和最小衰減,同時保證H(z)的線性。 根據(jù)FIR的系統(tǒng)特性和DSP的流程圖,在本文中利用DSP的指令集合和流程方式進行了FIR的濾波器的設(shè)計,在本文中采用的某一個公司生產(chǎn)的TMS320C54X作為DSP處理芯片,根據(jù)如圖3所示的流程圖的過程,設(shè)計了一些列的轉(zhuǎn)變和編程最終實現(xiàn)了FIR濾波器。
TMS320C54X是一種16位的定點處理器的實例,故在設(shè)計編程時,采用的是Q15的轉(zhuǎn)換格式,在進行濾波時應(yīng)將每一個系數(shù)乘以215。在本文中采用的是循環(huán)緩沖方法來實現(xiàn)DSP的Z-1算法。
圖3 基于DSP的FIR濾波器設(shè)計總框圖
具體的過程如下,針對一個FIR濾波器,具有N階,故可以在數(shù)據(jù)存儲器中開辟一個緩沖區(qū),在這個滑窗中存放N個最新的輸入樣本,且在這個區(qū)域內(nèi)輸入新的樣本時,只需要將想對應(yīng)的數(shù)據(jù)進行覆蓋即可。最后利用片內(nèi)BK(循環(huán)緩沖區(qū)長度)寄存器對滑窗進行間接尋址,循環(huán)緩沖區(qū)地址首尾相鄰。
FIR濾波器的核心算法是計算輸入信號與濾波器系數(shù)的卷積。設(shè)x(n)為輸入信號,h(n)為FIR濾波器的沖擊響應(yīng),n=0,…,N-1,則FIR濾波器的輸出y(n)就是x(n)與h(n)的卷積,即:
由于卷積是數(shù)字信號處理中最常用到的算法,因此幾乎所有的DSP芯片中都設(shè)有專門的指令支持卷積運算。在TMS3205410中可以用macd指令完成卷積。macd指令的形式如下:
在這個指令中,用于指向數(shù)據(jù)存儲器的地址是Smem,具有間接尋址的功能,而Pmad只是代表著一個16位的存儲器地址,其中累加器為Src。在執(zhí)行指令之前,先將Pmad中的地址送到寄存器中,然后用Smem去讀取寄存器中的內(nèi)容,最后將內(nèi)容進行累加,將累加得到的結(jié)果放到Src中。根據(jù)指令進行操作時,先將Src中的數(shù)據(jù)進行復(fù)制,然后送至Smem的下一個地址和T寄存器,如果只是簡單的重復(fù)執(zhí)行命令,就將寄存器進行逐步地加1,這樣就不斷循環(huán)地讀取程序中的數(shù)據(jù),在原則上需要三個周期的時間,如果不是重復(fù)的執(zhí)行,就只需要一個周期的時間,將完成的累積數(shù)據(jù)進行移動,這件就完成了卷積所要求的計算。從而利用了DSP芯片就行編程,實現(xiàn)FIR所需要的數(shù)字濾波器的功能。
根據(jù)上述條件形成的數(shù)字濾波器,在本文中采用了標(biāo)準(zhǔn)矩形波進行了驗證,設(shè)置其頻率和振幅分別為300Hz和800mV,其波形如圖4所示,然后經(jīng)過本文算法提出的DSP的FIR數(shù)字濾波器進行濾波得到了如圖5所示的波形。
圖4 頻率和振幅分別為300Hz和800mV波形圖
圖5 本文DSP的FIR數(shù)字濾波器濾波
從仿真實驗得到的四幅圖中可以看到,本文提出的基于DSP的FIR數(shù)字濾波器滿足實驗要求,濾波效果良好,滿足要求。
在數(shù)字信號處理過程中,F(xiàn)IR濾波器的設(shè)計是基礎(chǔ),而DSP芯片也是重要的組成部分。FIR濾波器和DSP芯片兩種之間相互相成,濾波器的設(shè)計好壞直接影響著數(shù)字信號的處理,影響著整個過程的運行速度和精度。在今后的電子發(fā)展過程中,隨著DSP芯片的不斷發(fā)展,將不斷地主導(dǎo)著FIR的濾波設(shè)計。在本文提到的基于DSP芯片的算法形成的FIR濾波器經(jīng)試驗證明效果明顯,具有一定的實用性,將來在各個領(lǐng)域的應(yīng)用將越來越多。
[1] 程佩青.數(shù)字信號處理教程[M].北京: 清華大學(xué)出版社,1999.
[2] 孫宗瀛, 謝鴻林.TMS320C5xDSP原理設(shè)計與應(yīng)用[M].北京: 清華大學(xué)出版社, 2002.
[3] 喬瑞萍, 崔濤, 張芳娟.TMS320C54xDSP原理及應(yīng)用[M].西安: 西安電子科技大學(xué)出版社, 2005.
[4] 張雄偉.DSP芯片的原理與開發(fā)應(yīng)用(第三版)[M].北京:電子工業(yè)出版社, 2003.
[5] 鄭紅.TMS320C54XDSP應(yīng)用系統(tǒng)設(shè)計[M].北京: 北京航空航天大學(xué)出版社, 2002.