數(shù)字信號處理課程設計(1)MATLAB實現(xiàn)_第1頁
數(shù)字信號處理課程設計(1)MATLAB實現(xiàn)_第2頁
數(shù)字信號處理課程設計(1)MATLAB實現(xiàn)_第3頁
數(shù)字信號處理課程設計(1)MATLAB實現(xiàn)_第4頁
數(shù)字信號處理課程設計(1)MATLAB實現(xiàn)_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

PAGE數(shù)字信號處理課程設計報告選題名稱:IIR濾波器分析與設計 系(院):計算 機 工 程 學院 專業(yè): 通信工程 班級: 姓名:學號: 指導教師: 學年學期: 2010~2011學年第1學期2011年01

摘要:隨著社會的進步,數(shù)字信號處理技術也在飛躍的發(fā)展,作為通信工程的學生要對數(shù)字信號有更深一層的理解,本次要做的課程設計就是用MATLAB做濾波器的設計,這次課程設計是檢驗本學期學習的數(shù)字信號處理這門課,加深了對濾波器設計原理以及實現(xiàn)方法的理解。常用的設計低通濾波器的方法有脈沖響應不變法以及雙線性法,這兩種方法都有各自的優(yōu)缺點,可以通過編寫MATLAB程序觀察他們的幅度特性,相位特性,以及更高一層次的就是用自己設計的濾波器來實現(xiàn)數(shù)字濾波?,F(xiàn)在也有相當成熟的濾波器設計模型,如巴特沃斯,以及切比雪夫濾波器。通過設計界面,編寫函數(shù),最終還可以達到可以將自己錄制的聲音加載到設計的濾波器中,聽濾波前后的聲音的變化,這種更加直觀的感受濾波器的效果的方法,而此次設計的濾波器在現(xiàn)實當中以用也是相當廣范的,這也是學習數(shù)字信號處理這門課程,以及掌握濾波器設計方法的現(xiàn)實所在。關鍵詞:數(shù)字信號;脈沖響應不變法;雙線性法;數(shù)字濾波

目 錄TOC\o"1-2"\u1課題綜述 11.1課程設計的意義 11.2課程設計的目的 11.3課程設計面對的問題以及關鍵技術 12系統(tǒng)分析 22.1整體分析 22.2脈沖響應不變法 22.3雙線性變換法的基本原理 32.4巴特沃斯濾波器 52.5切比雪夫濾波器 52.6總體設計圖 53代碼編寫 63.1顯示幅度譜函數(shù)IIR_DispMag() 63.2創(chuàng)建濾波器IIR_Createfilter() 73.3顯示相位譜函數(shù)IIR_DispAngle() 83.4顯示零極點圖函數(shù)IIR_DispZplane() 83.5選擇波形文件IIR_GetWAVFile() 83.6播放原始文件IIR_Playorg 83.7播放時濾波后文件IIR_Playmod 94代碼的運行與調試 95軟件運行與測試 9總結 12致謝 13參考文獻 14設計任務書課題名稱IIR濾波器分析與設計設計目的理解并掌握無限脈沖響應數(shù)字濾波器(IIR)的機理,分析IIR濾波器的結構特性,觀察IIR濾波器的頻域特性;學習IIR數(shù)字濾波器的三種典型的設計方法,并觀察、比較設計結果;熟悉IIR數(shù)字濾波器的計算機編程;加深對課堂知識的理解與靈活應用,學習開發(fā)資料的收集與整理,學會撰寫課程設計報告。實驗環(huán)境微型電子計算機(PC);MATLAB6.5或VisualC++6.0等開發(fā)環(huán)境。任務要求利用課余時間查閱課題相關資料,深入理解課題含義及設計要求;在第18周完成預設計,并請指導教師審查,通過后方可進行下一步工作;按指導書要求設計軟件;要求形成穩(wěn)定的程序軟件,可以運行,方可申請答辯;結束后,及時提交課程設計報告(含紙質稿、電子稿)。工作進度計劃序號起止日期工作內容12011.01.03~2011.01.03在預設計的基礎上,進一步查閱資料,完善設計方案,形成書面材料。22011.01.04~2011.01.05設計總體方案,繪制流程框圖,編寫代碼,上機調試。32011.01.06~2011.01.07測試程序,優(yōu)化代碼,增強功能,撰寫設計報告。42011.01.08~2011.01.08提交軟件代碼、設計報告,參加答辯,根據(jù)教師反饋意見,修改、完善設計報告。指導教師(簽章):年月日數(shù)字信號處理課程設計報告PAGE141課題綜述數(shù)字濾波器是數(shù)字信號處理理論的一部分。數(shù)字信號處理主要是研究用數(shù)字或符號的序列來表示信號波形,并用數(shù)字的方式去處理這些序列,把它們改變成在某種意義上更為有希望的形式,以便估計信號的特征參量,或削弱信號中的多余分量和增強信號中的有用分量。具體來說,凡是用數(shù)字方式對信號進行濾波、變換、調制、解調、均衡、增強、壓縮、固定、識別、產(chǎn)生等加工處理,都可納入數(shù)字信號處理領域。1.1課程設計的意義《數(shù)字信號處理》課程設計是在學生完成數(shù)字信號處理和MATLAB的結合后的基本實驗以后開設的。本課程設計的目的是為了讓學生綜合數(shù)字信號處理和MATLAB并實現(xiàn)一個較為完整的小型濾波系統(tǒng)。這一點與驗證性的基本實驗有本質性的區(qū)別。開設課程設計環(huán)節(jié)的主要目的是通過系統(tǒng)設計、軟件仿真、程序安排與調試、寫實習報告等步驟,使學生初步掌握工程設計的具體步驟和方法,提高分析問題和解決問題的能力,提高實際應用水平。1.2課程設計的目的1.理解并掌握無限脈沖響應數(shù)字濾波器(IIR)的機理,分析IIR濾波器的結構特性,觀察IIR濾波器的頻域特性;2.學習IIR數(shù)字濾波器的三種典型的設計方法,并觀察、比較設計結果;3.熟悉IIR數(shù)字濾波器的計算機編程;4.加深對課堂知識的理解與靈活應用,學習開發(fā)資料的收集與整理,學會撰寫課程設計報告。1.3課程設計面對的問題以及關鍵技術本次課程設計是用MATLAB軟件來實現(xiàn)的,所以第一個需要解決的問題就是如何把自己的思想轉化為MATLAB語言,但是在這次的課程設計中要感謝我們的老師,因為他已經(jīng)將大部分的代碼提供給我們了。本次設計的關鍵技術就是脈沖響應不變法以及雙線性法的函數(shù)調用以及求極點,零點的Z變換函數(shù)調用。最后就是如何實現(xiàn)語音信號的數(shù)字濾波。2系統(tǒng)分析2.1整體分析利用模擬濾波器設計數(shù)字濾波器,就是從已知的模擬濾波器系統(tǒng)函數(shù)Ha(s)設計數(shù)字濾波器系統(tǒng)函數(shù)H(z),這歸根到底是一個由S平面到Z平面的變換,這種映射變換應遵循兩個基本原則: 1)H(z)的頻響要能與Ha(s)的頻響保持一致,即S平面的虛軸應映射到Z平面的單位圓上。 2)Ha(s)的因果穩(wěn)定性映射成H(z)后保持不變,即S平面的左半平面Re{S}<0應映射到Z平面的單位圓以內|Z|<1。所以濾波器的設計就是在給定了濾波器的技術指標后,確定濾波器的階數(shù)N和系數(shù)和系數(shù){ai,bi}。在滿足技術指標的條件下,濾波器的階數(shù)應盡可能低,因為濾波器的階數(shù)越低,實現(xiàn)濾波器的成本就越低。2.2脈沖響應不變法脈沖響應不變法是從濾波器的脈沖響應出發(fā),使數(shù)字濾波器的單位脈沖響應序列h(n)正好等于模擬濾波器的沖激響應ha(t)的采樣值,即h(n)=ha(nT),T為采樣周期。如以Ha(s)及H(z)分別表示ha(t)的拉氏變換及h(n)的Z變換,即Ha(s)=L[ha(t)],H(z)=Z[h(n)]計算H(Z):脈沖響應不變法特別適用于用部分分式表達系統(tǒng)函數(shù),模擬濾波器的系統(tǒng)函數(shù)若只有單階極點,且分母的階數(shù)高于分子階數(shù)N>M,則其拉氏反變換為:(2.2.1)單位階躍對ha(t)采樣得到數(shù)字濾波器的單位脈沖響應序列(2.2.2)再對h(n)取Z變換,得到數(shù)字濾波器的傳遞函數(shù):(2.2.3)第二個求和為等比級數(shù)之和,要收斂的話,必有所以有(2.2.4)根據(jù)理想采樣序列拉氏變換與模擬信號拉氏變換的關系(2.2.5)以上表明,采用脈沖響應不變法將模擬濾波器變換為數(shù)字濾波器時,它所完成的S平面到Z平面的變換,正是拉氏變換到Z變換的標準變換關系,即首先對Ha(s)作周期延拓,然后再經(jīng)過z=est的映射關系映射到Z平面上。穩(wěn)定性:如果模擬濾波器是穩(wěn)定的,則所有極點si都在s左半平面,即Re[si]<0,那么變換后H(Z)的極點est也都在單位圓以內,即:因此數(shù)字濾波器保持穩(wěn)定。2.3雙線性變換法的基本原理脈沖響應不變法使得數(shù)字濾波器在時域上能夠較好的模仿模擬濾波器,但是由于從S平面到Z平面的映射具有多值性,使得設計出來的數(shù)字濾波器不可避免的出現(xiàn)頻譜混迭現(xiàn)象。為了克服脈沖響應不變法可能產(chǎn)生的頻譜混跌效應的缺點,我們使用一種新的變換雙線性變換。雙線性變換法可認為是基于對微分方程的積分,利用對積分的數(shù)值逼近的道德。仿真濾波器的傳遞函數(shù)為(2.2.5)將展開為部份分式的形式,并假設無重復幾點,則(2.2.6)那么,對于上述函數(shù)所表達的數(shù)字信號處理系統(tǒng)來講,其仿真輸入和模擬輸出有如下關系(2.2.7)利用差分方程來代替導數(shù),即(2.2.8)同時令這樣,便可將上面的微分方程寫為對應的差分方程形式(2.2.9)兩邊分別取變換,可得(2.2.10)這樣,通過上述過程,就可得到雙線性變換中的基本關系,如下所示所謂的雙線性變換,僅是指變換公式中與的關系無論是分子部份還是分母部份都是線性的。MATLAB中設計IIR數(shù)字濾波器的具體步驟如下:1.把給出的數(shù)字濾波器的性能指標轉換為模擬低通濾波器的性能指標;2.根據(jù)轉換后的性能指標,通過濾波器結束選擇函數(shù),來確定濾波器的最小階數(shù)n和固有頻率wn;3.由最小階數(shù)n得到低通濾波器原型;4.由固有頻率wn把模擬低通濾波器轉換為模擬低通、高通、帶通或帶阻濾波器;運用雙線性變換法把模擬濾波器轉換成數(shù)字濾波器。2.4巴特沃斯濾波器巴特沃斯濾波器是最常用的濾波器,而巴特沃斯濾波器又可以采用脈沖響應不變法和雙線性法來設計,本文主要講述的是脈沖相應不變法的的設計。脈沖響應不變法是從濾波器的脈沖響應出發(fā),使數(shù)字濾波器的單位脈沖響應序列h(n)模仿模擬濾波器的沖激響應ha(t),即將ha(t)進行等間隔采樣,使h(n)正好等于ha(t)的采樣值,滿足:h(n)=ha(nT),式中,T是采樣周期。這就是說,數(shù)字濾波器的頻率響應是模擬濾波器頻率響應的周期延拓。正如采樣定理所討論的,只有當模擬濾波器的頻率響應是限帶的,且?guī)抻谡郫B頻率以內,才能使數(shù)字濾波器的頻率響應在折疊頻率以內重現(xiàn)模擬濾波器的頻率響應,而不產(chǎn)生混疊失真。但是,任何一個實際的模擬濾波器頻率響應都不是嚴格限帶的,變換后就會產(chǎn)生周期延拓分量的頻譜交疊,即產(chǎn)生頻率響應的混疊失真,這時數(shù)字濾波器的頻響就不同于原模擬濾波器的頻響,而帶有一定的失真。當模擬濾波器的頻率響應在折疊頻率以上處衰減越大、越快時,變換后頻率響應混疊失真就越小。這時,采用脈沖響應不變法設計的數(shù)字濾波器才能得到良好的效果。2.5切比雪夫濾波器切比雪夫濾波器的幅度特性具有等波紋特性,它有兩種形式,這里僅描述切比雪夫I濾波器,其振幅特性在通帶內是等波紋的、在阻帶內是單調遞減的。切比雪夫濾波器特點是在過渡帶比巴特沃斯濾波器的衰減快,但頻率響應的幅頻特性不如后者平坦。切比雪夫濾波器和理想濾波器的頻率響應曲線之間的誤差最小,但是在通頻帶內存在幅度波動。2.6總體設計圖設計的步驟流程:求出模擬低通濾波器指標求出模擬低通濾波器指標設計模擬低通濾波器將模擬濾波器轉換為數(shù)字濾波器利用MATLAB編程實現(xiàn)濾波器得到結果開始圖2.1設計流程圖MATLAB數(shù)字濾波器設計整體圖:圖2.2整體界面3代碼編寫3.1顯示幅度譜函數(shù)IIR_DispMag()functionIIR_DispMag()%顯示幅度譜函數(shù)IIR_DispMag[numdenCYPLYYYFlag]=IIR_Createfilter;%參數(shù)調用以設計好的濾波器參數(shù)if(~YYYFlag)return;endfigure(1);[hf]=freqz(num,den,512,CYPL);%轉換成數(shù)字濾波器plot(f,abs(h));%回執(zhí)幅頻曲線gridon;zoomon;3.2創(chuàng)建濾波器IIR_Createfilter()3.2.1Wp=2*pi*f2/f1;Ws=2*pi*f3/f1;OmigaP=Wp*f1;脈沖相應不變法的數(shù)字指標與模擬指標頻率轉換OmigaS=Ws*f1;[nW]=buttord(OmigaP,OmigaS,Rp,Rs,'s');%調用巴特沃斯濾波器函數(shù)[BA]=butter(n,W,'s');%默認為低通濾波器[num,den]=impinvar(B,A,f1);3.2.2Wp=2*pi*f2/f1;Ws=2*pi*f3/f1;OmigaP=Wp*f1;OmigaS=Ws*f1;[nW]=buttord(OmigaP,OmigaS,Rp,Rs,'s');[BA]=butter(n,W,'high','s');%高通濾波器設計[num,den]=impinvar(B,A,f1);3.2.Wp=2*pi*f2/f1;Ws=2*pi*f3/f1;wp1=Wp*f1;%頻率轉換ws1=Ws*f1;[nW]=cheb1ord(wp1,ws1,Rp,Rs,'s');%切比雪夫I型函數(shù)調用[BA]=cheby1(n,1,W,'low','s');[num,den]=bilinear(B,A,f1);3.2.4切比雪夫I型Wp=2*pi*f2/f1;Ws=2*pi*f3/f1;wp1=Wp*f1;%頻率轉換ws1=Ws*f1;[nW]=cheb1ord(wp1,ws1,Rp,Rs,'s');%切比雪夫I型函數(shù)調用[BA]=cheby1(n,1,W,'high','s');[num,den]=bilinear(B,A,f1);3.3顯示相位譜函數(shù)IIR_DispAngle()functionIIR_DispAngle()[numdenCYPLYYYFlag]=IIR_Createfilter;if(~YYYFlag)return;endfigure(2);[hf]=freqz(num,den,512,CYPL);plot(f,(angle(h)));gridon;zoomon;3.4顯示零極點圖函數(shù)IIR_DispZplane()functionIIR_DispZplane()[numdenCYPLYYYFlag]=IIR_Createfilter;if(~YYYFlag)return;endfigure(3);zplane(num,den);%Z域變換axis([-5,5,-2,2]);3.5選擇波形文件IIR_GetWAVFile()functionsig=IIR_GetWAVFile()[name,path]=uigetfile('*.wav','請選擇一個.wav波形文件');%選取文件的函數(shù)調用file_path=[path,name];if(~(isstr(name))|~(isstr(path)))sig=[];return;end[datafreqbits]=wavread(file_path);time=length(data)/freq;%info=['源信號-'name';'str2num(time)'秒;fs='str2num(freq)'Hz'];s=[];s.data=data;s.freq=freq;s.bits=bits;%=info;s.time=time;data_hndl=findobj(gcbf,'Tag','Button_WAV');set(data_hndl,'Userdata',s);3.6播放原始文件IIR_PlayorgfunctionIIR_Playorg()data_hndl=findobj(gcbf,'Tag','Button_WAV');sig_info=get(data_hndl,'Userdata');data=sig_info.data;fs=sig_info.freq;sound(data,fs);3.7播放時濾波后文件IIR_PlaymodfunctionIIR_Playmoddata_hndl=findobj(gcbf,'Tag','Button_WAV');sig_info=get(data_hndl,'Userdata');data=sig_info.data;fs=sig_info.freq;[BAsuc1suc2]=IIR_Createfilter;if(~suc2)return;endout=filter(B,A,data);%音頻文件通過選擇的濾波器sound(out,fs);4代碼的運行與調試本次試驗的大部分代碼是書上給出的,但是有點小問題,就是在自編函數(shù)哪有錯誤,原句是:if(strcmp(fil_name,’錯誤代碼’)),修改過后的if(strcmp(fil_name,’巴特沃斯’)),這樣程序就可以運行了。再有就是要錄一段自己的音頻文件,并且格式是WMA的,最好是有高音和低音區(qū)別的,因為這樣我們就可以更清楚的辨別濾波器的濾音效果。5軟件運行與測試在巴特沃斯低通濾波器環(huán)境情況下,設置通帶截止頻率與阻帶截止頻率分別為100,500;得到的幅度、相位,零極點圖如圖示:幅度響應(a)相位響應(b)零極點(c)圖5.1低通的幅度、相位,零極點圖在巴特沃斯高通濾波器環(huán)境情況下,設置通帶截止頻率與阻帶截止頻率分別為500,100;得到的幅度、相位,零極點圖如圖示:幅度響應(a)相位響應(b)零極點(c)圖5.2高通的幅度、相位,零極點圖在切比沃雪夫I高通濾波器環(huán)境下,設置通帶截止頻率與阻帶截止頻率分別為200,100;得到幅度、相位,零極點圖如圖5.3所示。幅度(a)相位(b)零極點(c)圖5.3幅度、相位,零極點圖在切比沃雪夫I低通濾波器環(huán)境下,設置通帶截止頻率與阻帶截止頻率分別為200,100;得到幅度、相位,零極點圖如圖5.4所示。幅度(a)相位(b)零極點(c)圖5.4幅度、相位,零極點圖點擊選擇音頻文件按鈕,會出現(xiàn)選擇文件的信息框,如圖5.4。圖5.4讀取音頻文件選擇音頻文件李棟.wav,先播放原音頻文件,然后播放濾波后的音頻文件,二者一對比明顯可以聽出濾波后音頻文件的效果了,高音部分是被濾除的,只保留了滿足低通條件的那部分音頻,聽起來聲音低沉,還有點延時。

總 結這次課程設計是相當糾結的,因為我們還有考試,時間對我來說是寶貴的不行了,每天都是兩點多睡覺,看書的同時還要把課程設計的界面,代碼,以及原理進行詳細的閱讀分析。不過雖然是疲憊的,但是還是很充實的。而就是前一個星期,我們剛考完數(shù)字信號處理,所以對數(shù)字濾波器的設計還是很了解的,不管是脈沖響應不變法還是雙線性法,我對原理部分還是比較懂的,設計的步驟以及關鍵技術如何用MATLAB語言實現(xiàn)我也都可以獨立完成,但是本次是課程設計是一個綜合的濾波器,不僅有巴特沃斯濾波器,同時還有切比雪夫濾波器,但是原理大致還是相通的。而書上都已經(jīng)給出了用脈沖響應不變法以及雙線性法的設計步驟,我們要做的就是把代碼同我們設計的濾波器界面進行一一對應,這個工作是需要耐心的,因為只要有控件對應不上,那么這個功能就實現(xiàn)不了。在這次的數(shù)字濾波器是設計中,我們學到了課上老師沒怎么講的關于語音信號的濾波功能,其實這也只是數(shù)字濾波器的其中一個小小的功能,其實濾波器還可以對圖片,視頻信號等進行濾波,經(jīng)過處理過后的信號才是我們想要的。就我們本次設計的IIR數(shù)字濾波器,我們可以知道,IIR濾波器的優(yōu)點就是階數(shù)少,也就是說延時少,還可以借助成熟的濾波器的成功,比如巴特沃斯,橢圓濾波器等,但同時不可避免的,IIR濾波器也有著它自己的缺點,主要就是非線性相位,易出現(xiàn)震蕩,不穩(wěn)定,主要是因為用的遞歸計算。這次課程設計由于時間的原因,我做的還是不怎么好的,其中對于代碼的研究也沒那么好,很多的用法,調用等,我都是照著課程設計指導書打上去的,也沒多問幾個為什么,這是我以后在學習上需要注意的地方。數(shù)字信號這門課雖然以及結束了,但是以后還將會結束很多關于數(shù)字信號處理的地方,都需要我們掌握扎實的基本功,這樣不管遇到什么問題,只要我們把原理搞清楚,以及問題的思想,我們就可以運用自己所學的知識解決這些問題。

致 謝在這次的課程設計中,我首先要感謝淮陰工學院,計算機工程學院給我這次十分寶貴的實踐機會,以及為我們準備實驗而勤勤懇懇工作的機房工作人員,還有我的那幫樂于助人的同學們,沒有他們的幫助我就沒辦法按時完成課程設計。課程設計的時間是短暫的,只有短短的

溫馨提示

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

評論

0/150

提交評論