基于DSP的數(shù)字濾波器的設(shè)計與仿真_第1頁
基于DSP的數(shù)字濾波器的設(shè)計與仿真_第2頁
基于DSP的數(shù)字濾波器的設(shè)計與仿真_第3頁
基于DSP的數(shù)字濾波器的設(shè)計與仿真_第4頁
基于DSP的數(shù)字濾波器的設(shè)計與仿真_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

目錄2123摘要 2TOC\o"1-3"\h\u22202第1章緒論 345671.1基于DSP的IIR濾波器設(shè)計課題背景 3541.2本設(shè)計主要研究內(nèi)容與方法 323840第2章IIR數(shù)字濾波器的設(shè)計 3309072.1IIR數(shù)字濾波器的基本概念 3203702.2IIR濾波器的結(jié)構(gòu) 4194632.2.1直接型 466292.2.2級聯(lián)型 5215112.2.3并聯(lián)型 5128352.3IIR濾波器的設(shè)計方法 6192582.4模擬濾波器的離散化 668812.4.1脈沖響應(yīng)不變法設(shè)計IIR數(shù)字濾波器 731638第3章詳細設(shè)計 818733第4章實驗過程 9136154.1匯編語言實驗步驟與內(nèi)容 9181794.2實驗過程中出現(xiàn)的錯誤及解決的辦法 12213534.3CCS程序運行后的各種輸出結(jié)果 13241304.4出現(xiàn)的錯誤及如何改正 143208匯編程序清單 1514457irr.prj文件內(nèi)容: 1526316yuyinjiazao.m的程序如下: 18526參考文獻 20摘要隨著信息技術(shù)的發(fā)展,數(shù)字化時代已經(jīng)到來,數(shù)字信號的處理逐步發(fā)展成為一門主流技術(shù)。濾波技術(shù)的發(fā)展,對信息處理技術(shù)的發(fā)展具有及其重要的作用,相對于模擬濾波器,數(shù)字濾波器沒有漂移,能夠處理低頻信號,頻率響應(yīng)特性可做成非常接近于理想的特性,且精度可以達到很高,容易集成等,這些優(yōu)勢決定了數(shù)字濾波器的應(yīng)用越來越廣泛,同時dsp(數(shù)字信號處理器)的出現(xiàn)也促進了數(shù)字濾波器的發(fā)展。本文討論IIR數(shù)字濾波器在DSP上的實現(xiàn)思路,并對其實現(xiàn)方法進行了分析。該論文論述了IIR數(shù)字濾波器的設(shè)計原理及其在DSP上的實現(xiàn)思路,并對用DSP實現(xiàn)IIR濾波器的方法進行了分析。用MATLAB計算出IIR數(shù)字濾波器的系數(shù),產(chǎn)生輸入數(shù)據(jù),應(yīng)用CCS軟件調(diào)試C和匯編程序,并用TMS320C54對IIR進行了仿真。關(guān)鍵詞DSPMATLABIIRAbstrctAlongwiththedevelopmentofinformationtechnology,thedigitalagehasarrived,digitalsignalprocessinggraduallydevelopedintoadoormainstreamtechnology.Filteringtechnologydevelopment,thedevelopmentofinformationtechnologyanditsimportantrole,withrelativetotheanalogfilter,digitalfiltersnodrift,abletohandlethelow-frequencysignals,frequencyresponsebutmakeitveryclosetoidealcharacteristics,andtheprecisioncanreachhigh,easyintegrationetc,theseadvantagesdecidedthedigitalfiltersusedmorewidely,andDSP(digitalsignalprocessor)presencealsopromotedthedevelopmentofdigitalfilter.ThispaperdiscussesontheDSPIIRdigitalfilter,andtheimplementationideastoitsrealizationmethodsareanalyzed.ThispaperdiscussesthedesignprincipleofIIRdigitalfilterandtheimplementationapproachandDSPandIIRfilterwithDSPrealizethemethodsareanalyzed.MATLABcalculateIIRdigitalfiltercoefficients,producetheinputdata,appliedCCSsoftwaredebuggingCandassemblerofTMS320C54IIR,andsimulated.第1章緒論1.1基于DSP的IIR濾波器設(shè)計課題背景隨著集成電路技術(shù)的發(fā)展,各種新型的大規(guī)模和超大規(guī)模集成電路不斷涌現(xiàn),集成電路技術(shù)與計算機技術(shù)結(jié)合在一起,使得數(shù)字信號處理系統(tǒng)的功能越來越強。數(shù)字信號處理技術(shù)逐漸發(fā)展成為一門主流技術(shù),數(shù)字信號處理技術(shù)就是基于VLSI技術(shù)和計算機技術(shù)發(fā)展起來的一門重要技術(shù)。DSP技術(shù)已在通信、控制、信號處理、儀器儀表、醫(yī)療、家電等很多領(lǐng)域得到了越來越廣泛的應(yīng)用。數(shù)字濾波器在各種數(shù)字信號處理中發(fā)揮著十分重要的作用,用數(shù)字濾波器設(shè)計一直是信號處理領(lǐng)域的重要研究課題。常用的數(shù)字濾波器有IIR濾波器和FIR濾波器,其中IIR濾波器因具有結(jié)構(gòu)簡單、占用存儲空間少、運算速度快、較高的計算精度和能夠用較低的階數(shù)實現(xiàn)、較好的選頻特性等優(yōu)點,得到了廣泛應(yīng)用。1.2本設(shè)計主要研究內(nèi)容與方法主要是在學習信號分析與處理的基礎(chǔ)知識后,應(yīng)用MATLAB軟件、CCS軟件結(jié)合來設(shè)計基于DSP的IIR濾波器設(shè)計。應(yīng)用MATLAB軟件設(shè)計IIR數(shù)字濾波器:應(yīng)用MATLAB中的工具FDATOOL工具設(shè)計濾波器的系數(shù);在MATLAB中編譯M文件,產(chǎn)生輸入數(shù)據(jù)。應(yīng)用DSP芯片的匯編語言與C語言進行編寫程序,應(yīng)用DSP集成軟件開發(fā)環(huán)境CCS調(diào)試匯編程序與C程序,并用TMS320C54結(jié)合軟件開發(fā)環(huán)境CCS來實現(xiàn)了IIR數(shù)字濾波的仿真。第2章IIR數(shù)字濾波器的設(shè)計數(shù)字濾波器可以理解為是一個計算程序或算法,將代表輸入信號的數(shù)字時間序列轉(zhuǎn)化為代表輸出信號的數(shù)字時間序列,并在轉(zhuǎn)化過程中,使信號按預定的形式變化。數(shù)字濾波器有多種分類,按頻率特性可劃分為:低通數(shù)字濾波器、高通數(shù)字濾波器、帶通數(shù)字濾波器、帶阻數(shù)字濾波器;根據(jù)數(shù)字濾波器沖激響應(yīng)的時域特征,可分為無限長沖激響應(yīng)(IIR)濾波器和有限長沖激響應(yīng)(FIR)濾波器。2.1IIR數(shù)字濾波器的基本概念無限脈沖響應(yīng)濾波器是數(shù)字濾波器的一種,簡稱IIR數(shù)位濾波器(infiniteimpulseresponsefilter)。由于無限脈沖響應(yīng)濾波器中存在反饋回路,因此對于脈沖輸入信號的響應(yīng)是無限延續(xù)的。iir濾波器有以下幾個特點

1IIR數(shù)字濾波器的系統(tǒng)函數(shù)可以寫成封閉函數(shù)的形式。

2IIR數(shù)字濾波器采用遞歸型結(jié)構(gòu),即結(jié)構(gòu)上帶有反饋環(huán)路。iir濾波器運算結(jié)構(gòu)通常由延時、乘以系數(shù)和相加等基本運算組成,可以組合成直接型、正準型、級聯(lián)型、并聯(lián)型四種結(jié)構(gòu)形式,都具有反饋回路。由于運算中的舍入處理,使誤差不斷累積,有時會產(chǎn)生微弱的寄生振蕩。3iir數(shù)字濾波器在計上可以借助成熟的模擬濾波器的成果,如巴特沃斯、契比雪夫和橢圓濾波器等,有現(xiàn)成的設(shè)計數(shù)據(jù)或圖表可查,其設(shè)計工作量比較小,對計算工具的要求不高。在設(shè)計一個iir數(shù)字濾波器時,我們根據(jù)指標先寫出模擬濾波器的公式,然后通過一定的變換,將模擬濾波器的公式轉(zhuǎn)換成數(shù)字濾波器的公式。

4iir數(shù)字濾波器的相位特性不好控制,對相位要求較高時,需加相位校準網(wǎng)絡(luò)。

5iir單位響應(yīng)為無限脈沖序列fir單位響應(yīng)為有限的

6iir幅頻特性精度很高,不是線性相位的,可以應(yīng)用于對相位信息不敏感的音頻信號上;

fir幅頻特性精度較之于iir低,但是線性相位,就是不同頻率分量的信號經(jīng)過fir濾波器后他們的時間差不變。這是很好的性質(zhì)。無限脈沖響應(yīng)濾波器的缺點:(1)脈沖響應(yīng)為無限長:造成當輸入數(shù)位訊號為有限長的時候,輸出數(shù)位訊號會變成無限長。(2)比有限脈沖響應(yīng)濾波器較不易最佳化。(3)不一定是穩(wěn)定的:因為Z轉(zhuǎn)換后所有的極點不一定都在單位圓內(nèi)2.2IIR濾波器的結(jié)構(gòu)IIR數(shù)字濾波器的單位脈沖響應(yīng)h(n)是無限長的,結(jié)構(gòu)上有輸出到輸入的反饋(頻率采樣結(jié)構(gòu)除外),是遞歸型。濾波器的系統(tǒng)函數(shù)為:(2.1)由傳遞函數(shù)可知,用兩個向量就可以對一個IIR濾波器進行表征。實現(xiàn)IIR濾波器可以采用直接形式、級聯(lián)形式和并聯(lián)形式3種結(jié)構(gòu)。2.2.1直接型直接Ⅰ型:IIR濾波器的系統(tǒng)函數(shù)(2.3)對應(yīng)的差分方程為從上式可以看出,是有兩部分相加構(gòu)成的:第一部分是一個對輸入信號的節(jié)延時結(jié)構(gòu),每節(jié)延時抽頭后加權(quán)相加,這是一個實現(xiàn)零點的橫向結(jié)構(gòu)網(wǎng)絡(luò);第二部分是一個對的延時結(jié)構(gòu),每級延時抽頭后加權(quán)相加,因此是一個反饋網(wǎng)絡(luò)。直接Ⅱ型:IIR濾波器的系統(tǒng)函數(shù)又可寫為可視為分子多項式與分母多項式的倒數(shù)所構(gòu)成的兩個子系統(tǒng)函數(shù)的乘積,這相應(yīng)與子系統(tǒng)級聯(lián)。第一個子系統(tǒng)實現(xiàn)零點,第二個子系統(tǒng)實現(xiàn)極點,而且已知一個線性時不變系統(tǒng),如果交換其子系統(tǒng)的次序,系統(tǒng)函數(shù)不發(fā)生改變。這種結(jié)構(gòu)形式稱為直接Ⅱ型。2.2.2級聯(lián)型將IIR濾波器的系統(tǒng)函數(shù)的分子分母表達為因子的形式,即由于系統(tǒng)函數(shù)的系數(shù)都是實系數(shù),故零、極點只有兩種情況:或者是實根,或者是共軛復根。式中A為歸一化常數(shù),,,表示實零點,表示實極點,每一對共軛因子合并起來,就可以構(gòu)成一個實系數(shù)的二階因子。因此,任意系統(tǒng)均可由一階和二階子系統(tǒng)級聯(lián)構(gòu)成。級聯(lián)結(jié)構(gòu)的一個重要的優(yōu)點是存儲單元比較少,用硬件實現(xiàn)時,可以用一個二階進行分時復用。級聯(lián)結(jié)構(gòu)的另一個特點是,其每一個基本節(jié)都關(guān)系到濾波器的一對極點和一對零點。2.2.3并聯(lián)型將IIR濾波器的系統(tǒng)函數(shù)展成部分分式之和,即式中,由于系統(tǒng)函數(shù)的系數(shù)都是實系數(shù),故,如果M<N,則上式不包括項;如果M=N,則項變?yōu)?。一般IIR系統(tǒng)皆滿足MN的條件。當M=N時,上式變?yōu)榭傁到y(tǒng)函數(shù)為各部分悉數(shù)函數(shù)之和時,則表示其為各相應(yīng)子系統(tǒng)的并聯(lián)。所以上式可理解為一階和二階系統(tǒng)的并聯(lián)組合。顯然,并聯(lián)結(jié)構(gòu)速度快,也可以單獨調(diào)整極點位置,但不能像級聯(lián)那樣直接調(diào)整零極點,因為并聯(lián)型各二階網(wǎng)絡(luò)的零點,并非整個系統(tǒng)函數(shù)的零點。因此,當要求準確傳輸零點時,以采用級聯(lián)型為宜。另外,并聯(lián)型各基本節(jié)的誤差互不影響。2.3IIR濾波器的設(shè)計方法IIR與FIR濾波器不論是在性能,還是在設(shè)計方法上都有很大區(qū)別。FIR濾波器可以根據(jù)給定的頻率特性直接設(shè)計,而IIR濾波器則需要使用模擬濾波器設(shè)計方法進行設(shè)計。IIR濾波器的設(shè)計需要借助于模擬原型濾波器,再將模擬濾波器轉(zhuǎn)化為數(shù)字濾波器,實現(xiàn)這一過程已有成熟完整的程序。進行模擬濾波器設(shè)計時,已有完整的設(shè)計公式和較為完整的圖表可供選用,因此,設(shè)計IIR濾波器可以充分利用這些已有的資源。IIR濾波器的設(shè)計流程如下:根據(jù)一定規(guī)則,將給定的數(shù)字濾波器指標轉(zhuǎn)化為相應(yīng)的模擬濾波器指標。根據(jù)轉(zhuǎn)化后的技術(shù)指標,設(shè)計模擬低通濾波器。根據(jù)一定規(guī)則將轉(zhuǎn)化為。常用轉(zhuǎn)化方法有沖激響應(yīng)不變法和雙線性變化法。如果需要設(shè)計高通、帶通或帶阻濾波器,則應(yīng)首先將其技術(shù)指標轉(zhuǎn)為低通模擬濾波器的技術(shù)指標,然后按新指標設(shè)計,再將轉(zhuǎn)化為。MATLAB7.0工具箱提供了幾個模擬濾波器設(shè)計函數(shù),如Bessel低通模擬濾波器、Butterworth模擬低通濾波器、Chebyshew濾波器、橢圓濾波器等;工具箱還提供了從模擬低通濾波器向低通、高通、帶通和帶阻濾波器轉(zhuǎn)化的函數(shù)。2.4模擬濾波器的離散化從模擬濾波器設(shè)計IIR數(shù)字濾波器就是要由列出的系統(tǒng)函數(shù)進一步得到。歸根結(jié)底是一個由S平面到Z平面的交換,即模擬濾波器的離散化。這個交換要遵循兩個基本目標:(1)的頻率響應(yīng)必須要模仿的頻率響應(yīng),也就是S平面的虛軸應(yīng)該映射到Z平面的單位圓上;(2)的因果穩(wěn)定性,通過映射后仍應(yīng)在多得到的中保持。工程上常用的只有脈沖響應(yīng)不變法和雙線性變換法兩種。下面就對這兩種方法進行介紹。2.4.1脈沖響應(yīng)不變法設(shè)計IIR數(shù)字濾波器脈沖響應(yīng)不變變換法,又稱為標準z變換法,它能保證從模擬濾波器變換所得的數(shù)字濾波器的單位取樣響應(yīng),就是以T為采樣周期對相應(yīng)的模擬濾波器的單位脈沖響應(yīng)的等間隔采樣,也就是的拉氏變換為的Z變換即為數(shù)字濾波器的系統(tǒng)函數(shù)的Z變換和的拉氏變換之間的關(guān)系為即時域的采樣,使連續(xù)信號的拉氏變化在s平面上沿虛軸周期延拓,然后再經(jīng)過的映射關(guān)系,將映射到z平面上,即得。這樣,就實現(xiàn)了從S平面到Z平面的變換,模擬濾波器實現(xiàn)了離散化。將模擬濾波器的系統(tǒng)函數(shù)表達為如下部分分式形式則相應(yīng)的單位脈沖響應(yīng)是式中為單位脈沖響應(yīng)。根據(jù)脈沖響應(yīng)不變變換法的意義,數(shù)字濾波器的單位脈沖響應(yīng)為所以,可得到數(shù)字濾波器的系統(tǒng)函數(shù)為由此可見,從間的變換關(guān)系為脈沖響應(yīng)不變變換法主要用于設(shè)計某些要求在時域上能模仿模擬濾波器功能的數(shù)字濾波器。這種變換法的主要特點是:頻率坐標的變換時現(xiàn)行的,即;具有頻譜的周期延拓效應(yīng),只能用于限帶的頻響特性。采用脈沖響應(yīng)不變第3章詳細設(shè)計在本實驗中使用MATLAB模擬產(chǎn)生信號,觀察濾波前的時域波形和頻域波形。MATLAB仿真后,使用得到的濾波器參數(shù),進行DSP編程,在DSP中實現(xiàn)帶通濾波,并使用CCS的頻譜分析功能,查看DSP的濾波效果。MATLAB程序流程圖如圖3.1所示圖3.1MATLAB程序流程圖CCS匯編程序流程圖如圖3.2所示圖3.2CCS匯編程序流程圖第4章實驗過程4.1匯編語言實驗步驟與內(nèi)容H(z)=MATLAB輔助DSP實現(xiàn)FIR,其總體過程為在DSP中編寫處理程序,在MATLAB中利用濾波器設(shè)計,根據(jù)指定的濾波器性能快速設(shè)計一個IIR,然后把濾波器系數(shù)以頭文件形式導入CCS中,頭文件中MATLAB輔助DSP實現(xiàn)IIR數(shù)字濾波器含濾波器階數(shù)和系數(shù)數(shù)組,在MATLAB中調(diào)試、運行DSP程序并顯示、分析處理后的數(shù)據(jù)。使用該方法,便于采用匯編語言來實現(xiàn)程序。頭文件名不變,當MATLAB中設(shè)計的濾波器系數(shù)改變時,相應(yīng)頭文件中系數(shù)也改變,方便了程序調(diào)試、仿真。(1)在MATLAB中先編寫程序,查看待濾波和已濾波的信號的時域和頻域波形,如圖4.1所示.圖4.1待濾波信號的時域圖頻域圖利用FDATOOL設(shè)計IIR濾波器的參數(shù),操作步驟如圖4.2所示。圖4.2FRI濾波器的參數(shù)打開Export,把Numerator改為B,如圖4.3所示。圖4.3Export設(shè)置已濾波的信號的時域和頻域波形,如圖4.4所示。圖4.4已濾波信號時域波形已濾波信號頻域波形圖MATLAB濾波器設(shè)計工具在完成IIR設(shè)計后,如圖4.5所示,在Exportas中選擇16bit符號整數(shù)輸出,然后單擊OK按鈕。生成iir.hC語言頭文件。將系數(shù)稍作修改,調(diào)整后拷貝到程序的系數(shù)初始化空間即可。圖4.5MATLAB輸出數(shù)值轉(zhuǎn)換圖(2)在CCS中編寫匯編語言程序,進行調(diào)試,實現(xiàn)帶通濾波的功能。在CCSIDE中建立iir.pjt工程,用匯編語言編寫處理主程序iir.asm。另外根據(jù)板上的存儲器配置方式,編寫存儲器配置文件iir.cmd文件,將MATLAB生成的LHM.h和input1.dat文件拷貝到iir.pjt工程文件夾下,進行編譯、鏈接,生成可執(zhí)行文件iir.out。(3)加載初始化data數(shù)據(jù),圖4.6所示。圖4.6data初始化圖運行程序,查看輸入輸出波形,修改相應(yīng)參數(shù)進行調(diào)試。4.2實驗過程中出現(xiàn)的錯誤及解決的辦法(1)在MATLAB程序設(shè)計中,采樣頻率設(shè)置的過小,截止頻率大于采樣頻率的一半,運行的時候圖形出現(xiàn)錯誤。(2)IIR.m中的采樣頻率要和開始設(shè)置時的采樣頻率一致,否則結(jié)果會出現(xiàn)偏差。(3)在CCS中未定義標號,程序運行錯誤。(4)在.h文件中未把coeff頂格寫,編譯時出現(xiàn)錯誤。(5)未將iir.h和input.dat文件考入工程文件中。(6)間接尋址過程中,程序中丟失。(7)在View的Graph中單擊Time/frequency出現(xiàn)graphpropertydialog框,未修改抽樣點數(shù)。顯示的圖形出現(xiàn)差異4.3CCS程序運行后的各種輸出結(jié)果在View的Graph中單擊Time/frequency出現(xiàn)graphpropertydialog框。將顯示類型,圖形名稱,起始地址,抽樣點數(shù),數(shù)據(jù)類型等分別進行設(shè)置,輸出各種波形。輸出濾波前的信號時域波形。首先,設(shè)置如圖4.7所示,輸出濾波前的信號時域波形。圖4.7Graphpropertydialog設(shè)置框圖單擊OK后生成如下圖4.8波形。圖4.8濾波前后信號波形圖圖4.8上為濾波前的信號,波形很雜亂,從時域上很難看出信號的周期性。修改相應(yīng)設(shè)置,輸出如圖4.9下所示濾波前信號頻譜。圖4.9濾波前信號頻譜波形圖經(jīng)過濾波后,時域波形頻譜波形如圖4.10所示。圖4.10濾波后信號頻譜圖由上述的所有截圖可知,輸入?yún)?shù)中,通帶截止頻率和阻帶截止頻率是比較重要的兩個參數(shù),不宜過小,過小濾掉的高頻成分太多,很難還原出遠波形的形狀,也不宜過大,過大濾波效果欠佳。在本課程設(shè)計中,通帶截止頻率選用4000Hz,阻帶截止頻率選用4500Hz,因此,顯示圖形時的,時域顯示的抽樣點數(shù)為1024,頻域顯示的帶寬為0.5Hz。對比濾波前后信號的時域圖4.8頻譜波形圖4.9和4.10可以知道,濾波前的時域信號的波形圖的波形很雜亂,很難看出信號的周期性,濾波后周期性也相對的明顯起來了;濾波前信號分布在整個頻帶上,濾波后阻帶范圍內(nèi)的基本被濾掉,這些都可以從上述截圖看出。4.4出現(xiàn)的錯誤及如何改正(1)建立新工程時,忘加.cmd文件,是編譯出錯;改正:向工程中添加.cmd文件。(2)生成輸入數(shù)據(jù)時,采樣頻率設(shè)置過小,使采樣后的數(shù)據(jù)丟失信息;改正:增大采樣頻率。(3)在MATLAB中,利用FDATOOL生成濾波器系數(shù)時,由于大意,把設(shè)置的階數(shù)勿以為是濾波器的階數(shù)n,實際上是n+1階,使設(shè)置的階數(shù)和程序中的不一致;改正:調(diào)整相應(yīng)的階數(shù),使其一致。(4)程序編譯時,以頭文件導入濾波器系數(shù),工程中缺少tmwtypes.h文件,是程序出現(xiàn)錯誤,無法編譯;改正:找到相應(yīng)的tmwtypes.h文件,添加到工程中。(5)以頭文件導入濾波器系數(shù)時,需要導入的文件和主程序中導入的文件名不一致,致使程序錯誤;改正:修改程序,是其保持一致。(6)程序中輸出數(shù)據(jù)沒有設(shè)置為long型,開始勿以為是強制轉(zhuǎn)換,結(jié)果輸出數(shù)據(jù)的出現(xiàn)了錯誤;改正:輸出數(shù)據(jù)加上(long),強制轉(zhuǎn)換。(7)裝載過數(shù)據(jù)后,就直接查看結(jié)果;改正:在裝載完數(shù)據(jù)后,先運行,再查看結(jié)果。匯編程序清單irr.prj文件內(nèi)容:/*IIR直接II型低通數(shù)字濾波器madebyzhubaitong2017/6/12*/#include"math.h"#include"stdio.h"#defineIIRNUMBER7//濾波系數(shù)個數(shù),階數(shù)為6階#defineSIGNAL1F2000//模擬頻率#defineSIGNAL2F12000//模擬頻率#defineSAMPLEF44200//采樣頻率#definePI3.1415926floatInputWave();floatIIR(float);floatfBn[IIRNUMBER]={0.0114322299248657, 0.0171793483064575, 0.0329713371065616, 0.0334189652543020, 0.0329713371065617, 0.0171793483064574, 0.0114322299248658 };//分子系數(shù)floatfAn[IIRNUMBER]={1, -3.10179843400455, 5.32463688839471, -5.65443746900525, 3.92680829562253, -1.67065468248483, 0.351136432174037 };//分母系數(shù)floatdd[IIRNUMBER]={0.0};//中間變量floatfInput,fOutput;floatfSignal1,fSignal2;floatfStepSignal1,fStepSignal2;floatf2PI;intj;floatfIn[256],fOut[256];intnIn,nOut;main(){ nIn=0;nOut=0; f2PI=2*PI; fSignal1=0.0;//初始相位 fSignal2=PI*0.1;//初始相位 fStepSignal1=2*PI*SIGNAL1F/SAMPLEF;//波形1數(shù)字頻率 fStepSignal2=2*PI*SIGNAL2F/SAMPLEF;//波形2數(shù)字頻率 while(1) { fInput=InputWave();//輸入Xn fIn[nIn]=fInput; nIn++;nIn%=256;//防止溢出 fOutput=IIR(fInput);//輸出Yn fOut[nOut]=fOutput; nOut++; //請在此句上設(shè)置軟件斷點 if(nOut>=256)//防止溢出 { nOut=0; } }}floatInputWave()//產(chǎn)生波形{ floatXn; Xn=sin(fSignal1)+0.5*sin(fSignal2); fSignal1+=fStepSignal1; if(fSignal1>=f2PI) fSignal1-=f2PI; fSignal2+=fStepSignal2; if(fSignal2>=f2PI) fSignal2-=f2PI; return(Xn);}xfloatIIR(floatXn)//直接II型IIR濾波{ floatYn=0.0; floatya=0.0;for(j=IIRNUMBER-1;j>0;j--)//中間變量dd[i]向后移一位 { dd[j]=dd[j-1]; } for(j=1;j<IIRNUMBER;j++) { ya+=fAn[j]*dd[j]; } ya=Xn-ya;//輸入Xn dd[0]=ya;//更新中間變量dd for(j=0;j<IIRNUMBER;j++) { Yn+=fBn[j]*dd[j]; } returnYn;//輸出Yn}yuyinjiazao.m的程序如下:[y,fs,bits]=wavread('dqt.wav');y=y(:,1);sigLength=length(y);Y=fft(y,sigLength);%%頻譜halflength=floor(sigLength/2);f=fs*(0:halflength)/sigLength;%%周期的一半t=(0:sigLength-1)/fs;%%采樣時間間隔figure(1)subplot(2,1,1)plot(t,y);xlabel('Time(s)');title('時域')subplot(2,1,2)plot(f,abs(Y(1:halflength+1)));xlabel('Frequency(Hz)');axis([0,8000,0,4000]);title('頻域')%%加噪聲n=0.2*cos(2*pi*7000*t);%%噪聲頻率為7000Hzwavwrite(n,fs,'noise.wav')y1(:,1)=y(:,1)+n';%%加噪語音信號figure(2)subplot(2,1,1)plot(t

溫馨提示

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

評論

0/150

提交評論