版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> DSP應(yīng)用課程設(shè)計(jì)(學(xué)年論文)</p><p><b> 說明書</b></p><p> 課題名稱: DSP應(yīng)用課程設(shè)計(jì) </p><p> 學(xué)生學(xué)號: </p><p> 專業(yè)班級: 通信01班
2、 </p><p> 學(xué)生姓名: </p><p> 學(xué)生成績: </p><p> 指導(dǎo)教師: </p><p> 課題工作時(shí)間: 2011.6.13 至 2011.6.24 &
3、lt;/p><p> 課程設(shè)計(jì)評審標(biāo)準(zhǔn)(指導(dǎo)教師用)</p><p><b> 武漢工程大學(xué)</b></p><p><b> 電氣信息學(xué)院</b></p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 課程名稱:基于MATLAB的有噪
4、聲的語音信號的處理</p><p> 班 級: 通信01班 </p><p> 學(xué) 號: 0804140127 </p><p> 姓 名: 葉瑩瑩 </p><p> 指導(dǎo)教師: 楊
5、述斌 </p><p> 完成時(shí)間: </p><p><b> 一、課程設(shè)計(jì)目的</b></p><p> 綜合運(yùn)用數(shù)字信號處理的理論知識對語音信號進(jìn)行時(shí)頻分析和濾波器設(shè)計(jì),通過理論推導(dǎo)得出相應(yīng)結(jié)論,再利用 MATLAB 作為編程工
6、具進(jìn)行計(jì)算機(jī)實(shí)現(xiàn),從而加深對所學(xué)知識的理解,建立概念。</p><p><b> 二、課程設(shè)計(jì)要求</b></p><p> 1 ) 學(xué)會 MATLAB 的使用,掌握 MATLAB 的程序設(shè)計(jì)方法。</p><p> 2 ) 掌握在 Windows 環(huán)境下語音信號采集的方法。</p><p> 3 ) 掌握數(shù)字信
7、號處理的基本概念、基本理論和基本方法。</p><p> 4 ) 掌握 MATLAB 設(shè)計(jì) FIR 和IIR 數(shù)字濾波器的方法。</p><p> 5 ) 學(xué)會用 MATLAB 對信號進(jìn)行分析和處理。</p><p><b> 三、詳細(xì)設(shè)計(jì)過程</b></p><p><b> 1.原理</b&g
8、t;</p><p><b> 2,過程:</b></p><p><b> 語音信號的采集</b></p><p> 利用計(jì)算機(jī)上的收音機(jī)和WINDOWS 操作系統(tǒng)可以進(jìn)行數(shù)字信號的采集。如果是簡單的錄音,可用“開始——程序——附件——娛樂——錄音機(jī)”,然后再打開windows media任選一首歌,進(jìn)行錄音。&
9、lt;/p><p> 這種錄音時(shí)間默認(rèn)時(shí)間是1分鐘,如果想錄長一些的話,可在正要錄到1分鐘時(shí),再點(diǎn)一下錄音,如此反復(fù)可延長錄音時(shí)間。</p><p> 錄好以后命名保存入D :\ MATLAB \ work 中??梢钥吹?文件存儲器的后綴默認(rèn)為. wav ,這是WINDOWS 操作系統(tǒng)規(guī)定的聲音文件存的標(biāo)準(zhǔn)。</p><p><b> 語音信號的時(shí)頻分析
10、</b></p><p> 利用MATLAB中的“wavread”命令來讀入(采集)語音信號,將它賦值給某一向量。再對其進(jìn)行采樣,記住采樣頻率和采樣點(diǎn)數(shù)。下面介紹Wavread 函數(shù)幾種調(diào)用格式。</p><p> ?。?)y=wavread(file)</p><p> 功能說明:讀取file所規(guī)定的wav文件,返回采樣值放在向量y中。</p
11、><p> ?。?)[y,fs,nbits]=wavread(file) </p><p> 功能說明:采樣值放在向量y中,fs表示采樣頻率(hz),nbits表示采樣位數(shù)。</p><p> ?。?)y=wavread(file,N)</p><p> 功能說明:讀取錢N點(diǎn)的采樣值放在向量y中。</p><p>
12、(4)y=wavread(file,[N1,N2])</p><p> 功能說明:讀取從N1到N2點(diǎn)的采樣值放在向量y中。</p><p> 接下來,對語音信號speech off.wav進(jìn)行采樣。其程序如下:</p><p> [y,fs,nbits]=wavered (‘speech off.wav’);</p><p> 功能說
13、明:把語音信號加載入Matlab 仿真軟件平臺中</p><p> 然后,畫出語音信號的時(shí)域波形,再對語音信號進(jìn)行頻譜分析。MATLAB提供了快速傅里葉變換算法FFT計(jì)算DFT的函數(shù)fft,其調(diào)用格式如下:</p><p> Xk=fft(xn,N)</p><p> 參數(shù)xn為被變換的時(shí)域序列向量,N是DFT變換區(qū)間長度,當(dāng)N大于xn的長度時(shí),fft函數(shù)自動
14、在xn后面補(bǔ)零。,當(dāng)N小于xn的長度時(shí),fft函數(shù)計(jì)算xn的前N個(gè)元素,忽略其后面的元素。語音信號加噪與頻譜分析</p><p> MATLAB中產(chǎn)生高斯白噪聲非常方便,有兩個(gè)產(chǎn)生高斯白噪聲的兩個(gè)函數(shù) 。我們可以直接應(yīng)用兩個(gè)函數(shù):一個(gè)是WGN,另一個(gè)是AWGN。WGN用于產(chǎn)生高斯白噪聲,AWGN則用于在某一信號中加入高斯白噪聲。也可直接用randn函數(shù)產(chǎn)生高斯分布序列。</p><p>
15、 在本次課程設(shè)計(jì)中,我們是利用MATLAB中的隨機(jī)函數(shù)(rand或randn)產(chǎn)生噪聲加入到語音信號中,模仿語音信號被污染,并對其頻譜分析。Randn函數(shù)有兩種基本調(diào)用格式:Randn(n)和Randn(m,n),前者產(chǎn)生n×n服從標(biāo)準(zhǔn)高斯分布的隨機(jī)數(shù)矩陣,后者產(chǎn)生m×n的隨機(jī)數(shù)矩陣。在這里,我們選用Randn(m,n)函數(shù)。</p><p> 設(shè)計(jì)FIR和IIR數(shù)字濾波器</p&g
16、t;<p> IIR濾波器和FIR濾波器的設(shè)計(jì)方法完全不同。IIR濾波器設(shè)計(jì)方法有間接法和直接法,間接法是借助于模擬濾波器的設(shè)計(jì)方法進(jìn)行的。其設(shè)計(jì)步驟是:先設(shè)計(jì)過渡模擬濾波器得到系統(tǒng)函數(shù)H(s),然后將H(s)按某種方法轉(zhuǎn)換成數(shù)字濾波器的系統(tǒng)函數(shù)H(z)。FIR濾波器比鞥采用間接法,常用的方法有窗函數(shù)法、頻率采樣發(fā)和切比雪夫等波紋逼近法。對于線性相位濾波器,經(jīng)常采用FIR濾波器。</p><p>
17、 對于數(shù)字高通、帶通濾波器的設(shè)計(jì),通用方法為雙線性變換法??梢越柚谀M濾波器的頻率轉(zhuǎn)換設(shè)計(jì)一個(gè)所需類型的過渡模擬濾波器,再經(jīng)過雙線性變換將其轉(zhuǎn)換策劃那個(gè)所需的數(shù)字濾波器。具體設(shè)計(jì)步驟如下:</p><p> ?。?)確定所需類型數(shù)字濾波器的技術(shù)指標(biāo)。</p><p> ?。?)將所需類型數(shù)字濾波器的邊界頻率轉(zhuǎn)換成相應(yīng)的模擬濾波器的邊界頻率,轉(zhuǎn)換公式為Ω=2/T tan(0.5ω)<
18、;/p><p> (3)將相應(yīng)類型的模擬濾波器技術(shù)指標(biāo)轉(zhuǎn)換成模擬低通濾波器技術(shù)指標(biāo)。</p><p> ?。?)設(shè)計(jì)模擬低通濾波器。</p><p> ?。?)通過頻率變換將模擬低通轉(zhuǎn)換成相應(yīng)類型的過渡模擬濾波器。</p><p> (6)采用雙線性變換法將相應(yīng)類型的過渡模擬濾波器轉(zhuǎn)換成所需類型的數(shù)字濾波器。</p><p
19、> 我們知道,脈沖響應(yīng)不變法的主要缺點(diǎn)是會產(chǎn)生頻譜混疊現(xiàn)象,使數(shù)字濾波器的頻響偏離模擬濾波器的頻響特性。為了克服之一缺點(diǎn),可以采用雙線性變換法。</p><p> 利用模擬濾波器設(shè)計(jì)IIR數(shù)字低通濾波器的步驟:</p><p> ?。?)確定數(shù)字低通濾波器的技術(shù)指標(biāo):通帶邊界頻率、通帶最大衰減,阻帶截止頻率、阻帶最小衰減。</p><p> ?。?)將數(shù)字
20、低通濾波器的技術(shù)指標(biāo)轉(zhuǎn)換成相應(yīng)的模擬低通濾波器的技術(shù)指標(biāo)。</p><p> ?。?)按照模擬低通濾波器的技術(shù)指標(biāo)設(shè)計(jì)及過渡模擬低通濾波器。</p><p> ?。?)用雙線性變換法,模擬濾波器系統(tǒng)函數(shù)轉(zhuǎn)換成數(shù)字低通濾波器系統(tǒng)函數(shù)。</p><p> 如前所述,IIR濾波器和FIR濾波器的設(shè)計(jì)方法有很大的區(qū)別。下面我們著重介紹用窗函數(shù)法設(shè)計(jì)FIR濾波器的步驟。如下
21、:</p><p> ?。?)根據(jù)對阻帶衰減及過渡帶的指標(biāo)要求,選擇串窗數(shù)類型(矩形窗、三角窗、漢寧窗、哈明窗、凱塞窗等),并估計(jì)窗口長度N。先按照阻帶衰減選擇窗函數(shù)類型。原則是在保證阻帶衰減滿足要求的情況下,盡量選擇主瓣的窗函數(shù)。</p><p> ?。?)構(gòu)造希望逼近的頻率響應(yīng)函數(shù)。</p><p> ?。?)計(jì)算h(n).。</p><p&
22、gt; (4)加窗得到設(shè)計(jì)結(jié)果。</p><p> 接下來,我們根據(jù)語音信號的特點(diǎn)給出有關(guān)濾波器的技術(shù)指標(biāo):</p><p> ?、俚屯V波器的性能指標(biāo):</p><p> fp=1000Hz,fc=1200Hz,As=50db ,Ap=1dB</p><p> ②高通濾波器的性能指標(biāo):</p><p> f
23、p=3500Hz,fc=4000Hz,As=50dB,Ap=1dB;</p><p> 在Matlab中,可以利用函數(shù)fir1設(shè)計(jì)FIR濾波器,利用函數(shù)butter,cheby1和ellip設(shè)計(jì)IIR濾波器,利用Matlab中的函數(shù)freqz畫出各步步器的頻率響應(yīng)。</p><p> hn=fir1(M,wc,window),可以指定窗函數(shù)向量window。如果缺省window參數(shù),則
24、fir1默認(rèn)為哈明窗。其中可選的窗函數(shù)有Rectangular Barlrtt Hamming Hann Blackman窗,其相應(yīng)的都有實(shí)現(xiàn)函數(shù)。</p><p> MATLAB信號處理工具箱函數(shù)buttp buttor butter是巴特沃斯濾波器設(shè)計(jì)函數(shù),其有5種調(diào)用格式,本課程設(shè)計(jì)中用到的是[N,wc]=butter(N,wc,Rp,As,’s’),該格式用于計(jì)算巴特沃斯模擬濾波器的階數(shù)N和3dB截止頻
25、率wc。</p><p> MATLAB信號處理工具箱函數(shù)cheblap,cheblord和cheeby1是切比雪夫I型濾波器設(shè)計(jì)函數(shù)。我們用到的是cheeby1函數(shù),其調(diào)用格式如下:</p><p> [B,A]=cheby1(N,Rp,wpo,’ftypr’)</p><p> [B,A]=cheby1(N,Rp,wpo,’ftypr’,’s’)</
26、p><p> 函數(shù)butter,cheby1和ellip設(shè)計(jì)IIR濾波器時(shí)都是默認(rèn)的雙線性變換法,所以在設(shè)計(jì)濾波器時(shí)只需要代入相應(yīng)的實(shí)現(xiàn)函數(shù)即可。</p><p> 用濾波器對加噪語音信號進(jìn)行濾波</p><p> 用自己設(shè)計(jì)的各濾波器分別對加噪的語音信號進(jìn)行濾波,在Matlab中,F(xiàn)IR濾波器利用函數(shù)fftfilt對信號進(jìn)行濾波,IIR濾波器利用函數(shù)filter
27、對信號進(jìn)行濾波。</p><p> 函數(shù)fftfilt用的是重疊相加法實(shí)現(xiàn)線性卷積的計(jì)算。調(diào)用格式為:y=fftfilter(h,x,M)。其中,h是系統(tǒng)單位沖擊響應(yīng)向量;x是輸入序列向量;y是系統(tǒng)的輸出序列向量;M是有用戶選擇的輸入序列的分段長度,缺省時(shí),默認(rèn)的輸入向量的重長度M=512。</p><p> 函數(shù)filter的調(diào)用格式:yn=filter(B,A.xn),它是按照直線
28、型結(jié)構(gòu)實(shí)現(xiàn)對xn的濾波。其中xn是輸入信號向量,yn輸出信號向量。</p><p> 用自己設(shè)計(jì)的各濾波器分別對語音信號進(jìn)行濾波,在Matlab中,F(xiàn)IR濾波器利用函數(shù)fftfilt對信號進(jìn)行濾波,IIR濾波器利用函數(shù)filter對信號進(jìn)行濾波。</p><p><b> 1.雙線性變換法:</b></p><p> 低通濾波器z11=f
29、ilter(num11,den11,s);</p><p> 帶通濾波器z12=filter(num12,den12,s);</p><p> 高通濾波器z13=filter(num13,den13,s);</p><p><b> 2.窗函數(shù)法</b></p><p> 1)低通濾波器z21=fftfilt(b
30、21,s);</p><p> 2)帶通濾波器z22=fftfilt(b22,s);</p><p> 3)高通濾波器z23=fftfilt(b23,s);</p><p><b> 回放語音信號</b></p><p> 經(jīng)過以上的加噪聲處理后,可在Matlab中用函數(shù)sound對聲音進(jìn)行回放。其調(diào)用格式:so
31、und(y,Fs),sound(y)和sound(y,Fs,bits)??梢圆煊X濾波前后的聲音有明顯的變化。</p><p><b> 設(shè)計(jì)系統(tǒng)界面</b></p><p> 系統(tǒng)界面設(shè)計(jì)工具—GUI概述</p><p> 圖形用戶界面(graphical user interfaces ,GUI)則是由窗口、光標(biāo)、按鍵、菜單、文字說明等
32、對象(objects)構(gòu)成的一個(gè)用戶界面。用戶通過一定的方法(如鼠標(biāo)或鍵盤)選擇、激活這些圖形對象,使計(jì)算機(jī)產(chǎn)生某種動作或變化,比如實(shí)現(xiàn)計(jì)算、繪圖等。在MATLAB中GUI是一中包含多種對象的圖形窗口,并為GUI開發(fā)提供一個(gè)方便高效的集成開發(fā)環(huán)境GUIDE。GUIDE主要是一個(gè)界面設(shè)計(jì)工具集,MAYLAB將所有GUI支持度控件都集成在這個(gè)環(huán)境中,并提供界面外觀、屬性和行為響應(yīng)方式的設(shè)置方法。GUIDE將設(shè)計(jì)好的GUI保存在一個(gè)FIG文件
33、中,同時(shí)生成M文件框架。</p><p> FIG文件:包括GUI圖形窗口及其所有后裔的完全描述,包括所有對象屬性的屬性值。它是一個(gè)二進(jìn)制文件調(diào)用hsave課保存圖形窗口時(shí)將生車該文件。M文件包括GUI設(shè)計(jì)、控件函數(shù)以及定義為子函數(shù)的用戶控件回調(diào)函數(shù),主要用于控制GUI展開時(shí)的各種特征。 GUI創(chuàng)建包括界面設(shè)計(jì)和控件編程兩部分,主要步驟如下。第一步:通過設(shè)置GUIDE應(yīng)用程序的選項(xiàng)來運(yùn)行GUIDE;第二步:使用
34、界面設(shè)計(jì)編輯器進(jìn)行面設(shè)計(jì);第三步:編寫控件行為響應(yīng)控制(即回調(diào)函數(shù))代碼。</p><p><b> 2.方案選擇及設(shè)計(jì)</b></p><p> 本設(shè)計(jì)主要是對語音信號的時(shí)頻進(jìn)行分析,并對語音信號加噪后設(shè)計(jì)濾波器對其進(jìn)行濾波處理,對話音信號加噪聲前后的頻譜進(jìn)行比較分析,對合成語音信號濾波前后進(jìn)行頻譜的分析比較。</p><p> 首先用
35、PC機(jī)WINDOWS下的錄音機(jī)錄制一段3S長的語音信號,并保存入MATLAB軟件的根目錄下文件名為“123”,再運(yùn)行MATLAB仿真軟件把錄制好的語音信號用wavread函數(shù)加載入MATLAB仿真軟件的工作環(huán)境中,輸入命令對語音信號進(jìn)行時(shí)域,頻譜變換。再在MATLAB中用命令設(shè)計(jì)一段噪聲信號,對噪聲信號進(jìn)行頻譜變換。把設(shè)計(jì)的噪聲信號加入到錄制的語音信號中,用命令可以得到其頻譜圖。對該段合成的語音信號,用命令在MATLAB中設(shè)計(jì)一個(gè)恰當(dāng)?shù)?/p>
36、濾波器對其進(jìn)行濾波處理,此處用BW帶阻濾波器對其進(jìn)行濾波,濾波后用命令可以繪制出其頻譜圖,回放語音信號。對原始語音信號、合成的語音信號和經(jīng)過濾波器處理的語音信號進(jìn)行頻譜的比較分析。</p><p><b> 設(shè)計(jì):</b></p><p> 1、選錄好的“123.wav”聲音作為語音信號。</p><p> 2、對語音信號加噪聲。<
37、/p><p> 3、分別設(shè)計(jì)IIR濾波器和FIR濾波器,對被污染的語音信號進(jìn)行濾波,濾掉相應(yīng)的噪音信號,得到符合要求的語音信號。</p><p><b> 3.程序設(shè)計(jì)流程圖</b></p><p><b> 四、調(diào)試分析</b></p><p><b> 遇到的問題:</b&g
38、t;</p><p> 1,、剛開始是準(zhǔn)備用自己錄的音作為需要的音頻信號,可是在加噪聲這一環(huán)節(jié)出現(xiàn)問題了,這一個(gè)環(huán)節(jié)花的時(shí)間比較多。在網(wǎng)上查找資料后才發(fā)現(xiàn)我錄的音是單音道的,要用雙音道的音頻才能順利完成加噪,改了之后才運(yùn)行成功。</p><p> 2、在做濾波器的時(shí)候也出現(xiàn)一些問題,明明是一樣的代碼卻提示我輸入的濾波的代碼有幾個(gè)字母沒有定義,經(jīng)過檢查思考之后才發(fā)現(xiàn)我應(yīng)該先寫濾波器特性的
39、代碼,運(yùn)行出來之后才能再寫濾波的代碼,問題解決了。</p><p> 3、緊接著就是做GUI界面了,我個(gè)人認(rèn)為是最難的部分。首先遇到的問題是,回調(diào)函數(shù)的代碼不知道加在哪里。經(jīng)過查找資料,加上反復(fù)的摸索和失敗之后我才模模糊糊的知道每個(gè)回調(diào)函數(shù)要加在對應(yīng)的按鈕的功能函數(shù)下面。這是初步的成功。</p><p> 4、初步的成功之后遇到了更大的困難,就是界面只能運(yùn)行濾波器特性的代碼,而真正濾波
40、的代碼卻運(yùn)行不出來,好像是濾波的代碼與源代碼有沖突。這個(gè)無論我怎么修改都不能成功,預(yù)備放棄了??墒怯刑焱砩峡唇虒W(xué)視頻的時(shí)候腦子里突然閃過一個(gè)念頭,我的代碼有問題。于是,我在濾波的代碼前面加上了相應(yīng)的濾波器特性的代碼,運(yùn)行成功了!這種喜悅的感覺無法形容。</p><p> 5、最大的問題是我的圖在axes里面不能完整運(yùn)行,我沒有辦法了,決定放棄。</p><p><b> 調(diào)試
41、程序圖:</b></p><p><b> 五、結(jié)果分析與體會</b></p><p><b> 分析:</b></p><p> 加入噪聲后回放的聲音與原始的語音信號有明顯的不同,其伴隨較尖銳的干擾嘯叫聲。從含噪語音信號的頻譜圖中可以看出是含噪的語音信號的頻譜,在整個(gè)頻域范圍內(nèi)分布均勻,這正是干擾所造成
42、的。通過濾波前后的對比,低通濾波后效果最好,高通濾波后的效果最差。由此可見,語音信號主要分布在低頻,而噪聲主要分布在高頻。</p><p> IIR數(shù)字濾波器采用遞歸型結(jié)構(gòu),即結(jié)構(gòu)上帶有反饋環(huán)路。IIR濾波器運(yùn)算結(jié)構(gòu)通常由延時(shí)、乘以系數(shù)和相加等基本運(yùn)算組成,可以組合成直接型、正準(zhǔn)型、級聯(lián)型、并聯(lián)型四種結(jié)構(gòu)形式,都具有反饋回路。由于運(yùn)算中的舍入處理,使誤差不斷累積,有時(shí)會產(chǎn)生微弱的寄生振蕩。 </p>
43、<p> ?。?)IIR數(shù)字濾波器的相位特性不好控制,對相位要求較高時(shí),需加相位校準(zhǔn)網(wǎng)絡(luò)。FIR濾波器則要求較低?!?lt;/p><p> ?。?)與FIR濾波器的設(shè)計(jì)不同,IIR濾波器設(shè)計(jì)時(shí)的階數(shù)不是由設(shè)計(jì)者指定,而是根據(jù)設(shè)計(jì)者輸入的各個(gè)濾波器參數(shù)(截止頻率、通帶濾紋、阻帶衰減等),由軟件設(shè)計(jì)出滿足這些參數(shù)的最低濾波器階數(shù)。在MATLAB下設(shè)計(jì)不同類型IIR濾波器均有與之對應(yīng)的函數(shù)用于階數(shù)的選擇。 &
44、lt;/p><p> (3)IIR單位響應(yīng)為無限脈沖序列FIR單位響應(yīng)為有限的 </p><p> ?。?)IIR幅頻特性精度很高,不是線性相位的,可以應(yīng)用于對相位信息不敏感的音頻信號上; </p><p> ?。?)FIR幅頻特性精度較之于iir低,但是線性相位,就是不同頻率分量的信號經(jīng)過FIR濾波器后他們的時(shí)間差不變。這是很好的性質(zhì)。 </p>&l
45、t;p> (6)IIR濾波器有噪聲反饋,而且噪聲較大,F(xiàn)IR濾波器噪聲較小。</p><p> ?。?)IIR濾波器運(yùn)算誤差大,有可能出現(xiàn)極限環(huán)振蕩,F(xiàn)IR相比之下運(yùn)算誤差較小,不會出現(xiàn)極限環(huán)振蕩。</p><p> IIR幅頻特性精度很高,不是線性相位的,可以應(yīng)用于對相位信息不敏感的音頻信號上; </p><p> FIR幅頻特性精度較之于iir低,但
46、是線性相位,就是不同頻率分量的信號經(jīng)過FIR濾波器后他們的時(shí)間差不變。這是很好的性質(zhì)。</p><p><b> 體會:</b></p><p> 通過這次做課程設(shè)計(jì)我學(xué)到不少東西。</p><p> 剛開始覺得這個(gè)課程設(shè)計(jì)很簡單,因?yàn)橹白鲞^類似的實(shí)驗(yàn),所以調(diào)試程序之類的事情就很容易。可是那只是覺得。真正做起來的時(shí)候才發(fā)現(xiàn)比想象的要難很
47、多。當(dāng)然,在做課程設(shè)計(jì)的時(shí)候遇到不少困難。遇到困難的時(shí)候就是簡單的在網(wǎng)上找了點(diǎn)資料,可是那些資料根本不夠用。于是我向老師求救。我以為老師會幫助我,可是老師沒有理我。不是沒有抱怨,可是冷靜下來之后才會想到自己去圖書館查閱資料,在網(wǎng)上大量的找相關(guān)的東西,甚至還去matlab中文論壇看了一些相關(guān)的視頻跟一些高手做的東西,漸漸地,困難少了。有些東西做起來得心應(yīng)手,速度比以前快多了。</p><p> 直到最后,我才明白
48、老師的良苦用心。通過依靠自己學(xué)到的知識遠(yuǎn)比別人告訴你的掌握的要牢,而且我也找到了一種學(xué)習(xí)方法:不能老是依靠別人,要自己動手,依靠自己。</p><p> 真的很感謝老師,是老師教會了我很多知識,我受益匪淺。</p><p><b> 六、參考資料</b></p><p> 1. 鄒彥,DSP原理及應(yīng)用,第1版,電子工業(yè)出版社,2006;&
49、lt;/p><p> 2.張雄偉,DSP集成開發(fā)與應(yīng)用實(shí)例,第1版,電子工業(yè)出版社,2002;</p><p> 3. 張洪濤等,數(shù)字信號處理,第一版,華中科技大學(xué)出版社,2007</p><p> 4. 彭啟琮等,DSP技術(shù)的發(fā)展與應(yīng)用,第二版,高等教育出版社,2007</p><p> 5. 楊述斌等,數(shù)字信號處理實(shí)踐教程,第一版,華
50、中科技大學(xué)出版社,2007</p><p> 6.劉穎慧MATLABR2007基礎(chǔ)教程[M].清華大學(xué)出版社.2008</p><p> 7.王琦,徐式蘊(yùn),趙睿濤,高軍峰,常春藤 MATLAB基礎(chǔ)與應(yīng)用實(shí)例集萃[M].人民郵電出版社.2007</p><p> 8.張威.MATLAB基礎(chǔ)與編程入門[M].西安電子科技大學(xué)出版社.2004</p>
51、<p><b> 七、附錄</b></p><p><b> 讀取語音信號</b></p><p> [y,fs,nbits]=wavread ('123.wav');</p><p> sound(y,fs,nbits); %回放語音信號</p><p> n
52、= length (y) ; %求出語音信號的長度</p><p> Y=fft(y,n); %傅里葉變換</p><p> subplot(2,1,1);plot(y);title('原始信號波形');</p><p> subplot(2,1,2);plot(abs(Y));title('原始信號頻譜')&
53、lt;/p><p><b> 加噪聲</b></p><p> [y,fs,nbits]=wavread ('123.wav');</p><p> n = length (y) ; %求出語音信號的長度</p><p> noise=0.01*randn(n,1); %隨機(jī)函數(shù)產(chǎn)生噪聲&
54、lt;/p><p> s=y+noise; %語音信號加入噪聲 </p><p><b> sound(s);</b></p><p> subplot(2,1,1);</p><p> plot(s);title('加噪語音信號的時(shí)域波形');</p><
55、;p> S=fft(s); %傅里葉變換</p><p> subplot(2,1,2);</p><p> plot(abs(S));title('加噪語音信號的頻域波形')</p><p> title('加噪語音信號的頻域波形');</p><p> ========
56、=================IIR低通濾波器=======================</p><p><b> Ft=8000;</b></p><p><b> Fp=1000;</b></p><p><b> Fs=1200;</b></p><p>
57、 wp=2*pi*Fp/Ft;</p><p> ws=2*pi*Fs/Ft;</p><p> fp=2*Ft*tan(wp/2);</p><p> fs=2*Fs*tan(wp/2);</p><p> [n11,wn11]=buttord(wp,ws,1,50,'s'); %求低通濾波器的階數(shù)和截止頻率<
58、/p><p> [b11,a11]=butter(n11,wn11,'s'); %求S域的頻率響應(yīng)的參數(shù) </p><p> [num11,den11]=bilinear(b11,a11,0.5); %利用雙線性變換實(shí)現(xiàn)頻率響應(yīng)S域到Z域的變換 </p><p> [h,w]=freqz(num11,den11); %根據(jù)參數(shù)求出頻率響應(yīng)
59、</p><p> plot(w*8000*0.5/pi,abs(h));</p><p> legend('用巴特沃斯butter設(shè)計(jì)');</p><p><b> grid</b></p><p> =========================IIR帶通濾波器=============
60、==========</p><p><b> Fp1=1200;</b></p><p><b> Fp2=3000;</b></p><p><b> Fs1=1000;</b></p><p><b> Fs2=3200;</b></p
61、><p><b> Ft=8000;</b></p><p> wp1=tan(pi*Fp1/Ft); %帶通到低通濾波器的轉(zhuǎn)換</p><p> wp2=tan(pi*Fp2/Ft);</p><p> ws1=tan(pi*Fs1/Ft);</p><p&g
62、t; ws2=tan(pi*Fs2/Ft);</p><p> w=wp1*wp2/ws2;</p><p> bw=wp2-wp1;</p><p><b> wp=1;</b></p><p> ws=(wp1*wp2-w.^2)/(bw*w);</p><p> [n12,wn1
63、2]=buttord(wp,ws,1,50,'s'); %求低通濾波器階數(shù)和截止頻率</p><p> [b12,a12]=butter(n12,wn12,'s'); %求S域的頻率響應(yīng)參數(shù)</p><p> [num2,den2]=lp2bp(b12,a12,sqrt(wp1*wp2),bw);%將S域低通參數(shù)轉(zhuǎn)為帶通的
64、</p><p> [num12,den12]=bilinear(num2,den2,0.5);%雙線性變換實(shí)現(xiàn)S域到Z域的轉(zhuǎn)換</p><p> [h,w]=freqz(num12,den12); %根據(jù)參數(shù)求出頻率響應(yīng)</p><p> plot(w*8000*0.5/pi,abs(h));</p><
65、p> axis([0 4000 0 1.5]);</p><p> legend('用巴特沃斯bbutter設(shè)計(jì)');</p><p><b> grid;</b></p><p> =========================IIR高通濾波器=======================</p>
66、<p><b> Ft=8000;</b></p><p><b> Fp=4000;</b></p><p><b> Fs=3500;</b></p><p> wp1=tan(pi*Fp/Ft); </p><p> ws1=tan(pi*Fs/F
67、t);</p><p><b> wp=1;</b></p><p> ws=wp1*wp/ws1;</p><p> [n13,wn13]=cheb1ord(wp,ws,1,50,'s'); </p><p> [b13,a13]=cheby1(n13,1,wn13,'s');
68、</p><p> [num,den]=lp2hp(b13,a13,wn13); </p><p> [num13,den13]=bilinear(num,den,0.5); </p><p> [h,w]=freqz(num13,den13);</p><p> plot(w*21000*0.5/pi,abs(h));</p&
69、gt;<p> title('IIR高通濾波器');</p><p> legend('用切比雪夫cheby1設(shè)計(jì)');</p><p> axis([0 12000 0 1.5]);</p><p><b> grid;</b></p><p> ========
70、================IIRellipord濾波器=======================</p><p> Y=fft(y,5096);</p><p> fb=1000;fc=1200;As=300;Ap=1;fs=22350;</p><p> wc=2*fc/fs; wb=2*fb/fs;</p><p> [
71、N,wp]=ellipord(wp,ws,rp,rs);</p><p> [B,A]=ellip(N,rp,rs,wp);</p><p> figure(1);</p><p> **************************FIR低通濾波器*****************************</p><p><b
72、> Ft=8000;</b></p><p><b> Fp=1000;</b></p><p><b> Fs=1200;</b></p><p> wp=2*Fp/Ft;</p><p> ws=2*Fs/Ft;</p><p><b&g
73、t; rp=1;</b></p><p><b> rs=50;</b></p><p> p=1-10.^(-rp/20); %通帶阻帶波紋</p><p> s=10.^(-rs/20);</p><p> fpts=[wp ws];</p><p> mag=[1 0
74、];</p><p> dev=[p s];</p><p> [n21,wn21,beta,ftype]=kaiserord(fpts,mag,dev); </p><p> b21=fir1(n21,wn21,Kaiser(n21+1,beta)); %由fir1設(shè)計(jì)濾波器</p><p> [h,w]=freqz(b21,1
75、); %得到頻率響應(yīng)</p><p> plot(w/pi,abs(h));</p><p> title('FIR低通濾波器');</p><p><b> grid;</b></p><p> **************************FIR帶通濾波器**********
76、*******************</p><p><b> Fp1=1200;</b></p><p><b> Fp2=3000;</b></p><p><b> Fs1=1000;</b></p><p><b> Fs2=3200;</b&
77、gt;</p><p><b> Ft=8000;</b></p><p> wp1=Fp1*2*pi/Ft;</p><p> wp2=Fp2*2*pi/Ft;</p><p> ws1=Fs1*2*pi/Ft;</p><p> ws2=Fs2*2*pi/Ft;</p>
78、<p> wc1=wp1-ws1;</p><p><b> rp=1;</b></p><p><b> rs=50;</b></p><p> beta=0.1102*(rs-8.7);</p><p> n22=ceil((rs-7.95)/2.286/wc1);<
79、/p><p> wn22=[(wp1+ws1)/2/pi,(wp2+ws2)/2/pi];</p><p> wn= kaiser(n22+1,beta); </p><p> b22=fir1(n22,wn22,wn);</p><p> [h,w]=freqz(b22,1);</p><p> plot(w/
80、pi,abs(h));</p><p> title('FIR帶通濾波器by凱澤窗');</p><p><b> grid;</b></p><p> **************************FIR高通濾波器*****************************</p><p>&
81、lt;b> Ft=8001;</b></p><p><b> Fp=4000;</b></p><p><b> Fs=3500;</b></p><p> wp=2*Fp/Ft;</p><p> ws=2*Fs/Ft;</p><p> r
82、p=1;rs=50;</p><p> p=1-10.^(-rp/20); %通帶阻帶波紋</p><p> s=10.^(-rs/20);</p><p> fpts=[ws wp];</p><p> mag=[0 1];</p><p> dev=[p s];</p><p>
83、 [n23,wn23,beta,ftype]=kaiserord(fpts,mag,dev);</p><p> b23=fir1(n23,wn23,'high',Kaiser(n23+1,beta)); </p><p> [h,w]=freqz(b23,1); </p><p> plot(w*12000*0.5/pi,abs(h));&
84、lt;/p><p> title('FIR高通濾波器');</p><p> axis([2000 6000 0 1.2]);</p><p><b> grid</b></p><p> % ======================雙線性變換法=======================<
85、;/p><p> %*************************低通濾波器************************</p><p> [y,fs,nbits]=wavread ('123.wav');</p><p> n = length (y) ; %求出語音信號的長度</p>&l
86、t;p> noise=0.01*randn(n,1); %隨機(jī)函數(shù)產(chǎn)生噪聲</p><p> s=y+noise; %語音信號加入噪聲</p><p> S=fft(s); %傅里葉變換</p><p> z11=filter(num11,d
87、en11,s);</p><p> sound(z11);</p><p> m11=fft(z11); %求濾波后的信號</p><p> subplot(2,2,1);</p><p> plot(abs(S),'g');</p><p> tit
88、le('濾波前信號的頻譜');</p><p><b> grid;</b></p><p> subplot(2,2,2);</p><p> plot(abs(m11),'r');</p><p> title('濾波后信號的頻譜');</p>&
89、lt;p><b> grid;</b></p><p> subplot(2,2,3);</p><p><b> plot(s);</b></p><p> title('濾波前信號的波形');</p><p><b> grid;</b>&l
90、t;/p><p> subplot(2,2,4);</p><p> plot(z11);</p><p> title('濾波后的信號波形');</p><p> **********************帶通濾波器*****************************</p><p>
91、[y,fs,nbits]=wavread('123.wav');</p><p> n = length (y) ; %求出語音信號的長度</p><p> noise=0.01*randn(n,1); %隨機(jī)函數(shù)產(chǎn)生噪聲</p><p> s=y+noise;
92、 %語音信號加入噪聲</p><p> S=fft(s); %傅里葉變換</p><p> z12=filter(num12,den12,s);</p><p> sound(z12);</p><p> m12=fft(z12);
93、 %求濾波后的信號</p><p> subplot(2,2,1);</p><p> plot(abs(S),'g');</p><p> title('濾波前信號的頻譜');</p><p> subplot(2,2,2);</p><p> plot(a
94、bs(m12),'r');</p><p> title('濾波后信號的頻譜');</p><p> subplot(2,2,3);</p><p><b> plot(s);</b></p><p> title('濾波前信號的波形');</p>&
95、lt;p> subplot(2,2,4);</p><p> plot(z12);</p><p> title('濾波后的信號波形');</p><p> *****************************高通濾波器*****************************</p><p> [y,f
96、s,nbits]=wavread('123.wav');</p><p> n = length (y) ; %求出語音信號的長度</p><p> noise=0.01*randn(n,1); %隨機(jī)函數(shù)產(chǎn)生噪聲</p><p> s=y+noise;
97、 %語音信號加入噪聲</p><p> S=fft(s); %傅里葉變換</p><p> z13=filter(num13,den13,s);</p><p> sound(z13);</p><p> m13=fft(z13);
98、 %求濾波后的信號</p><p> subplot(2,2,1);</p><p> plot(abs(S),'g');</p><p> title('濾波前信號的頻譜');</p><p> subplot(2,2,2);</p><p> plo
99、t(abs(m13),'r');</p><p> title('濾波后信號的頻譜');</p><p> subplot(2,2,3);</p><p> plot(s); </p><p> title('濾波前信號的波形');</p><p>
100、; subplot(2,2,4);</p><p> plot(z13);</p><p> title('濾波后的信號波形');</p><p> ========================IIRellipord濾波=======================</p><p> [y,fs,nbits]=w
101、avread('123.wav');</p><p> Y=fft(y,5096);</p><p> fb=1000;fc=1200;As=100;Ap=1;fs=22050;</p><p> wc=2*fc/fs; wb=2*fb/fs;</p><p> [N,wp]=ellipord(wp,ws,rp,rs)
102、;</p><p> [B,A]=ellip(N,rp,rs,wp);</p><p> figure(1);</p><p> freqz(B,A,512,fs);</p><p> x=filter(B,A,y);</p><p> X=fft(x,4096);</p><p>
103、 figure(2);</p><p> subplot(2,2,1);plot(y);title('濾波前信號的波形');</p><p> subplot(2,2,2);plot(abs(Y));title('濾波前信號的頻譜');</p><p> Subplot(2, 2 ,3);plot(x);title('濾
104、波后信號的波形');</p><p> Subplot(2, 2 ,4);plot(abs(X));title('濾波后信號的頻譜');</p><p> sound(x,fs,nbits);</p><p> ========================窗函數(shù)法==========================</p>
105、;<p> %**************************低通濾波器****************************</p><p> [y,fs,nbits]=wavread('123.wav');</p><p> n = length (y) ; %求出語音信號的長度</p>&l
106、t;p> noise=0.01*randn(n,1); %隨機(jī)函數(shù)產(chǎn)生噪聲</p><p> s=y+noise; %語音信號加入噪聲 </p><p> S=fft(s); %傅里葉變換</p><p> z21=fftf
107、ilt(b21,s);</p><p> sound(z21);</p><p> m21=fft(z21); %求濾波后的信號</p><p> subplot(2,2,1);</p><p> plot(abs(S),'g');</p><p> ti
108、tle('濾波前信號的頻譜');</p><p> subplot(2,2,2);</p><p> plot(abs(m21),'r'); title('濾波后信號的頻譜');</p><p> subplot(2,2,3);</p><p> plot(s); t
109、itle('濾波前信號的波形');</p><p> subplot(2,2,4);</p><p> plot(z21); title('濾波后的信號波形');</p><p> ****************************帶通濾波器***************************</p&
110、gt;<p> [y,fs,nbits]=wavread('123.wav');</p><p> n = length (y) ; %求出語音信號的長度</p><p> noise=0.01*randn(n,1); %隨機(jī)函數(shù)產(chǎn)生噪聲</p><p> s=y+
111、noise; %語音信號加入噪聲 </p><p> S=fft(s); %傅里葉變換</p><p> z22=fftfilt(b22,s);</p><p> sound(z22);</p><p> m22=fft(z22);
112、 %求濾波后的信號</p><p> subplot(2,2,1);</p><p> plot(abs(S),'g');</p><p> title('濾波前信號的頻譜');</p><p> subplot(2,2,2);</p><p>
113、; plot(abs(m22),'r');</p><p> title('濾波后信號的頻譜');</p><p> subplot(2,2,3);</p><p><b> plot(s);</b></p><p> title('濾波前信號的波形');<
114、/p><p> subplot(2,2,4);</p><p> plot(z22);</p><p> title('濾波后的信號波形');</p><p> *************************高通濾波器*****************************</p><p>
115、 [y,fs,nbits]=wavread('123.wav');</p><p> n = length (y) ; %求出語音信號的長度</p><p> noise=0.01*randn(n,1); %隨機(jī)函數(shù)產(chǎn)生噪聲</p><p> s=y+noise;
116、 %語音信號加入噪聲 </p><p> S=fft(s); %傅里葉變換</p><p> z23=fftfilt(b23,s);</p><p> sound(z23);</p><p> m23=fft(z23); %求濾波后的信號</
117、p><p> subplot(2,2,1);</p><p> plot(abs(S),'g');</p><p> subplot(2,2,2);</p><p> plot(abs(m23),'r');</p><p> title('濾波后信號的頻譜');&l
118、t;/p><p> subplot(2,2,3);</p><p><b> plot(s);</b></p><p> title('濾波前信號的波形');</p><p> subplot(2,2,4);</p><p> plot(z23);</p>&l
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- matlab課程設(shè)計(jì)--基于matlab有噪聲語音信號處理
- 數(shù)字信號處理課程設(shè)計(jì)--基于matlab有噪聲語音信號處理
- matlab課程設(shè)計(jì)報(bào)告--基于matlab有噪聲語音信號處理
- 基于matlab的有噪聲的語音信號處理的課程設(shè)計(jì)
- 數(shù)字信號處理課程設(shè)計(jì)-基于fir的有噪聲語音信號處理
- 數(shù)字信號處理課程設(shè)計(jì)--基于fir的有噪聲語音信號處理
- dsp語音信號處理課程設(shè)計(jì)
- 語音信號處理課程設(shè)計(jì)
- 基于matlab的有噪聲語音信號處理畢設(shè)
- 語音信號處理與濾波課程設(shè)計(jì)
- 基于matlab的有噪聲語音信號處理說明書
- 語音信號處理課程設(shè)計(jì)報(bào)告
- 數(shù)字信號課程設(shè)計(jì)語音信號的采集、分析與處理
- 信號處理課程設(shè)計(jì)基于matlab的語音信號分析和處理
- matlab課程設(shè)計(jì)--語音信號的采集與處理
- 基于 matlab 的語音信號分析與處理的課程設(shè)計(jì)
- 信號處理課程設(shè)計(jì)---基于matlab的語音信號處理
- 數(shù)字信號處理課程設(shè)計(jì)--語音信號的處理與濾波
- 數(shù)字信號處理課程設(shè)計(jì)---語音信號的處理與濾波
- 數(shù)字信號處理課程設(shè)計(jì)---語音信號的處理與濾波
評論
0/150
提交評論