版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 音樂信號(hào)濾波去噪—用凱塞窗設(shè)計(jì)的FIR濾波器</p><p> 學(xué)生姓名: 指導(dǎo)老師:</p><p> 摘 要 本課程設(shè)計(jì)主要是通過使用凱塞窗設(shè)計(jì)一個(gè)FIR濾波器以對(duì)音樂信號(hào)進(jìn)行濾波去噪處理。本設(shè)計(jì)首先通過麥克風(fēng)采集一段音樂信號(hào),依據(jù)對(duì)該信號(hào)的頻譜分析,給定相關(guān)指標(biāo)。以MATLAB軟件為平臺(tái),采用凱塞窗設(shè)計(jì)滿足指標(biāo)的FIR濾波器,以該音樂信號(hào)進(jìn)行濾波去噪
2、處理。通過對(duì)比濾波前后的波形圖,深入了解濾波器的基本方法。通過程序調(diào)試及完善,該設(shè)計(jì)基本滿足設(shè)計(jì)要求。</p><p> 關(guān)鍵詞 濾波去噪;FIR濾波器;凱塞窗函數(shù);MATLAB</p><p><b> 1 引 言</b></p><p> 數(shù)字濾波器是一種用來過濾時(shí)間離散信號(hào)的數(shù)字系統(tǒng),它是通過對(duì)抽樣數(shù)據(jù)進(jìn)行數(shù)學(xué)處理來達(dá)到頻域?yàn)V波
3、的目的。隨著現(xiàn)代通信的數(shù)字化,數(shù)字濾波器變得更加重要。數(shù)字濾波器的種類很多,但總的來說可以分成兩大類,一類是經(jīng)典濾波器,另一類可稱為現(xiàn)代濾波器。從濾波特性方面考慮,數(shù)字濾波器可分成數(shù)字高通、數(shù)字低通、數(shù)字帶通和數(shù)字帶阻等濾波器。從實(shí)現(xiàn)方法上考慮,將濾波器分成兩種,一種稱為無限脈沖響應(yīng)濾波器,簡(jiǎn)稱IIR(Infinite Impulse Response)濾波器,另一種稱為FIR(Finite Impulse Response)濾波器[1
4、]。設(shè)計(jì)FIR數(shù)字濾波器的方法有窗函數(shù)法、頻率采樣法和等波紋最佳逼近法等。</p><p> 1.1 課程設(shè)計(jì)目的</p><p> 數(shù)字信號(hào)處理(Digital Signal Processing,簡(jiǎn)稱DSP)是一門涉及許多學(xué)科而又廣泛應(yīng)用于許多領(lǐng)域的新興學(xué)科。20世紀(jì)60年代以來,隨著計(jì)算機(jī)和信息技術(shù)的飛速發(fā)展,數(shù)字信號(hào)處理技術(shù)應(yīng)運(yùn)而生并得到迅速的發(fā)展。在過去的二十多年時(shí)間里,數(shù)字
5、信號(hào)處理已經(jīng)在通信等領(lǐng)域得到極為廣泛的應(yīng)用。數(shù)字信號(hào)處理是利用計(jì)算機(jī)或?qū)S锰幚碓O(shè)備,以數(shù)字形式對(duì)信號(hào)進(jìn)行采集、變換、濾波、估值、增強(qiáng)、壓縮、識(shí)別等處理,以得到符合人們需要的信號(hào)形式。</p><p> 在本次課程設(shè)計(jì)中,最主要的設(shè)計(jì)是設(shè)計(jì)FIR濾波器,F(xiàn)IR濾波器的設(shè)計(jì)方法主要分為兩類:第一類是基于逼近理想濾波器器特性的方法包括窗函數(shù)法、頻率采樣法、和等波紋最佳逼近法;第二類是最優(yōu)設(shè)計(jì)法。</p>
6、<p> 本次的課程設(shè)計(jì)主要采用的是第一類設(shè)計(jì)方法,是利用漢寧窗函數(shù)法設(shè)計(jì)FIR濾波器對(duì)一段語音進(jìn)行濾波去噪,通過這一過程,對(duì)濾波前后波形進(jìn)行對(duì)比分析得到結(jié)論。此課程設(shè)計(jì)比較簡(jiǎn)單,主要是將書本中的知識(shí)運(yùn)用到現(xiàn)實(shí)中,并且根據(jù)自己對(duì)設(shè)計(jì)題目的理解,運(yùn)用軟件編寫出程序?qū)崿F(xiàn)這一設(shè)計(jì),也是我們對(duì)數(shù)字信號(hào)處理的原理進(jìn)行驗(yàn)證的一個(gè)過程。對(duì)此,也可以加深我們對(duì)所學(xué)知識(shí)的理解,培養(yǎng)我們的動(dòng)手能力。</p><p>
7、 1.2課程設(shè)計(jì)的要求</p><p> ?。?)通過利用各種不同的開發(fā)工具實(shí)現(xiàn)模擬信號(hào)數(shù)字化、信道編解碼、基帶數(shù)字信號(hào)編解碼、數(shù)字信號(hào)的調(diào)制解調(diào)和語音信號(hào)的濾波去噪等課題,掌握數(shù)字信號(hào)的分析方法和處理方法。</p><p> ?。?)按要求編寫課程設(shè)計(jì)報(bào)告書,能正確闡述設(shè)計(jì)和實(shí)驗(yàn)結(jié)果等等。</p><p> (3)通過課程設(shè)計(jì)培養(yǎng)學(xué)生嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度,認(rèn)真的工作作
8、風(fēng)和團(tuán)隊(duì)協(xié)作精神。</p><p> (4)在老師的指導(dǎo)下,要求每個(gè)學(xué)生獨(dú)立完成課程設(shè)計(jì)的全部?jī)?nèi)容。</p><p><b> 1.3設(shè)計(jì)平臺(tái)</b></p><p> 課程設(shè)計(jì)的主要設(shè)計(jì)平臺(tái)式MATLAB 7.0。如下圖1.1所示:MATLAB是矩陣實(shí)驗(yàn)室(Matrix Laboratory)的簡(jiǎn)稱,是美國MathWorks公司出品的商
9、業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級(jí)技術(shù)計(jì)算語言和交互式環(huán)境,主要包括MATLAB和Simulink兩大部分。MATLAB和Mathematica、Maple并稱為三大數(shù)學(xué)軟件。它在數(shù)學(xué)類科技應(yīng)用軟件中在數(shù)值計(jì)算方面首屈一指。MATLAB可以進(jìn)行矩陣運(yùn)算、繪制函數(shù)和數(shù)據(jù)、實(shí)現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語言的程序等,主要應(yīng)用于工程計(jì)算、控制設(shè)計(jì)、信號(hào)處理與通訊、圖像處理、信號(hào)檢測(cè)、金融建模設(shè)計(jì)與分析等領(lǐng)域
10、。</p><p> 圖1.1 MATLAB 7.0的設(shè)計(jì)平臺(tái)</p><p> MATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達(dá)式與數(shù)學(xué)、工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,F(xiàn)ORTRAN等語言完成相同的事情簡(jiǎn)捷得多,并且MathWork也吸收了像Maple等軟件的優(yōu)點(diǎn),使MATLAB成為一個(gè)強(qiáng)大的數(shù)學(xué)軟件。在新的版本中也加入了對(duì)C,F(xiàn)ORTRAN,C++ ,
11、JAVA的支持。可以直接調(diào)用,用戶也可以將自己編寫的實(shí)用程序?qū)氲組ATLAB函數(shù)庫中方便自己以后調(diào)用,此外許多的MATLAB愛好者都編寫了一些經(jīng)典的程序,用戶可以直接進(jìn)行下載就可以用[2]。</p><p><b> 2 設(shè)計(jì)原理</b></p><p> 2.1 FIR濾波器</p><p> FIR(Finite Impulse R
12、esponse)濾波器:有限長單位沖激響應(yīng)濾波器,是數(shù)字信號(hào)處理系統(tǒng)中最基本的元件,它可以在保證任意幅頻特性的同時(shí)具有嚴(yán)格的線性相頻特性,同時(shí)其單位抽樣響應(yīng)是有限長的,因而濾波器是穩(wěn)定的系統(tǒng)。因此,F(xiàn)IR濾波器在通信、圖像處理、模式識(shí)別等領(lǐng)域都有著廣泛的應(yīng)用。</p><p> 有限長單位沖激響應(yīng)(FIR)濾波器有以下特點(diǎn):</p><p> (1) 系統(tǒng)的單位沖激響應(yīng)h(n)在有限個(gè)
13、n值處不為零;</p><p> (2) 系統(tǒng)函數(shù)H(z)在|z|>0處收斂,極點(diǎn)全部在z=0處(因果系統(tǒng));</p><p> (3) 結(jié)構(gòu)上主要是非遞歸結(jié)構(gòu),沒有輸出到輸入的反饋,但有些結(jié)構(gòu)中(例如頻率抽樣結(jié)構(gòu))也包含有反饋的遞歸部分。</p><p> FIR濾波器的系統(tǒng)函數(shù)用下式表示:。H(n)就是FIR濾波器的單位脈沖響應(yīng)。FIR濾波器最重要的
14、優(yōu)點(diǎn)就是由于不存在系統(tǒng)極點(diǎn),F(xiàn)IR濾波器是絕對(duì)穩(wěn)定的系統(tǒng)。</p><p> 相較于IIR濾波器,FIR濾波器有以下的優(yōu)點(diǎn):(1)可以很容易地設(shè)計(jì)線性相位的濾波器。線性相位濾波器延時(shí)輸入信號(hào),卻并不扭曲其相位。(2)實(shí)現(xiàn)簡(jiǎn)單。在大多數(shù)DSP處理器,只需要對(duì)一個(gè)指令積習(xí)循環(huán)就可以完成FIR計(jì)算。(3)適合于多采樣率轉(zhuǎn)換,它包括抽取(降低采樣率),插值(增加采樣率)操作。無論是抽取或者插值,運(yùn)用FIR濾波器可
15、以省去一些計(jì)算,提高計(jì)算效率。相反,如果使用IIR濾波器,每個(gè)輸出都要逐一計(jì)算,不能省略,即使輸出要丟棄。(4)具有理想的數(shù)字特性。在實(shí)際中,所有的DSP濾波器必須用有限精度(有限bit數(shù)目)實(shí)現(xiàn),而在IIR濾波器中使用有限精度會(huì)產(chǎn)生很大的問題,由于采用的是反饋電路,因此IIR通常用非常少的bit實(shí)現(xiàn),設(shè)計(jì)者就能解決更少的與非理想算術(shù)有關(guān)的問題。(5)可以用小數(shù)實(shí)現(xiàn)。不像IIR濾波器,F(xiàn)IR濾波器通??赡苡眯∮?的系數(shù)來實(shí)現(xiàn)。(如果
16、需要,F(xiàn)IR濾波器的總的增益可以在輸出調(diào)整)。當(dāng)使用定點(diǎn)DSP的時(shí)候,這也是一個(gè)考慮因素,它能使得實(shí)現(xiàn)更加地簡(jiǎn)單。</p><p> FIR濾波器的缺點(diǎn)在于它的性能不如同樣階數(shù)的IIR濾波器,不過由于數(shù)字計(jì)算硬件的飛速發(fā)展,這一點(diǎn)已經(jīng)不成為問題。再加上引入計(jì)算機(jī)輔助設(shè)計(jì),F(xiàn)IR濾波器的設(shè)計(jì)也得到極大的簡(jiǎn)化?;谏鲜鲈颍現(xiàn)IR濾波器比IIR濾波器的應(yīng)用更廣。</p><p><b&
17、gt; 2.2窗口設(shè)計(jì)法</b></p><p> 窗函數(shù)設(shè)計(jì)法的基本思想是用FIRDF逼近洗完的濾波特性。設(shè)希望逼近的濾波器的頻率響應(yīng)函數(shù)為,其單位脈沖響應(yīng)為表示。為了設(shè)計(jì)簡(jiǎn)單方便,通常選擇為具有片段常數(shù)特性的理想濾波器。因此是無限長非因果序列,不能直接作為FIRDF的單位脈沖響應(yīng)。窗函數(shù)設(shè)計(jì)法就是截取為有限長的一段因果序列,并用合適的窗函數(shù)進(jìn)行加權(quán)作為FIRDF的單位脈沖響應(yīng)h(n)。<
18、/p><p> 用窗函數(shù)法設(shè)計(jì)FIRDF的具體設(shè)計(jì)步驟如下:</p><p> (1)構(gòu)造希望逼近的頻率響應(yīng)函數(shù)。</p><p><b> ?。?)求出。</b></p><p> ?。?)加窗得到FIRDF的單位脈沖響應(yīng)h(n)。h(n)=w(n)。式中,w(n)稱為窗函數(shù),其長度為。如果要求設(shè)計(jì)第一類線性相位FIR
19、DF,則要求h(n)關(guān)于(N-1)/2點(diǎn)偶對(duì)稱。而關(guān)于n=t點(diǎn)偶對(duì)稱,所以要求t=(N-1)/2。同時(shí)要求w(n)關(guān)于(N-1)/2點(diǎn)偶對(duì)稱。</p><p> 用窗函數(shù)法設(shè)計(jì)第一類線性相位FIRDF的步驟:</p><p> ?。?)選擇窗函數(shù)類型和長度,寫出才窗函數(shù)的表達(dá)式。</p><p> 根據(jù)阻帶最小衰減選擇窗函數(shù)的的類型,再根據(jù)過渡帶寬度確定所選窗函
20、數(shù)的長度。用窗函數(shù)法設(shè)計(jì)的FIRDF通帶波紋幅度近似等于阻帶波紋幅度。一般阻帶最小衰減達(dá)到40dB以上,則通帶最大衰減就小于0.1dB。所以用窗函數(shù)法設(shè)計(jì)FIRDF時(shí),通常只考慮阻帶最小衰減就可以了。</p><p> ?。?)構(gòu)造希望逼近的頻率響應(yīng)函數(shù)。</p><p> 根據(jù)設(shè)計(jì)需要,一般選擇線性相位理想濾波器(理想低通、理想高通、理想帶通、理想帶阻)。理想濾波器的截止頻率近似為最終
21、設(shè)計(jì)的FIRDF的過渡帶中心頻率,幅度函數(shù)衰減一半(約-6dB)。所以一般取,和分別為通帶邊界頻率和阻帶邊界頻率。</p><p><b> ?。?)計(jì)算。</b></p><p> ?。?)加窗得到設(shè)計(jì)結(jié)果:h(n)=w(n)。</p><p><b> 3設(shè)計(jì)步驟</b></p><p>&l
22、t;b> 3.1 設(shè)計(jì)流程</b></p><p> 3.2 采集音樂信號(hào)</p><p> 在網(wǎng)絡(luò)中找到自己想要的歌曲文件,并下載下來,即可對(duì)音樂文件進(jìn)行文件格式轉(zhuǎn)換及聲音屬性的變化。</p><p> 在轉(zhuǎn)換過程中,將音樂格式設(shè)置為wav格式,屬性設(shè)置為4.410kHz,8位,單聲道,128KB/秒,然后點(diǎn)擊確定。然后再點(diǎn)擊文件/另存為
23、,即可將該語音文件存在MATLAB文件下的work文件夾里。</p><p> 然后在Matlab軟件平臺(tái)下,利用函數(shù)wavread對(duì)語音信號(hào)進(jìn)行采樣,記住采樣頻率和采樣點(diǎn)數(shù)。通過wavread函數(shù)的使用,讓我們很快理解了采樣頻率、采樣位數(shù)等概念。采集完成后在信號(hào)中加入一個(gè)單頻噪聲。</p><p><b> 對(duì)應(yīng)程序如下:</b></p><
24、p> [x,fs,bits]=wavread(‘yuntian.wav’); % 輸入?yún)?shù)為文件的全路徑和文件名(因?yàn)檎Z音文件直接放在Matlab下的work文件夾里,所以直接使用文件名即可),輸出的第一個(gè)參數(shù)是每個(gè)樣本的值,fs是生成該波形文件時(shí)的采樣率,bits是波形文件每樣本的編碼位數(shù)。</p><p> sound(x,fs,bits); % 按指定的采樣率和每樣本編碼位數(shù)回放所錄語音文件
25、</p><p> N=length(x); % 計(jì)算信號(hào)x的長度</p><p> fn=1900; % 單頻噪聲頻率,此參數(shù)可自己設(shè)計(jì)</p><p> t=0:1/fs:(N-1)/fs; % 計(jì)算時(shí)間范圍,樣本數(shù)除以采樣頻率</p><p> x=x’; %將其轉(zhuǎn)置</p><p> y=x
26、+sin(fn*2*pi*t); %在原信號(hào)上添加噪聲</p><p> sound(y,fs,bits); % 應(yīng)該可以明顯聽出有尖銳的單頻嘯叫聲</p><p><b> 3.3濾波器設(shè)計(jì)</b></p><p> 在該濾波器的設(shè)計(jì)中,我們給出該濾波器的性能指標(biāo)如下:</p><p> fpd=1800;
27、 fsd=1850; fsu=1950; fpu=2000;Rp=1; As=40;</p><p> 截止頻率也可以任意自選,在單頻噪聲干擾附近即可。在這里,很重要的是通帶截止db值的設(shè)置。這個(gè)值一定要根據(jù)我們使用的設(shè)計(jì)濾波器的方法來設(shè)定。因?yàn)槲沂褂玫氖莿P塞窗法,凱塞窗函數(shù)中,濾波器的過渡帶寬為15.4,最小阻帶衰減為108db。所以,一定要將通帶截止db值設(shè)置的小于108,所以,
28、我將其設(shè)置為100db。</p><p> 在這里我是使用窗函數(shù)法設(shè)計(jì)上面要求的FIR濾波器。在Matlab中,利用凱塞窗設(shè)計(jì)FIR濾波器,利用Matlab中的函數(shù)freqz畫出該濾波器的頻率響應(yīng)。</p><p> 首先,我們利用數(shù)字信號(hào)處理里面學(xué)過的知識(shí),根據(jù)自己選定的參數(shù),用指定的方法設(shè)計(jì)FIR濾波器,得到FIR濾波器的階數(shù)M。隨后調(diào)用nuttallwin (M)函數(shù)產(chǎn)生M階的凱
29、塞窗。然后,調(diào)用自編ideal_lp函數(shù)計(jì)算理想帶阻濾波器的脈沖響應(yīng)。最后,再調(diào)用自編freqz_m(h_bs,1)函數(shù)即可計(jì)算得到該濾波器的頻率特性。</p><p> 我設(shè)計(jì)濾波器過程對(duì)應(yīng)的程序如下:</p><p> fpd=1800;fsd=1850;fsu=1950;fpu=2000;Rp=1;As=40; % 帶阻濾波器設(shè)計(jì)指標(biāo)</p><p
30、> fcd=(fpd+fsd)/2;fcu=(fpu+fsu)/2;df=min((fsd-fpd),(fpu-fsu));</p><p> % 計(jì)算上下邊帶中心頻率,和頻率間隔</p><p> wcd=fcd/fs*2*pi;wcu=fcu/fs*2*pi;dw=df/fs*2*pi;</p><p> % 將Hz為單位的模擬頻率換算為rad為單
31、位的數(shù)字頻率</p><p> wsd=fsd/fs*2*pi;wsu=fsu/fs*2*pi;</p><p> M=ceil(6.6*pi/dw)+1; % 計(jì)算凱塞窗設(shè)計(jì)該濾波器時(shí)需要的階數(shù)</p><p> n=0:M-1; % 定義時(shí)間范圍</p><p> w_ham= nuttallwin (M)
32、; % 產(chǎn)生M階的凱塞窗 </p><p> hd_bs=ideal_lp(wcd,M)+ideal_lp(pi,M)-ideal_lp(wcu,M); </p><p> % 調(diào)用自編函數(shù)計(jì)算理想帶阻濾波器的脈沖響應(yīng)</p><p> h_bs=w_ham'.*hd_bs; % 用窗口法計(jì)算實(shí)際濾波器脈沖響應(yīng)</p>
33、<p> [db,mag,pha,grd,w]=freqz_m(h_bs,1); % 調(diào)用自編函數(shù)計(jì)算濾波器的頻率特性</p><p> 在將濾波器設(shè)計(jì)好,頻率特性求出來之后,我編寫如下程序,來畫出該帶阻濾波器的特性圖。程序如下:</p><p> subplot(2,2,1);plot(w,db); grid on;</p><p> xla
34、bel('頻率');ylabel('db');</p><p> subplot(2,2,2);plot(w,mag); grid on;</p><p> xlabel('頻率');ylabel('幅度');</p><p> subplot(2,2,3);plot(w,pha); grid o
35、n;</p><p> xlabel('頻率');ylabel('相位');</p><p> subplot(2,2,4);plot(h_bs);grid on;</p><p> xlabel('頻率');ylabel('濾波器脈沖響應(yīng)'); 通過該程序得到的圖如下圖3.3.1所示。</
36、p><p> 圖 3.3.1 濾波器的特性圖</p><p> 3.4 信號(hào)濾波處理</p><p> 在將濾波器設(shè)計(jì)好后,我們用自己設(shè)計(jì)的帶阻濾波器對(duì)采集的語音信號(hào)進(jìn)行濾波。在Matlab中,F(xiàn)IR濾波器利用函數(shù)fftfilt對(duì)信號(hào)進(jìn)行濾波。</p><p> 我對(duì)信號(hào)進(jìn)行濾波處理對(duì)應(yīng)的程序如下:</p><p>
37、; y_fil=fftfilt(h_bs,1,y); % 用設(shè)計(jì)好的濾波器對(duì)加噪信號(hào)y進(jìn)行濾波</p><p> Y_fil=fft(y_fil);Y_fil=Y_fil(1:length(Y_fil)/2); % 計(jì)算頻譜取前一半</p><p><b> 3.5 結(jié)果分析</b></p><p> 在將加噪信號(hào)濾波之后,我們將濾波
38、前后語音信號(hào)的波形及頻譜圖相互比較。在同一張大圖里分別繪制原始信號(hào)x,加噪信號(hào)y,濾波去噪信號(hào)y_fil的時(shí)域波形和頻譜,以便比較和分析。</p><p> 畫這三個(gè)信號(hào)的比較圖的對(duì)應(yīng)的程序如下: </p><p> subplot(3,2,1);plot(t,x);grid on; xlabel('時(shí)間');ylabel('原始信號(hào)
39、9;);</p><p> subplot(3,2,2);plot(f,X);grid on; xlabel('時(shí)間');ylabel('加入的噪聲信號(hào)');</p><p> subplot(3,2,3);plot(t,y);grid on; xlabel('頻率');ylabel('
40、;原始信號(hào)頻譜');</p><p> subplot(3,2,4);plot(f,Y);grid on; xlabel('頻率');ylabel('加入的噪聲信號(hào)頻譜');</p><p> subplot(3,2,5);plot(t,y_fil);grid on; xlabel('時(shí)間');
41、ylabel('濾波之后的信號(hào)');</p><p> subplot(3,2,6);plot(f,Y_fil);grid on; xlabel('頻率');ylabel('濾波之后的信號(hào)頻譜');</p><p> 經(jīng)過這段程序畫出來的三個(gè)信號(hào)的時(shí)域波形和頻譜圖如下圖3.5.1所示。</p><p>
42、; 圖 3.5.1 三個(gè)信號(hào)的時(shí)域波形和頻譜圖比較</p><p> 從圖3.5.1中我們可以看出,原信號(hào)與濾波去噪信號(hào)的時(shí)域圖基本相似,只有邊緣部分有點(diǎn)差異;原信號(hào)與濾波去噪信號(hào)的頻譜圖波形也大致相似。通過觀察可以看到,加噪信號(hào)的時(shí)域圖中大部分都被加入的噪聲給遮蓋了,加噪信號(hào)的頻譜圖中,我們可以很明顯地看到與原信號(hào)頻譜圖相比,它在1900Hz左右處有一個(gè)尖脈沖,而濾波去噪信號(hào)的頻譜圖中該尖脈沖已經(jīng)消失,波
43、形大致與原圖相似,可見濾波去噪效果基本不錯(cuò)。</p><p> 在將三個(gè)信號(hào)的時(shí)域波形和頻譜圖比較之后,我們還要通過回放去濾波去噪語音信號(hào),來跟原信號(hào)相比,以檢驗(yàn)濾波器的效果。在Matlab中,函數(shù)sound可以對(duì)聲音進(jìn)行回放。其調(diào)用格式為:sound (x,fs,bits)。我用sound(y_fil,fs,bits)語句回放該濾波去噪信號(hào),便可以感覺到濾波后的語音信號(hào)與原信號(hào)差不多,但仍有一點(diǎn)點(diǎn)變化。<
44、;/p><p> 4出現(xiàn)的問題及解決方法</p><p> 原計(jì)劃是準(zhǔn)備二周的課程設(shè)計(jì)的,因?yàn)榈诙€(gè)禮拜的白天我們得去參加安博牛耳的一周免費(fèi)實(shí)訓(xùn),所以課程設(shè)計(jì)大部分內(nèi)容都是在第一周完成的。在這前面一周的時(shí)間里,我們每天的上午都是待在學(xué)校的機(jī)房上機(jī),同時(shí),老師跟我們進(jìn)行講解,然后,當(dāng)我們有不懂的問題時(shí)可以隨時(shí)向老師請(qǐng)教。在老師沒有進(jìn)行講解時(shí),我總以為這次的課程設(shè)計(jì)會(huì)有不小的難度,可是當(dāng)老師跟
45、我們講解了之后,我卻發(fā)現(xiàn),我們的課程設(shè)計(jì)其實(shí)也不是很難,只要我們細(xì)心一點(diǎn),并有耐心,就能解決我們所遇到的問題。</p><p> 首先,我按照課程設(shè)計(jì)的要求在網(wǎng)絡(luò)上找到一段音樂,并對(duì)其進(jìn)行格式轉(zhuǎn)換及屬性變換,但是當(dāng)我真正制作完成之后并存盤后,運(yùn)行MATLAB后,才感覺音樂文件過于長,造成出現(xiàn)的頻譜圖很模糊,根本看不清楚,后面看了一下任務(wù)指導(dǎo)書及問了同學(xué)之后,截取其中的一小段,效果就好了許多。</p>
46、<p> 在此次課程設(shè)計(jì)中,雖然沒有預(yù)計(jì)的那么難,可還是遇到了一些小小的問題。慶幸的是,能夠在老師和同學(xué)的幫助下解決了。我覺得最重要的就是要有耐心,要細(xì)致,要不懂就問,這樣,只要自己堅(jiān)持,一切問題都會(huì)解決的。</p><p><b> 5 結(jié)束語</b></p><p> 在本次課程設(shè)計(jì)中,讓我知道了以前所學(xué)《信號(hào)與系統(tǒng)》與《數(shù)字信號(hào)處理》的結(jié)合,
47、并在實(shí)際運(yùn)用中設(shè)計(jì)濾波器的過程。課程設(shè)計(jì)不僅要求對(duì)濾波器理論的研究,更重要的是實(shí)際設(shè)計(jì)中遇到的問題。</p><p> 因?yàn)橛辛诉@次課程設(shè)計(jì),我不得不對(duì)其設(shè)計(jì)原理進(jìn)行更深一層次的理解,對(duì)書中原來學(xué)到的理論,僅知道了其表面,而不知其原因。在設(shè)計(jì)中也使我對(duì)一些概念有了更深刻的認(rèn)識(shí)。例如:在指標(biāo)方面,我混淆了模擬指標(biāo)和數(shù)字指標(biāo)的概念,經(jīng)過老師的點(diǎn)撥,自己更加明確,而且記憶深刻。還有在課程設(shè)計(jì)中每一次的數(shù)據(jù)輸入都有其重
48、要意義,用MATLAB編譯程序時(shí),可以根據(jù)濾波器指標(biāo)的要求實(shí)時(shí)知道對(duì)濾波器的影響。例如,編好程序后,調(diào)試成功,任意改變輸入阻帶或者通帶衰減,可以看到輸出波形的變化,改變截止頻率wc,同樣可以看到輸出波形的變化。由此,對(duì)理論的理解就更加簡(jiǎn)單方便,而且記憶力深刻。</p><p> 除此之外,對(duì)程序的編譯不是一蹴而就的,而是經(jīng)過多次的編譯與調(diào)試。以前用MATLAB就是簡(jiǎn)單的輸入,可以說都不是自己的勞動(dòng)成果,但這次不
49、一樣,課程設(shè)計(jì)沒有別人給你編好,而是自己寫,出錯(cuò)率就大大提高了,但這是過程,學(xué)習(xí)就是在過程中進(jìn)行的,經(jīng)過自己幾天的腦力勞動(dòng),再加上同學(xué)們的幫助,不僅對(duì)讀程序有了很大提高,而且自己的編譯水平也上了一個(gè)新臺(tái)階,更加熟系了MATLAB的應(yīng)用,也對(duì)其中的函數(shù)有了大概的了解,對(duì)其中一些函數(shù)也相當(dāng)熟練,濾波器設(shè)計(jì)中用到了ceil()、freqz()等很重要的函數(shù),雖然可以用fir1()、fir2()可以直接調(diào)用,但那樣就達(dá)不到對(duì)真正理論設(shè)計(jì)過程的
50、理解和運(yùn)用。</p><p> 完成整個(gè)設(shè)計(jì)過程后,學(xué)到的東西已經(jīng)不僅僅上面的那些東西,還有就是同學(xué)之間的共同努力和探討和設(shè)計(jì)過程中的每一個(gè)細(xì)節(jié),也許每一個(gè)細(xì)節(jié)的錯(cuò)誤就可能導(dǎo)致結(jié)局的失敗,所以我認(rèn)為這次收獲最大的莫過于靜心,學(xué)習(xí)不能急,一定要冷靜,心無旁騖,不放過任何一個(gè)細(xì)節(jié),就能帶來凱旋的消息。</p><p> 在此,感謝老師一學(xué)年以來對(duì)我們不僅學(xué)習(xí)上的關(guān)心,還有生活中的照顧,我也
51、不會(huì)辜負(fù)老師的期望,繼續(xù)努力深造。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 程佩青.?dāng)?shù)字信號(hào)處理教程〔M〕.北京:清華大學(xué)出版社,2002.</p><p> [2] 劉敏,魏玲.Matlab通信仿真與應(yīng)用〔M〕.北京:國防工業(yè)出版社,2001.</p><p> ?。?] San
52、jit K.Mitra 著,孫洪,余翔宇 譯,《數(shù)字信號(hào)處理實(shí)驗(yàn)指導(dǎo)書》,電子工業(yè)</p><p> 出版社,2005 年。</p><p> ?。?] Edward W. Kamen, Bonnie S.Heck 編,《信號(hào)與系統(tǒng)基礎(chǔ)——應(yīng)用Web 和MATLAB</p><p> ?。ǖ诙妫罚茖W(xué)出版社,2002 年。</p><p&g
53、t; ?。?] 張賢達(dá) 編, 《現(xiàn)代信號(hào)處理(第二版)》,清華大學(xué)出版社,2002 年。</p><p> 附錄1:語音信號(hào)濾波去噪——用凱塞窗設(shè)計(jì)的濾波器源程序清單</p><p> // 程序名稱:1.m</p><p> // 程序功能:在Matlab中,用凱塞窗法設(shè)計(jì)濾波器</p><p> // 程序作者:傅 滔</p
54、><p> // 最后修改日期:2010-3-7</p><p> [x,fs,bits]=wavread('貝多芬的悲傷.wav');</p><p> sound(x,fs,bits); %按指定的采樣率和每樣本編碼位數(shù)回放</p><p> N=length(x); % 計(jì)算信號(hào)x的長度<
55、/p><p> fn=1900; </p><p> t=0:1/fs:(N-1)/fs; % 計(jì)算時(shí)間范圍,樣本數(shù)除以采樣頻率</p><p><b> x=x(:,1);</b></p><p><b> x=x';</b></p><p> y=
56、x+ 0.1*sin(fn*2*pi*t); </p><p> sound(y,fs,bits); % 應(yīng)該可以明顯聽出有尖銳的單頻嘯叫聲</p><p> X=abs(fft(x)); Y=abs(fft(y)); % 對(duì)原始信號(hào)和加噪信號(hào)進(jìn)行fft變換</p><p> X=X(1:length(X)/2); Y=Y(1:length
57、(Y)/2); %截取前半部分 </p><p> deltaf=fs/2/length(X); %計(jì)算頻譜的譜線間隔</p><p> f=0:deltaf:fs/2-deltaf; %計(jì)算頻譜頻率范圍</p><p> figure (1);</p><p> subplot(2,2,1);p
58、lot(t,x);grid on;</p><p> xlabel('時(shí)間');ylabel('原始信號(hào)');</p><p> subplot(2,2,2);plot(f,X);grid on;</p><p> xlabel('時(shí)間');ylabel('加入的噪聲信號(hào)');</p>
59、<p> subplot(2,2,3);plot(t,y);grid on;</p><p> xlabel('頻率');ylabel('原始信號(hào)頻譜');</p><p> subplot(2,2,4);plot(f,Y);grid on;</p><p> xlabel('頻率');ylabe
60、l('加入的噪聲信號(hào)頻譜');</p><p> fpd=1800;fsd=1850;fsu=1950;fpu=2000;Rp=1;As=100; %帶阻濾波器設(shè)計(jì)指標(biāo)</p><p> fcd=(fpd+fsd)/2;fcu=(fpu+fsu)/2;</p><p> df=min((fsd-fpd),(fpu-fsu));
61、 %計(jì)算上下帶中心頻率和頻率間隔</p><p> wcd=fcd/fs*2*pi;wcu=fcu/fs*2*pi;dw=df/fs*2*pi; </p><p> % 將Hz為單位的模擬頻率換算為rad為單位的數(shù)字頻率</p><p> wsd=fsd/fs*2*pi;wsu=fsu/fs*2*pi;</p><p&
62、gt; M=ceil(15.4*pi/dw)+1; %計(jì)算凱塞窗設(shè)計(jì)該濾波器時(shí)需要的階數(shù)</p><p> n=0:M-1; %定義時(shí)間范圍</p><p> w_ham= nuttallwin (M); %產(chǎn)生M階的凱塞窗</p><p> hd_bs=ideal_lp(wcd,M)+ideal_lp(
63、pi,M)-ideal_lp(wcu,M); </p><p> % 調(diào)用自編函數(shù)計(jì)算理想帶阻濾波器的脈沖響應(yīng)</p><p> h_bs=w_ham'.*hd_bs; %用窗口法計(jì)算實(shí)際濾波器脈沖響應(yīng) </p><p> [db,mag,pha,grd,w]=freqz_m(h_bs,1); %調(diào)用自編函數(shù)計(jì)算濾波器的頻率特性</
64、p><p> figure (2);</p><p> subplot(2,2,1);plot(w,db); grid on;</p><p> xlabel('頻率');ylabel('db');</p><p> subplot(2,2,2);plot(w,mag); grid on;</p>
65、;<p> xlabel('頻率');ylabel('幅度');</p><p> subplot(2,2,3);plot(w,pha); grid on;</p><p> xlabel('頻率');ylabel('相位');</p><p> subplot(2,2,4);pl
66、ot(h_bs);grid on;</p><p> xlabel('頻率');ylabel('濾波器脈沖響應(yīng)');</p><p> y_fil=fftfilt(h_bs,y); %用設(shè)計(jì)好的濾波器對(duì)y進(jìn)行濾波</p><p> Y_fil=abs(fft(y_fil));Y_fil=Y_fil(1:length(Y_f
67、il)/2); %計(jì)算頻譜取前一般</p><p> figure (3);</p><p> subplot(3,2,1);plot(t,x);grid on;</p><p> xlabel('時(shí)間');ylabel('原始信號(hào)');</p><p> subplot(3,2,2);plot(f
68、,X);grid on;</p><p> xlabel('時(shí)間');ylabel('加入的噪聲信號(hào)');</p><p> subplot(3,2,3);plot(t,y);grid on;</p><p> xlabel('頻率');ylabel('原始信號(hào)頻譜');</p>&
69、lt;p> subplot(3,2,4);plot(f,Y);grid on;</p><p> xlabel('頻率');ylabel('加入的噪聲信號(hào)頻譜');</p><p> subplot(3,2,5);plot(t,y_fil);grid on;</p><p> xlabel('時(shí)間');y
70、label('濾波之后的信號(hào)');</p><p> subplot(3,2,6);plot(f,Y_fil);grid on;</p><p> xlabel('頻率');ylabel('濾波之后的信號(hào)頻譜');</p><p> sound (x,fs,bits); %應(yīng)該可以聽到與原語音信號(hào)基本相似的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計(jì)--語音信號(hào)濾波去噪
- 數(shù)字信號(hào)處理課程設(shè)計(jì)--語音信號(hào)濾波去噪
- 課程設(shè)計(jì)報(bào)告---拉弦音樂濾波去噪-使用矩形窗設(shè)計(jì)的fir濾波器
- 課程設(shè)計(jì)--語音信號(hào)濾波去噪使用bohman窗設(shè)計(jì)的頻率采樣型fir濾波器
- matlab課程設(shè)計(jì)論文--音樂信號(hào)的濾波處理
- 數(shù)字通信課程設(shè)計(jì)----音頻信號(hào)分析及去噪
- dsp課程設(shè)計(jì)--語音信號(hào)濾波去噪—使用脈沖響應(yīng)不變法設(shè)計(jì)的巴特沃斯濾波器
- 基于matlab的語音信號(hào)濾波去噪
- 數(shù)字信號(hào)處理課程設(shè)計(jì)--基于 matlab 的語音去噪處理
- 數(shù)字信號(hào)處理課程設(shè)計(jì)報(bào)告--基于matlab的語音去噪處理
- 濾波器設(shè)計(jì)與信號(hào)濾波課程設(shè)計(jì)報(bào)告
- 語音信號(hào)去噪 ——數(shù)字濾波器的設(shè)計(jì)
- 語音信號(hào)的濾波課程設(shè)計(jì)
- 基于matlab數(shù)字濾波器設(shè)計(jì)——語音信號(hào)去噪
- 語音信號(hào)處理與濾波課程設(shè)計(jì)
- 基于matlab聲音信號(hào)的濾波去噪處理畢業(yè)論文
- 課程設(shè)計(jì)--信號(hào)波形產(chǎn)生與濾波電路設(shè)計(jì)
- 語音信號(hào)去噪論文
- 基于tms320c6713語音信號(hào)濾波去噪——使用barthannwin設(shè)計(jì)的fir濾波器
- 數(shù)字信號(hào)課程設(shè)計(jì)---語音信號(hào)的處理與濾波
評(píng)論
0/150
提交評(píng)論