MATLAB語音信號處理_第1頁
MATLAB語音信號處理_第2頁
MATLAB語音信號處理_第3頁
MATLAB語音信號處理_第4頁
MATLAB語音信號處理_第5頁
免費預(yù)覽已結(jié)束,剩余8頁可下載查看

下載本文檔

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

文檔簡介

1、基于 MATLAB的語音信號采集與處理一、實驗的目的和要求1. MATLAB軟件功能簡介MATLAB的名稱源自 Matrix Laboratory,1984 年由美國 Mathworks 公司推向市場。它是 一種科學(xué)計算軟件,專門以矩陣的形式處理數(shù)據(jù)。MATLAB將高性能的數(shù)值計算和可視化集成在一起, 并提供了大量的內(nèi)置函數(shù), 從而被廣泛的應(yīng)用于科學(xué)計算、 控制系統(tǒng)和信息處理 等領(lǐng)域的分析、仿真和設(shè)計工作。MATLAB軟件包括五大通用功能, 數(shù)值計算功能 ( Nemeric )、符號運算功能 (Symbolic )、 數(shù)據(jù)可視化功能 ( Graphic )、數(shù)字圖形文字統(tǒng)一處理功能( Note

2、book )和建模仿真可視化功 能( Simulink )。其中,符號運算功能的實現(xiàn)是通過請求MAPLE內(nèi)核計算并將結(jié)果返回到MATLAB命令窗口。該軟件有三大特點,一是功能強大;二是界面友善、語言自然;三是開 放性強。目前, Mathworks 公司已推出 30 多個應(yīng)用工具箱。 MATLAB在線性代數(shù)、矩陣分析、 數(shù)值及優(yōu)化、數(shù)值統(tǒng)計和隨機信號分析、電路與系統(tǒng)、系統(tǒng)動力學(xué)、次那好和圖像處理、控 制理論分析和系統(tǒng)設(shè)計、 過程控制、 建模和仿真、 通信系統(tǒng)以及財政金融等眾多領(lǐng)域的理論 研究和工程設(shè)計中得到了廣泛應(yīng)用。MATLAB在信號與系統(tǒng)中的應(yīng)用主要包括符號運算和數(shù)值計算仿真分析。由于信號與

3、系 統(tǒng)課程的許多內(nèi)容都是基于公式演算, 而 MATLAB借助符號數(shù)學(xué)工具箱提供的符號運算功能, 能基本滿足信號與系統(tǒng)課程的需求。 例如解微分方程、 傅里葉正反變換、 拉普拉斯正反變換 和 z 正反變換等。 MATLAB在信號與系統(tǒng)中的另一主要應(yīng)用是數(shù)值計算與仿真分析,主要包 括函數(shù)波形繪制、函數(shù)運算、沖擊響應(yīng)與階躍響應(yīng)仿真分析、 信號的時域分析、信號的頻譜 分析、系統(tǒng)的 S 域分析和零極點圖繪制等內(nèi)容。 數(shù)值計算仿真分析可以幫助學(xué)生更深入地理 解理論知識,并為將來使用 MATLAB進行信號處理領(lǐng)域的各種分析和實際應(yīng)用打下基礎(chǔ)。2. 本題目的意義本次課程設(shè)計的課題為基于MATLAB的語音信號采集

4、與處理,學(xué)會運用MATLAB的信號處理功能,采集語音信號,并對語音信號進行濾波及變換處理,觀察其時域和 頻域特性,加深對信號處理理論的理解,并為今后熟練使用MATLAB進行系統(tǒng)的分析仿真和設(shè)計奠定基礎(chǔ)。二、實驗原理:1. 理論原理利用 MATLAB對語音信號進行分析和處理, 采集語音信號后, 利用 MATLAB軟件平臺進行 頻譜分析; 并對所采集的語音信號加入干擾噪聲, 對加入噪聲的信號進行頻譜分析, 設(shè)計合 適的濾波器濾除噪聲,恢復(fù)原信號。2. 具體流程(1)語音信號的采集及分析 基于聲卡進行數(shù)字信號的采集。將話筒插入計算機的語音輸入插口上 , 啟動錄音機。按 下錄音按鈕,對話筒說話 , 說

5、完后停止錄音。要保存文件時 ,利用了計算機上的 A/D 轉(zhuǎn)換器 , 把模擬的聲音信號變成了離散的量化了的數(shù)字信號 ,放音時 ,它又通過 D/A轉(zhuǎn)換器 ,把保存的 數(shù)字數(shù)據(jù)恢復(fù)為原來的模擬的聲音信號。 在 Matlab 軟件平臺下可以利用函數(shù) wavread 對語 音信號進行采樣 , 得到了聲音數(shù)據(jù)變量。下面介紹 Wavread 函數(shù)幾種調(diào)用格式。( 1) y=wavread ( file )功能說明:讀取 file 所規(guī)定的 wav 文件,返回采樣值放在向量 y 中。( 2) y,fs,nbits=wavread(file) 功能說明:采樣值放在向量 y 中, fs 表示采樣頻率( hz),

6、nbits 表示采樣位數(shù)。( 3) y=wavread ( file , N) 功能說明:讀取錢 N點的采樣值放在向量 y 中。( 4) y=wavread ( file , N1,N2 ) 功能說明:讀取從 N1到 N2點的采樣值放在向量 y 中。 錯誤說明:如果自己錄制的 wav 文件不能讀取,可以自己找一段 wav 聲音文件。(2)給原始信號加上一個高頻噪聲在 Matlab 中人為設(shè)計一個高頻 f 噪聲干擾信號。 噪聲信號通常為隨機序列 , 在本設(shè)計中 可用正弦序列代替 , 干擾信號構(gòu)建命令函數(shù)為nosie=Au*sin(2*pi*f*t)', 給出的干擾信號為一個正弦信號, 針

7、對上面的語音信號 , 采集了其中一段。 再對噪音信號進行頻譜變換得 到其頻譜圖。在 MATLAB中把語音信號與噪聲信號進行疊加,并對其進行播放,然后對加入噪聲后的 語音信號進行頻譜分析,在 MATLAB中可以利用函數(shù) FFT 對信號進行快速傅里葉變換。將原語音信號與 noise 疊加,調(diào)用的形式為:s=y+noise;其中, y 為原語音信號, noise 為所構(gòu)造的隨機高斯噪聲, s 即為兩者的疊加后的語音 信號。(3) 設(shè)計一個濾波器,濾除高頻噪聲在 MATLAB 中 , 可以利用函數(shù) butterworth, 設(shè)計 FIR 濾波器 , 利用 MATLAB 中的函數(shù) freqz 畫出各濾波

8、器的頻率響應(yīng)。用設(shè)計好的濾波器對含噪語音信號進行濾波 , 在 Matlab 中 ,F(xiàn)IR 濾波器利用函數(shù) filter 對信號進行濾波。3. 實驗記錄:(1) 通過計算機錄音文件采集的一段聲音文件,然后使用 wav=wavread(file) 函數(shù)讀取 該 文 件 。 使 用 wavfft=fft(wav) 獲 得 原 始 信 號 的 傅 里 葉 變 換 , 使 用 wavfftsh=fftshift(wavfft) 來得到信號的頻譜圖。使用執(zhí)行結(jié)果如下:分別為聲音文件的 時域圖形,傅里葉變換和頻譜圖。原始語音信號時域波形原始信號的頻譜圖像500原始語音傅里葉變換400300200100-10

9、0-200-300-400-50-0400 -300 -200 -100 0 100 200 300 400 5005x 10 52)創(chuàng)建一個噪聲信號,該噪聲信號為noise=800000000*sin(2*pi*fs*t) 。其中噪聲信號噪聲信號5 x 10噪聲信號傅里葉變換-8000-6000 -4000-200020004000-8000-10000噪聲信號頻域分析Au=800000000;pi 為圓周率 3.14 ;fs 為提取的原始聲音信號的頻率值,時間 t 為從 0 到(n-1)/fs 的每隔 1/fs 取一個值的一個函數(shù), 即 t=0:1/fs:(n-1)/fs ( 其中 n=l

10、ength(wav) , 為原始信號波的長度) ,時間長度和原始信號的長度一樣。獲得的噪聲不是一個標準的正弦 波,而是一個幅值隨時間非線性增大的波, 這樣的波比較符合現(xiàn)實中嘈雜的環(huán)境。 采用步驟 1 中同樣的方法獲得噪聲信號的傅里葉變換和頻譜圖形。具體波形如下圖所示:80006000400020000-2000-4000-6000(3)將噪聲信號和原始信號進行疊加。 因為原始聲音信號 wav為n,2n 行 2 列的矩陣, 而噪聲信號為 1,n1 行 n 列的矩陣,所以要想這兩個矩陣相加,必須做一些基本變換。首 先對噪聲 信號進 行轉(zhuǎn)置: noiseT=noise ',然 后在對新的信

11、號加上一列空 值, 即 wavch=noise',zeros(n,1) 其中 n 為聲音信號的長度。之后將聲音信號和噪聲信號疊加, 即將兩個矩陣相加 wavbo=wavch+wav。重復(fù)采用步驟 1 中同樣的方法獲得噪聲信號的傅里葉變換和頻譜圖形。具體波形如下圖所示:0.5混合信號傅里葉分析疊加信號80000.460000.30.20.10-0.1-2000-0.2-4000-0.3-6000-0.41.52.53.52000 40000 0.5-80004.5 -10000 -8000 -6000 -4000 -2000 5x 10-0.540002000混合信號頻譜分析(4) 設(shè)計

12、濾波器對添加噪聲信號的混合信號進行濾波。由于添加的噪聲為高頻噪聲,所以 該濾波器為截止頻率為 5kHz 的四階巴特沃斯低通濾波器,并用此濾波器對錄音信號進行濾 波。四階巴特沃斯低通濾波器的設(shè)計格式是 B,A=butter(N,Wn), 其中 n 為濾波器階數(shù), Wnfcoff2 coff 為截止頻率參數(shù)。 這里的 Wn并不是真正的截止角頻率, 它與真正角頻率的關(guān)系是 Wn= f s , 因此在 22.05kHz 的取樣頻率下,截止頻率為 5kHz 的低通濾波器 Wn=0.45。對混合信號進行 濾波以后, 采用同樣的方法對濾波后的聲音信號進行時域波形的顯示, 還有聲音圖像的傅里 葉變換和頻譜圖像

13、的顯示。 通過對比可以發(fā)現(xiàn)進行濾波后的聲音波形, 傅里葉變換以及頻譜 圖和原聲音信號基本上相同, 說明該濾波器的選取基本上還是比較符合要求的。 具體圖形如 精彩文檔下:濾波后信號時域波形濾波 后 信 號 的 傅里 葉 變 換0.20.150.10.050-0.05-0.1-0.15-0.2500400300200100-4000.51.52.53.54100 200 300 400 5004.5-5004.5 -400 -300 -200 -100 5x 10-100-200-300濾波后信號的頻譜分析4. 心得體會:通過這次語音信號處理的課程設(shè)計,使我對聲波信號有了一個新的認識,還有生活中

14、聽到的各種聲波都有了一個新的了解。 我們所聽到的各種波, 都是不同的波的組合, 改變波 的頻率以及幅值, 其發(fā)出的聲音就會改變。 生活中需要聽到很多聲音, 當然也會有很多噪音 出現(xiàn), 有效地濾除這些噪聲,對我們提取特定聲音都有很大的幫助。在一般情況下,我們聽 到的噪聲都是一定頻率的波,通過設(shè)定特定的濾波器,我們就可以有效地把這些波濾除掉, 從而提取我們需要的信息。 本例中通過對原始聲音添加噪聲, 添加的噪聲為頻率變化并且音 調(diào)也變化的波, 和現(xiàn)實生活中的噪聲有很大相似性。 并且這種噪聲是一種高頻噪聲, 所以在 設(shè)計濾波器是采用低頻濾波器,將信號中的高頻噪聲濾除掉從而得到我們想要的聲音信號。 這

15、次設(shè)計, 是我對聲音的波形還有氣頻率特性有了一個直觀的了解, 揭開了音波的那份神秘 的面紗,并在對波的處理上提高了一個認識。5. 實驗源代碼:%-(1)%提取聲音n=length(wav)%t=0:1/fs:(n-1)/fs;%sound(wav,fs) ;%figure(1);plot(wav);%title(' 原始語音信號時域波形軟件 WavPro.wav ') ; 求出聲音長度 時間 t 從0到 n-1 對加載的語音信號進行回放做原始語音信號的時域圖形 ');%傅里葉變換y1=fft(wav,n) ;figure(2);做原始語音信號的傅里葉變換);原始信號的頻

16、譜圖像);plot(y1); % title(' 原始語音傅里葉變換%對原始信號頻域分析y2=fftshift(y1);figure(3);plot(abs(y2); % title(' 原始信號的頻譜圖像 %-(2) %噪聲信號 為正弦波 noise=800000000*sin(2*pi*fs*t); figure(4);plot(noise); % 噪聲信號 title(' 噪聲信號 ');%噪聲信號傅里葉變換sound(noise,fs) ; % 對噪聲信號進行回放 noifft=fft(noise);figure(5);plot(noifft); % 做

17、噪聲信號傅里葉變換圖形 title(' 噪聲信號傅里葉變換 ');%對噪聲信號頻域分析noifftsh=fftshift(noifft);figure(6);做噪聲信號頻譜分析plot(abs(noifftsh); % title(' 噪聲信號頻域分析 ');%-(3)%對噪聲進行變換 n2=length(noise);wavch=noise',zeros(n2,1); % wavbo=wavch+wav; % sound(wavbo,fs);figure(7);plot(wavbo); % title(' 疊加信號 ');對噪聲進行變換

18、,轉(zhuǎn)換成為和原始信號一樣的矩陣噪聲疊加%加入噪聲的信號頻譜分析 wavbofft=fft(wavbo,n);figure(8);plot(wavbofft); %title(' 混合信號傅里葉分析 ');%混合信號頻譜分析 wavbofftshift=(wavbofft);figure(9); plot(abs(wavbofftshift); % title(' 混合信號頻譜分析 ');做混合信號的傅里葉變換混合信號的頻譜分析%-(4)%濾波器 - 低通濾波器 b,a=butter(4,0.45); wav1=filter(b,a,wav); %sound(wav1,fs); %得到濾波后的信號回放原信號%顯示濾波后的信號時域圖形fig

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論