基于MATLAB與CCS的IIR濾波器設(shè)計_第1頁
基于MATLAB與CCS的IIR濾波器設(shè)計_第2頁
基于MATLAB與CCS的IIR濾波器設(shè)計_第3頁
基于MATLAB與CCS的IIR濾波器設(shè)計_第4頁
基于MATLAB與CCS的IIR濾波器設(shè)計_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、基于MATLAB與CCS的IIR濾波器設(shè)計袁獻華(吉首大學(xué)物理科學(xué)與信息工程學(xué)院,湖南 吉首 416000)摘 要當(dāng)前,數(shù)字信號處理技術(shù)受到了人們的廣泛關(guān)注,其理論及算法隨著計機技術(shù)和微電子技術(shù)的發(fā)展得到了飛速地發(fā)展,并被廣泛應(yīng)用于語音和圖象理、數(shù)字通信、譜分析、模式識別和自動控制等領(lǐng)域。數(shù)字濾波器是數(shù)字信處理中最重要的組成部分之一,幾乎出現(xiàn)在所有的數(shù)字信號處理系統(tǒng)中。本課題研究的數(shù)字濾波器基本理論及其實現(xiàn)方法,為數(shù)字濾波器的實現(xiàn)奠定了理論基礎(chǔ)。為數(shù)字濾波的相關(guān)領(lǐng)域提供了理論及技術(shù)準(zhǔn)備,縮短了理論與實踐的距離,為今后從事數(shù)字濾波和DSP技術(shù)研究開發(fā)工作奠定了基礎(chǔ),積累了經(jīng)驗。關(guān)鍵詞: DSP;

2、集成開發(fā)環(huán)境;CCS;數(shù)字濾波器;IIRBased on MATLAB and CCS, IIR filter design Yuan Xian-Hua (Jishou University, School of Physical Science and Information Engineering, Hunan Jishou 416000) Abstract At present, digital signal processing technology has been widespread concern, its theory and algorithm with the total

3、 machine technology and the development of microelectronics technology has been rapidly evolving, and is widely used in voice and image science, digital communications, spectral analysis , pattern recognition and automation fields. Digital filter is a digital channel processing, one of the most impo

4、rtant component of almost appear in all of the digital signal processing systems. Of this research project the basic theory of digital filters and its realization method for the realization of digital filters has laid a theoretical basis. Relevant fields for the digital filter provides a theoretical

5、 and technical preparation, shortening the distance between theory and practice for the future in digital filtering and DSP technology research and development basis for the work and accumulated experience. Keywords: DSP; integrated development environment; CCS; digital filter; IIR目錄第一章 緒論11.1課題背景11

6、.2研究意義11.3國內(nèi)外相關(guān)領(lǐng)域的研究進展1第二章 IIR濾波器的MATLAB輔助設(shè)計32.1MA丁LAB簡介32.2 IIR濾波器的結(jié)構(gòu)3直接型3直接II型4級聯(lián)型5并聯(lián)型7濾波器的幾種結(jié)構(gòu)形式的性能82.3典型的IIR數(shù)字濾波器的設(shè)計9典型低通Chebyshevl型數(shù)字濾波器的設(shè)計9完全濾波器設(shè)計11第三章 數(shù)字濾波器在DSP上的實現(xiàn)143.1 CCS簡介143.2 MATLAB與DSP之間的連接143.3 技術(shù)難點15定點數(shù)的定標(biāo)15誤差問題153.4數(shù)字濾波DSP實現(xiàn)程序設(shè)計163.5 CCS仿真結(jié)果及分析183.6帶通濾波器的MATLAB仿真結(jié)果20第四章 結(jié)論22參考文獻23第一

7、章 緒論1.1課題背景隨著集成電路技術(shù)的發(fā)展,各種新型的大規(guī)模和超大規(guī)模集成電路不斷涌現(xiàn),集成電路技術(shù)與計算機技術(shù)結(jié)合在一起,使得數(shù)字信號處理系統(tǒng)的功能越來越強。DSP技術(shù)就是基于VLSI技術(shù)和計算機技術(shù)發(fā)展起來的一門重要技術(shù)。DSP技術(shù)已在通信、控制、信號處理、儀器儀表、醫(yī)療、家電等很多領(lǐng)域得到了越來越廣泛的應(yīng)用。1.2研究意義在數(shù)字信號處理中,濾波占有極其重要的地位。數(shù)字濾波是語音和圖象處理、模式識別、譜分析等應(yīng)用中的一個基本的處理技術(shù)。用可編程DSP芯片實現(xiàn)數(shù)字濾波可通過修改濾波器的參數(shù)十分方便地改變?yōu)V波器的特性。因此,我們有必要對濾波器的設(shè)計方法進行研究,理解其工作原理,優(yōu)化設(shè)計方法,

8、設(shè)計開發(fā)穩(wěn)定性好的濾波器系統(tǒng)。我們將通過DSP設(shè)計平臺,實現(xiàn)較為重要的FIR和自適應(yīng)濾波器系統(tǒng),并實現(xiàn)了它們的應(yīng)用系統(tǒng)以TMS320C5402芯片為核心的硬件電路,實現(xiàn)能獨立完成濾波功能的系統(tǒng)。從而通過本課題的研究,掌握濾波器的設(shè)計技術(shù),為通信、信號處理等領(lǐng)域?qū)嵱没瘮?shù)字濾波器設(shè)計提供技術(shù)準(zhǔn)備。本科題的研究,將為今后設(shè)計以DSP為核心部件的嵌入式系統(tǒng)集成提供技術(shù)準(zhǔn)備,這不僅具有重要的理論意義,同時還具有重要的實際意義。1.3國內(nèi)外相關(guān)領(lǐng)域的研究進展自20世紀(jì)70年代末80年代初DSP芯片誕生以來,DSP芯片得到了飛速的發(fā)展。在20多年時間里,DSP芯片已經(jīng)在信號處理,通信,雷達等許多領(lǐng)域得到廣泛

9、的應(yīng)用。世界上第一個單片DSP芯片是1978年AMI公司發(fā)布的S2811,1979年美國Intel公司發(fā)布的商用可編程器2920是DSP芯片的一個主要里程碑。1980年,日本NEC公司推出的PD7720是第一個具有乘法器的商用DSP芯片。在這之后,最成功的DSP芯片當(dāng)數(shù)美國德州儀器公司(Texas Instruments,簡稱TI的一系列產(chǎn)品,其DSP市場份額占全世界份額近50%。目前DSP芯片的價格越來越低,性能價格比日益提高,具有巨大的應(yīng)用潛力。經(jīng)過十幾年的發(fā)展,DSP器件在高速度、可編程、小型化、低功耗等方面都有了長足的發(fā)展,單片DSP芯片最快每秒可完成16億次(1600MIPS,每秒1

10、600M次指令)的運算,生產(chǎn)DSP器件的公司也不斷壯大,目前,市場占有率前四名依次為:Texas Instruments、Lucent、AnalogDevice、Motorola。DSP器件應(yīng)用面從起初的局限于軍工,航空航天等軍事領(lǐng)域,擴展到今天的諸多電子行業(yè)及消費類電子產(chǎn)品中。第二章 IIR濾波器的MATLAB輔助設(shè)計2.1MA丁LAB簡介MATLAB是矩陣實驗室(MatrixLaboratory)之意。除具備卓越的數(shù)值計算能力外,它還提供了專業(yè)水平的符號計算,文字處理,可視化建模仿真和實時控制等功能。MATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達式與數(shù)學(xué),工程中常用的形式十分相似,故用MA

11、TLAB來解算問題要比用C,F(xiàn)ORTRAN等語言完相同的事情簡捷得多,當(dāng)前流行的MATLAB5.3/Simulink3.0包括擁有數(shù)百個內(nèi)部函數(shù)的主包和三十幾種工具包(Toolbox)。工具包又可以分為功能性工具包和學(xué)科工具包。功能工具包用來擴充MATLAB的符號計算,可視化建模仿真,文字處理及實時控制等功能。學(xué)科工具包是專業(yè)性比較強的工具包,控制工具包,信號處理工具包,通信工具包等都屬于此類。MATLAB具有許多的優(yōu)點比如:語言簡潔緊湊,使用方便靈活,庫函數(shù)極其豐富;MATLAB既具有結(jié)構(gòu)化的控制語句(如for循環(huán),while循環(huán),break語句和if語句),又有面向?qū)ο缶幊痰奶匦?程序的可

12、移植性很好,基本上不做修改就可以在各種型號的計算機和操作系統(tǒng)上運行,等等優(yōu)點。因此在各個學(xué)科和領(lǐng)域得到了廣泛的應(yīng)用。2.2 IIR濾波器的結(jié)構(gòu)IIR濾波器的傳遞函數(shù)在有限z平面上有極點存在。它的單位脈沖響應(yīng) 延續(xù)到無限長,而它的結(jié)構(gòu)上的特性是存在反饋環(huán)路,也即結(jié)構(gòu)上是遞歸型的。具體實現(xiàn)起來,結(jié)構(gòu)并不是唯一的。同一個傳遞函數(shù) ,可以有各種不同的結(jié)構(gòu)形式,其中主要的基本結(jié)構(gòu)形式有以下幾種:直接型 一個N階IIR濾波器的傳遞函數(shù)可以表達為 用差分方程可以表達為從這個差分方程表達式可以看出, 是由兩部分相加構(gòu)成: 第一部分是一個對輸入 的N節(jié)延時鏈結(jié)構(gòu),每節(jié)延時抽頭后加權(quán)相加,也即是一個橫向結(jié)構(gòu)網(wǎng)絡(luò)。

13、 第二部分也是一個N節(jié)延時鏈的橫向結(jié)構(gòu)網(wǎng)絡(luò),不過它是對延時,因此是個反饋網(wǎng)絡(luò)。從圖中我們可以看到,直接型結(jié)構(gòu)需要2N級延時單元。直接II型 上面直接型結(jié)構(gòu)中的兩部分也可分別看作是兩個獨立的網(wǎng)絡(luò),其第一部分的傳遞函數(shù)為差分方程是 其第二部分的傳遞函數(shù)為差分方程是這兩部分串接后即構(gòu)成總的傳遞函數(shù) 由于系統(tǒng)是線性的,顯然將級聯(lián)的次序調(diào)換不會影響總的結(jié)果。即其結(jié)構(gòu)如圖2-3所示。即信號先經(jīng)過反饋網(wǎng)絡(luò) ,其輸出為中間變量再將 通過直饋網(wǎng)絡(luò) ,就得到系統(tǒng)的最后輸出改變級聯(lián)次序后,將中間的兩條完全相同的延時鏈合并。這樣延時單元可以節(jié)省一倍,即N階濾波器只需要N級延時單元。這種結(jié)構(gòu)稱為正準(zhǔn)型結(jié)構(gòu)或直接II型結(jié)

14、構(gòu),而把直接型稱為直接I型。級聯(lián)型一個N階的傳遞函數(shù)也可以用它的零、極點來表示,也即它的分子、分母都表達為因子形式 由于的系數(shù) 都是實系數(shù),因此零極點只有兩種情況:或者是實根,或者是共軛復(fù)根。即式中表示實根; 表示復(fù)根,并且 。再將每一對共軛因子合并起來構(gòu)成一個實系數(shù)的二階因子,則如果把單實根因子也看作是二階因子的一個特例:即二次項系數(shù)等于零的二階因子,則整個函數(shù)可以完全分解成實系數(shù)二階因子的形式這樣濾波器就可以用若干二階網(wǎng)絡(luò)級聯(lián)起來構(gòu)成,這些二階網(wǎng)絡(luò)也成為濾波器的二階基本節(jié)。它的傳遞函數(shù)的一般形式為這樣一個二階基本節(jié)可以采用直接II型結(jié)構(gòu)來實現(xiàn),整個濾波器則是他們的級聯(lián)。整個結(jié)構(gòu)如圖2-8所

15、示。圖2-8 結(jié)構(gòu)圖 并聯(lián)型 將傳遞函數(shù)展開成部分分式就可以用并聯(lián)的方式構(gòu)成濾波器。對于其中的共軛復(fù)根部分,再將它們成對地合并為二階實系數(shù)的部分分式,則其中,。 這樣就可以用L個一階網(wǎng)絡(luò)、M個二階網(wǎng)絡(luò)、以及一個常數(shù)A0網(wǎng)絡(luò)并聯(lián)起來組成濾波器H(z),其結(jié)構(gòu)如圖6-9所示。 當(dāng)然也可以全部采用二階節(jié)的結(jié)構(gòu),這時可將式(6-5)中實根部分兩兩合并以形成二階分式。 IIR濾波器的幾種結(jié)構(gòu)形式的性能直接I型:需要2N級延時單元。直接II型:只需要N級延時單元,節(jié)省資源。直接(I,II)型在實現(xiàn)原理上是類似的,都是直接一次構(gòu)成。共同的缺點是,系數(shù)ai 、bi對濾波器性能的控制關(guān)系不直接,調(diào)整不方便。更嚴(yán)

16、重的是當(dāng)階數(shù)N較高時,直接型結(jié)構(gòu)的極點位置靈敏度太大,對字長效應(yīng)太明顯,因而容易出現(xiàn)不穩(wěn)定現(xiàn)象并產(chǎn)生較大誤差。因此一般來說,采用另兩種結(jié)構(gòu)將具有更大的優(yōu)越性。級聯(lián)型:每一個基本節(jié)只關(guān)系到濾波器的某一對極點和一對零點,便于準(zhǔn)確實現(xiàn)濾波器的零、極點,也便于性能調(diào)整。級聯(lián)結(jié)構(gòu)可以由許多不同的搭配方式,在實際工作中,由于運算字長效應(yīng)的影響,不同排列所得到的誤差和性能也不一樣。并聯(lián)型:可以單獨調(diào)整極點位置,但不能直接控制零點。在運算誤差方面,并聯(lián)型各基本節(jié)的誤差互不影響,所以比級聯(lián)型總的說,誤差要稍小一些。因此當(dāng)要求有準(zhǔn)確的傳輸零點時,采用級聯(lián)型最合適,其他情況下這兩種結(jié)構(gòu)性能差不多,或許采用并聯(lián)型稍好

17、一點。2.3典型的IIR數(shù)字濾波器的設(shè)計模擬濾波器的理論和設(shè)計方法已發(fā)展得相當(dāng)成熟,且有一些典型的模擬濾波器供我們選擇,如巴特沃斯(Butterworth)濾波器、切比雪夫(Chebyshev)濾波器、橢圓(Cauer)濾波器、貝塞爾(Bessel)濾波器等,這些典型的濾波器各有特點。用MATLAB進行典型的數(shù)字濾波器的設(shè)計,一般步驟如下:(1)按一定規(guī)則將給出的數(shù)字濾波器的技術(shù)指標(biāo)轉(zhuǎn)換成模擬低通濾波器的技術(shù)指標(biāo);(2)根據(jù)轉(zhuǎn)換后的技術(shù)指標(biāo)使用濾波器階數(shù)選擇函數(shù),確定最小階數(shù)N和固有頻率Wn,根據(jù)選用的模擬低通濾波器的類型可分別用函數(shù):buttord、eheb1ord、chebZord、ell

18、ipord等;(3)運用最小階數(shù)N產(chǎn)生模擬濾波器原型,模擬低通濾波器的創(chuàng)建函數(shù)有:buttap、eheb1ap、ehebZap、ellipap、besselap等;(4)運用固有頻率Wn把模擬低通濾波器原型轉(zhuǎn)換成模擬低通、高通、帶通、帶阻濾波器,可分別用函數(shù)lpZlp、lpZhp、lpZbp、lpZbs;(5)運用沖激響應(yīng)不變法或雙線性變換法把模擬濾波器轉(zhuǎn)換成數(shù)字濾波器,分別用函數(shù)impinvar和bilillear來實現(xiàn)。典型低通Chebyshevl型數(shù)字濾波器的設(shè)計設(shè)計中需要限定其通帶上限臨界頻率wp,阻帶臨界濾波頻率ws,在通帶內(nèi)的最大衰減rP,阻帶內(nèi)的最小衰減rs。設(shè)計過程如下:把數(shù)字

19、濾波器的頻率特征轉(zhuǎn)換成模擬濾波器的頻率特征;(例如設(shè)定各參數(shù)wp=30*2*pi;ws=40*2*pi:Fs=100;rp=0.3;rs=80:)選擇濾波器的階數(shù):N,Wn=cheblord(wP,ws,rP,rs,s);創(chuàng)建Chebyshevl型濾波器原型:z,P,k=eheblaP(N,rP):表達形式從零極點增益形式轉(zhuǎn)換成狀態(tài)方程形式:A,B,C,D=zpZss(z,p,k):把模擬低通濾波器原型轉(zhuǎn)換成模擬低通濾波器:At,Bt,Ct,Dt=IPZIP(A,B,C,D,Wn):表達形式從狀態(tài)方程形式轉(zhuǎn)換成傳遞函數(shù)形式:numl,denl=ssZtf(At,Bt,Ct,Dt);采用沖激響應(yīng)

20、不變法將模擬濾波器轉(zhuǎn)換成數(shù)字濾波器:numZ,denZ=imPinvar(numl,denl,100);N,Wn=cheb1ord(wp,ws,rp,rs,s)該函數(shù)返回模擬濾波器的最小階數(shù)N和Chebyshevl型固有頻率Wn。其中的wp、ws是以弧度為單位。如果rp=3dB,則固有頻率wn等于通帶截止頻率wp。z,P,k=eheb1aP(N,rP) 該函數(shù)返回一個N階Chebyshevl型濾波器的零點、極點和增益。這個濾波器有通帶內(nèi)的最大衰減為rP。chebyshevl型濾波器的主要特點是在阻帶內(nèi)達到最大平滑。At,Bt,et;Dt=lp2lp(A,B,C,D,Wn)該函數(shù)把模擬低通濾波器

21、原型轉(zhuǎn)換成截止頻率為Wn的低通濾波器。numZ,denZ卜impinvar(numl,denl,F(xiàn)s)該函數(shù)模擬濾波器傳遞函數(shù)形式numl,denl轉(zhuǎn)換為采樣頻率為Fs的數(shù)字濾波器的傳遞函數(shù)形式numZ,denZ。Fs缺省時默認(rèn)為1Hz。H,W=freqz(numZ,denZ,N)該函數(shù)返回數(shù)字濾波器的頻率響應(yīng)。當(dāng)N是一個整數(shù)時,函數(shù)返回N點的頻率向量H和N個點的復(fù)頻響應(yīng)向量W。N最好選用2的整數(shù)次冪,這樣使用FFT進行快速運算。N個頻率點均勻地分布在單位圓的上半圓上。系統(tǒng)的N默認(rèn)值為512。完全濾波器設(shè)計除了典型設(shè)計以外,MATLAB信號處理工具箱提供了幾個直接設(shè)計IIR數(shù)字濾波器的函數(shù),直

22、接調(diào)用就可以設(shè)計濾波器,這為設(shè)計通用濾波器提供了方便。設(shè)計Butterworth濾波器用函數(shù)butter(),可以設(shè)計低通、高通、帶通和帶阻的數(shù)字和模擬濾波器,其特性是通帶內(nèi)的幅度響應(yīng)最大限度的平滑,但損失了截止頻率處的下降斜度。設(shè)計ehebyshevI型濾波器用函數(shù)ehebyl()??梢栽O(shè)計低通、高通、帶通和帶阻的數(shù)字和模擬ChebyshevI型濾波器,其通帶內(nèi)為等波紋,阻帶內(nèi)為單調(diào)。ChebyshevI型濾波器的下降斜度比II型大,但其代價目是通帶內(nèi)波紋較大。設(shè)計ehebyshevII型濾波器用函數(shù)eheby2()。可以設(shè)計低通、高通、帶通和帶阻的數(shù)字和模擬ChebyshevII型濾波器,

23、其通帶內(nèi)為單調(diào),阻帶內(nèi)等波紋。ChebyshevII型濾波器的下降斜度比I型小,但其阻帶內(nèi)波紋較大。設(shè)計橢圓濾波器用函數(shù)ellip(),與ehebyl、eheby2類似,可以設(shè)計低通、高通、帶通和帶阻的數(shù)字和模擬濾波器。與Butterworth和chebyshev濾波器相比,ellip函數(shù)可以得到下降斜度更大的濾波器,得通帶和阻帶均為等波紋。一般情況下,橢圓濾波器能以最低的階實現(xiàn)指定的性能指標(biāo)。幾種類型的低通濾波器設(shè)計:設(shè)Wp=30Hz,Ws=35Hz,F(xiàn)s=100,Rp=0.5dB,Rs=40dB分別用巴特沃斯(Butterworth)濾波器、切比雪夫(ehebyshev)濾波器、橢圓(Ca

24、uer)濾波器,程序設(shè)計如下:巴特沃斯低通濾波器:nl,Wnl=buttord(wP/(Fs/2),ws/(Fs/2),rP,rs,z);numl,denl=butter(nl,Wnl);圖2.2 Butterworth低通濾波器ehebyshevl低通濾波器:nZ,WnZ=eheblord(wP/(Fs/2),ws/(Fs/2),rP,rs,z):numZ,denZ=chebyl(nZ,rP,WnZ,high):圖2.3 ehebyshevl低通濾波器ehebyshevII低通濾波器:n3,Wn3=ehebZord(wP/(Fs/2),ws/(Fs/2),rP,rs,z):num3,den3

25、=ehebyZ(n3,rP,Wn3,high):圖2.4 ehebyshevII低通濾波器:橢圓低通濾波器:n4,Wn4=elliPord(wP/(Fs/2),ws/(Fs/2),rP,rs,z);num4,den4=elliP(n4,rP,rs,Wn4,high):圖2.6橢圓低通濾波器從頻率響應(yīng)圖中可以看出:巴特沃斯濾波器具有單調(diào)下降的幅頻特性,通帶內(nèi)平滑;切比雪夫I型濾波器的幅頻特性在通帶內(nèi)有波動,阻帶內(nèi)單調(diào);chebyshevH型濾波器的幅頻特性在阻帶內(nèi)有波動,通帶內(nèi)單調(diào);橢圓濾波器的選擇性相對前三種是最好的,下降斜度比較大,通帶和阻帶內(nèi)均為等波紋,同樣的性能指標(biāo),橢圓濾波器可以最低的

26、階數(shù)來實現(xiàn)。這樣根據(jù)不同的要求可以選用不同類型的濾波器。第三章 數(shù)字濾波器在DSP上的實現(xiàn)3.1 CCS簡介DSP芯片的開發(fā)需要一套完整的軟、硬件開發(fā)工具。璐P芯片的開發(fā)工具可以分為代碼生成工具和代碼調(diào)試工具兩類。CCS(CodeComPoserStudi的是TI推出的用于開發(fā)其DSP芯片的集成開發(fā)環(huán)境,它采用Windows風(fēng)格界面,集編輯、編譯、鏈接軟件仿真、硬件調(diào)試及實時跟蹤等功能于一體,極大的方便了DSP程序的設(shè)計與開發(fā)。目前CCS軟件已經(jīng)歷了V1.O,V1.2,V2.O,和V2.1等版本,各個版本CCS軟件的功能大體一致。CCS集成開發(fā)環(huán)境中包含Simulator(軟件仿真器)和Emu

27、lat。r(硬件仿真器)兩部分。它們使用的是同一個集成開發(fā)環(huán)境。在本設(shè)計中,采用軟件仿真器進行程序的調(diào)試,CCS集成開發(fā)環(huán)境(IDE)支持從編輯、編譯、匯編、鏈接到調(diào)試DSP應(yīng)用程序的整個開發(fā)過程。CCS具有強大的源代碼編輯器,允許編輯C語言源代碼和匯編源代碼,能在C代碼之后顯示與之對應(yīng)的匯編指令。CCS使用工程來管理整個應(yīng)用程序設(shè)計的所有文檔,工程中可包含C語言源代碼、匯編源代碼、庫文件、鏈接命令文件、頭文件和目標(biāo)文件。在使用CCS調(diào)試工具時能設(shè)置一個或多個斷點;在斷點處自動更新;使用Watch窗口查看變量;查看、編輯存儲器和寄存器的值;使用ProbePOint工具在主機與目標(biāo)系統(tǒng)間傳輸數(shù)據(jù)

28、:觀察目標(biāo)系統(tǒng)中執(zhí)行的反匯編代碼和C語言指令;對目標(biāo)系統(tǒng)中的信號繪圖顯示。圖5.1為CCS集成開發(fā)環(huán)境界面圖。圖5.1CCS集成開發(fā)環(huán)境界面圖3.2 MATLAB與DSP之間的連接MATLAB輔助DSP開發(fā)實現(xiàn)的關(guān)鍵是建立MATLAB與DSP間的連接。以往一般是由開發(fā)工具MATLAB把仿真結(jié)果先保存,再調(diào)入CCS中,在CCS中的仿真中間結(jié)果與MATLAB的仿真結(jié)果進行比較,以此發(fā)現(xiàn)DSP程序的不足,這需要反復(fù)操作,比較麻煩。MathWorkS公司和TI公司共同開發(fā)的MATLABLinkforCCS開發(fā)工具(CCSLink),實現(xiàn)了在MATLAB,TICCS開發(fā)環(huán)境和DSP硬件間的雙向連接,開發(fā)

29、者可以利用MATLAB強大的數(shù)據(jù)處理、分析、可視化功能來處理CCS和目標(biāo)DSP中的數(shù)據(jù),可以大大簡化DSP軟件開發(fā)的分析、調(diào)試和驗證過程,縮短軟件開發(fā)周期。MATLAB可通過3種方式與CCS、目標(biāo)DSI,進行連接、數(shù)據(jù)交換。CCSLink提供了3種連接對象:與CCS的連接對象可從MATLAB命令窗運行CCS中的應(yīng)用程序,向目標(biāo)DSP的存貯器、寄存器讀出/寫人數(shù)據(jù),檢查DSP狀態(tài),開始/停止目標(biāo)DSP中運行的程序。與RTDX(實時數(shù)據(jù)交換)的連接對象使MATLAB與目標(biāo)DSP直接通信,MATLAB可以實時地向目標(biāo)DSP取出/發(fā)送數(shù)據(jù),并不停止DSP中正在執(zhí)行的程序。嵌入式對象在MATLAB環(huán)境中

30、創(chuàng)建,該對象可代表嵌入在目標(biāo)C程序中的變量,由其可以直接對嵌入在目標(biāo)DSP存貯器/寄存器中的變量進行操作。3.3 技術(shù)難點 定點數(shù)的定標(biāo)在定點DSP芯片中,采用定點數(shù)進行數(shù)值運算,其操作數(shù)一般采用整型數(shù)來表示。一個整型數(shù)的最大表示范圍取決于DSP芯片所給定的字長,一般為16位或24位,本文采用的DSP芯片為16位。顯然,字長越長,所能表示的數(shù)的范圍越大,精度也越高。在濾波器的實現(xiàn)過程中,DSP所要處理的數(shù)可能是整數(shù),也可能是小數(shù)或混合小數(shù);然而,DSP在執(zhí)行算術(shù)運算指令時,并不知道當(dāng)前所處理的數(shù)據(jù)是整數(shù)還是小數(shù),更不能指出小數(shù)點的位置在哪里。因此,在編程時必須指定一個數(shù)的小數(shù)點處于哪一位,這就

31、是定標(biāo)。通過定標(biāo),可以在16位數(shù)的不同位置上確定小數(shù)點,從而表示出一個范圍大小不同且精度也不同的小數(shù)。例如:在Q15中,1080H=0.12890625;在Q0時,108OH=4224。同樣一個16位數(shù),若小數(shù)點設(shè)定的位置不同,它所表示的數(shù)也就不同。但對于DSP芯片來說,處理的方法是相同的。從上表中還可以看出,不同的Q表示的數(shù)不僅范圍不同,而且精度也不相同。Q越大,數(shù)值范圍越小,但精度越高;相反,Q越小,數(shù)值范圍越大,但精度越低。因此,對定點數(shù)而言,數(shù)值范圍與精度是一對矛盾,一個變量要想能夠表示較大的數(shù)值范圍,必須以犧牲精度為代價,要想提高精度,則數(shù)的表示范圍就相應(yīng)的減小,在實際的定點算法中,

32、為達到最佳的性能,必須充分考慮這一點。在運用定點DSP時,如何選擇合適的Q值是一個關(guān)鍵性問題。就DSP運算的處理過程來說,實際參與運算的都是變量,有的是未知的,有的則在運算過程中不斷改變數(shù)值,但它們在實際工程環(huán)境中作為一個物理參量而言都有一定的動態(tài)范圍。只要動態(tài)范圍確定了,Q值也就確定了。因此,在程序設(shè)計前,首先要通過細致和嚴(yán)謹(jǐn)?shù)姆治?,找出參與運算的所有變量的變化范圍,充分估計運算中可能出現(xiàn)的各種情況,然后確定采用何種定標(biāo)標(biāo)準(zhǔn)才能保證運算結(jié)果正確可靠。這里,所討論的理論分析法和統(tǒng)計分析法確定變量絕對值最大值|max|.,然后根據(jù)|max|再確定Q值。但是,DSP操作過程中的意外情況是無法避免的

33、,即使采用統(tǒng)計分析法也不可能涉及到所有情況。因此,在定點運算過程中應(yīng)該采取一些判斷和保護辦法(特別是在定點加法中)。另外,在數(shù)字信號處理中的大量運算是乘法和累加,應(yīng)盡量采用純整數(shù)或純小數(shù)運算,即全部變量都用Q0或Q15格式表示。這樣做的好處是操作簡單、編程方便。只有當(dāng)純整數(shù)或純小數(shù)運算不能滿足變量的動態(tài)范圍和精度要求時,才采用混合小數(shù)表示法進行定點運算。本文專門設(shè)計了一個Q15轉(zhuǎn)化程序,可以方便的把在MATLAB中得到的濾波器的系數(shù),和輸入的原始隨機信號進行處理輸入到CCS中。 誤差問題因為在用定點DSP實現(xiàn)時,所有的數(shù)據(jù)都是定長的,運算也都是定點運算,因而會產(chǎn)生有限字長效應(yīng)。所產(chǎn)生的誤差主要

34、包括:數(shù)模轉(zhuǎn)換引起的量化誤差、系數(shù)量化引起的誤差以及運算過程中的舍入誤差。在用定點DSP時,產(chǎn)生誤差是不能避免的,但是可以通過一些辦法減小誤差。如,可以用兩個存儲單元來表示一個數(shù),運算時運用雙字運算;可以根據(jù)需要將濾波器系數(shù)都用雙字表示,也可以只將一半的系數(shù)用雙字表示,視需要而定。另外,F(xiàn)IR數(shù)字濾波器和工IR數(shù)字濾波器所引入的量化誤差是不一樣的。FIR數(shù)字濾波器主要采用非遞歸結(jié)構(gòu),因而在有限精度的運算中都是穩(wěn)定的;而IIR數(shù)字濾波器是遞歸結(jié)構(gòu),極點必須在z平面單位圓內(nèi)才能穩(wěn)定,這種結(jié)構(gòu)運算中的四舍五入處理有時會引起寄生振蕩。除了有限字長效應(yīng)以外,不同結(jié)構(gòu)引入的誤差也有所不同。在實際設(shè)計中,要

35、注意實現(xiàn)中的誤差問題。在選擇不同的結(jié)構(gòu)時,應(yīng)考慮它們所引入的誤差,并用高級語言進行定點仿真,以比較不同結(jié)構(gòu)下誤差的大小,從而作出合理選擇。從理論上說,可以用高階工IR數(shù)字濾波器實現(xiàn)良好的濾波效果。但由于DSP本身有限字長和精度的因素,加上IIR濾波器在結(jié)構(gòu)上存在反饋回路,是遞歸型的,再者高階濾波器參數(shù)的動態(tài)范圍很大。這樣一來造成兩個后果:結(jié)果溢出和誤差增大,從而導(dǎo)致算法無法在DSP上實現(xiàn)。因此要合理選擇濾波器的階數(shù)。3.4數(shù)字濾波DSP實現(xiàn)程序設(shè)計DSP程序設(shè)計流程圖見圖3.2圖3.2 DSP程序設(shè)計流程圖在技術(shù)難點中討論過定點數(shù)的定標(biāo)問題,特意編寫了一個小程序?qū)崿F(xiàn)對輸入原始信號和濾波器系數(shù)的

36、歸一化處理。一下為歸一化程序。X=;i=1;for n=1:1024 if x(1,i) 1 | x (1,i)-1 k(1, i)=x(1,i) *32768/max (x),else k(1,i)=x(1,i)*32768endi=i+1:end, n, i把原始信號數(shù)據(jù)和濾波器系數(shù)代人上面程序中x=,經(jīng)過運算就可以得到歸一化數(shù)據(jù)。對實現(xiàn)濾波的核心程序為:filter_start:STM #K_CIR,BKSTM #l,AROSTM #inputdata,ORIGINSTM #bufferdatax,INPUTSTM #bufferdatay,F(xiàn)ILTERSTM #filterdata,O

37、UTPUTRPT #K_A-1MVDD *ORIGIN+,*INPUT+0%STM #bufferdatax,INPUTRPT #KA-lMVDD *INPUT+0%,*FILTER+0%STM #bufferdatay,F(xiàn)ILTERSTM #bufferdatax,INPUTSTM #K_DATA_5IZE-3-l,BRCRPTB filter_end-lMVDD *ORIGIN+,*INPUTRPT #KB-1-1MAR *INPUT-O%MPY *INPUT+O%,#b4,BLD B,AMPY *INPUT+O%,#b3,BLD B,AMPY *INPUT+O%,#b2,BLD B,AM

38、PY *INPUT+O%,#bl,BLD B,AMPY *FILTER+0%,#a3,BADD B,AMPY *FILTER+0%,#a2,BADD B,AMPY *FILTER+0%,#al,BADD B,ASTH A,*FILTER-0%STH A,*OUTPUT+MAR *FILTER-0%該程序是對初始化的數(shù)據(jù)進行濾波,主要實現(xiàn)IIR差分方程初始化的數(shù)據(jù)就是濾波前的隨機信號。初始化數(shù)據(jù)和MATLAB中得到的濾波器系數(shù)做乘加運算,就實現(xiàn)了對原始數(shù)據(jù)的濾波,濾波后的數(shù)據(jù)存放在特定的單元。只要將此程序做一些改動,然后在其他程序中調(diào)用就可以對實際的信號進行濾波。在自來水檢漏系統(tǒng)中,對兩路采樣信

39、號進行AD轉(zhuǎn)換后,送到DSP然后調(diào)用濾波程序,濾波后將數(shù)據(jù)輸出再進行濾噪和相關(guān)算法的處理。3.5 CCS仿真結(jié)果及分析在CCS上調(diào)試仿真得到的結(jié)果:從圖仿真結(jié)果,可以看出輸入信號經(jīng)過截止頻率為500Hz的低通濾波器以后500Hz以上的頻率分量大大減弱。但是濾波效果不太理想尤其在家00Hz附近的頻率分量。經(jīng)過分析原因可能如下:首先數(shù)字濾波呂的性能主要取決于乘法器的各系數(shù),而這些系數(shù)在MATLAB上仿真的時候,是沒有經(jīng)過處理的真實數(shù)據(jù),因此在MATLAB上仿真是理想的仿真,因此效果較好。而在CCS上各個系數(shù)是經(jīng)過量化處理的,因此系數(shù)和原始系數(shù)相比較會有誤差。其次IIR數(shù)安濾波器是遞歸結(jié)構(gòu),極點必須

40、在z平面單位圓內(nèi)才能穩(wěn)定,這種結(jié)構(gòu)運算中的四舍五入處理有時會引起寄生振蕩。從而影響濾波效果。再次,可能濾波器階數(shù)有點低??梢葬槍σ陨显?,對濾波器再進行改進。從理論上說,可以用高階IIR數(shù)字濾波器實現(xiàn)良好的濾波效果。但由于DSP本身有限字長和精度的因素,加上IIR濾波器在結(jié)構(gòu)上存在反饋回路,是遞歸型的,再者高階濾波器參數(shù)的動態(tài)范圍很大。這樣一來造成兩個后果:結(jié)果溢出和誤差增大,從而導(dǎo)致算法無法在DSP上實現(xiàn)。綜合考慮,將濾波器的階數(shù)提高到5階,得到新的仿真結(jié)果如圖3.4所示??梢钥闯?階的濾波效果要優(yōu)于3階濾波器。圖3.5 IIR帶通濾波器仿真結(jié)3.6帶通濾波器的MATLAB仿真結(jié)果IIR帶通濾波器的設(shè)計和低通濾波器的設(shè)計方法是一樣的。因此本文不再對IIR帶通濾波器的設(shè)計作過多的說明,只給

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論