基于MATLAB的語音信號(hào)錄制_第1頁
基于MATLAB的語音信號(hào)錄制_第2頁
基于MATLAB的語音信號(hào)錄制_第3頁
基于MATLAB的語音信號(hào)錄制_第4頁
基于MATLAB的語音信號(hào)錄制_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

..基于MATLAB的語音信號(hào)錄制功能介紹該設(shè)計(jì)主要介紹語音信號(hào)的采集與分析方法,通過PC機(jī)錄制自己的一段聲音,運(yùn)用Matlab提供的函數(shù)進(jìn)行仿真分析,并畫出采樣后語音信號(hào)的時(shí)域波形和頻譜圖,對(duì)所采集的語音信號(hào)加入干擾隨機(jī)高斯噪聲對(duì)加入噪聲的信號(hào)進(jìn)行播放,并進(jìn)行時(shí)域和頻譜分析,對(duì)比加噪前后的時(shí)域圖和頻譜圖,分析討論采用什么樣的濾波器進(jìn)行濾除噪聲。1語音信號(hào)的錄制為了將原始模擬語音信號(hào)變?yōu)閿?shù)字信號(hào),必須經(jīng)過采樣和量化兩個(gè)步驟,從而得到時(shí)間和幅度上均為離散的數(shù)字語音信號(hào)。語音信號(hào)經(jīng)過預(yù)濾波和采樣后,由A/D變換器變換為二址制數(shù)字碼。這種防混疊濾波通常與模數(shù)轉(zhuǎn)換器做在一個(gè)集成塊內(nèi),因此目前來說,語音信號(hào)的數(shù)字化的質(zhì)量還是有保證的。語音聲波通過話筒輸入到聲卡后直接獲得的是經(jīng)過防混疊濾波、A/D變換、量化處理的離散的數(shù)字信號(hào)。將聲卡作為對(duì)象處理采集語音信號(hào)Matlab將聲卡作為對(duì)象處理,其后的一切操作都不與硬件直接相關(guān),而是通過對(duì)該對(duì)象的操作來作用于硬件設(shè)備、聲卡。操作時(shí)首先要對(duì)聲卡產(chǎn)生一個(gè)模擬輸入對(duì)象<ai>,給ai對(duì)象添加一個(gè)通道設(shè)置采樣頻率后,就可以啟動(dòng)設(shè)備對(duì)象,開始采集數(shù)據(jù),采集完成后停止對(duì)象并刪除對(duì)象。圖是基于PC機(jī)的語音信號(hào)錄制過程,聲卡可以完成語音波形的A/D轉(zhuǎn)換獲得WAVE文件,為后續(xù)的處理儲(chǔ)備原材料。調(diào)節(jié)錄音機(jī)保存界面的"更改"選項(xiàng)可以存儲(chǔ)各種格式的WAVE文件。錄制過程:打開電腦左下角的程序——附件——娛樂——錄音機(jī)2語音信號(hào)的采集配置好數(shù)據(jù)采集設(shè)備的參數(shù)后,使用start命令便可啟動(dòng)聲卡開始語音信號(hào)的采集。采集到的數(shù)據(jù)被暫時(shí)存放在PC機(jī)的內(nèi)存里,理論上可采集的最大數(shù)據(jù)量是由PC機(jī)的內(nèi)存容量決定的,這一點(diǎn)相對(duì)于一般的數(shù)據(jù)采集系統(tǒng)而言有較強(qiáng)的優(yōu)勢(shì)。MATLAB還可以記錄采集過程中出現(xiàn)錯(cuò)誤,如出錯(cuò)的時(shí)間、錯(cuò)誤產(chǎn)生的來源以及數(shù)據(jù)采集設(shè)備的狀態(tài)等信息都會(huì)被記錄下來作為以后工作的參考。語音采集子系統(tǒng)是通過PC錄音機(jī)RealtekAC’97型聲卡和Matlab的數(shù)據(jù)采集工具箱實(shí)現(xiàn)的。其中RealtekAC’97型聲卡的采樣位數(shù)為16位,支持8~44.1kHz的采樣速率,可以滿足語音采集的硬件要求[1]。Matlab自帶的數(shù)據(jù)采集工具箱里面,提供了專門用于語音采集的命令和函數(shù)。數(shù)據(jù)采集的硬件設(shè)備的內(nèi)部特性對(duì)Matlab的接口完全是透明的,通過調(diào)用Matlab提供的語音采集函數(shù)和命令可以對(duì)其進(jìn)行訪問。而且Matlab可以對(duì)其采集的數(shù)據(jù)進(jìn)行實(shí)時(shí)的分析,也可在存儲(chǔ)后再進(jìn)行處理。語音信號(hào)采集框圖3語音信號(hào)的分析3.1語音信號(hào)時(shí)域分析語音信號(hào)的時(shí)域分析就是分析和提取語音信號(hào)的時(shí)域參數(shù)。進(jìn)行語音分析時(shí)?最先接觸到并且也是最直觀的是它的時(shí)域波形。語音信號(hào)本身就是時(shí)域信號(hào),因而時(shí)域分析是最早使用,也是應(yīng)用最廣泛的一種分析方法,這種方法直接利用語音信號(hào)的時(shí)域波形。時(shí)域分析通常用于最基本的參數(shù)分析及應(yīng)用,如語音的分割、預(yù)處理、大分類等。這種分析方法的特點(diǎn)一是表示語音信號(hào)比較直觀、物理意義明確,二是實(shí)現(xiàn)起來比較簡(jiǎn)單、運(yùn)算且少,三是可以得到語音的一些重要的參數(shù),四是只使用示波器等通用設(shè)備,使用較為簡(jiǎn)單等。ATLAB數(shù)據(jù)采集箱中提供的函數(shù)命令進(jìn)行圖像分析的函數(shù)命令wavrecord:wavrecord利用Windows音頻輸入設(shè)備記錄聲音,其調(diào)用形式為:wavrecord<n,fs,ch>。利用Windows音頻輸入設(shè)備記錄n個(gè)音頻采樣,頻率為fsHz,通道數(shù)為ch。采樣值返回到一個(gè)大小為n*ch的矩陣中。缺省時(shí),fs=11025,ch=1。waveplay:waveplay利用Windows音頻輸出設(shè)備播放聲音,其調(diào)用形為:waveplay<y,fs>。以采樣頻率fs向Windows音頻設(shè)備發(fā)送向量信號(hào)。標(biāo)準(zhǔn)的音頻采樣率有:8000、11025、22050和44100Hz。wavread:wavread用于讀取Microsoft的擴(kuò)展名為".wav"的聲音文件。其調(diào)用形式為:y=wavread<file>。其作用是從字符串file所指的文件路徑讀取wave文件,將讀取的采樣數(shù)據(jù)送到y(tǒng)中。Y的取值范圍:[-1,1]。sound:音頻信號(hào)是以向量的形式表示聲音采樣的。sound函數(shù)用于將向量轉(zhuǎn)換為聲音,其調(diào)用形式為:sound<y,fs>,作用是向揚(yáng)聲器送出向量y中的音頻信號(hào)<采樣頻率為fs>。通過Wavread和plot<x>函數(shù)即可顯示圖像的時(shí)域波形。原始語音信號(hào)的時(shí)域波形3.2語音信號(hào)頻域分析語音信號(hào)的頻域分析就是分析語音信號(hào)的頻域持征。從廣義上講,語音信號(hào)的頻域分析包括語音信號(hào)的頻譜、功率譜、倒頻譜、頻譜包絡(luò)分析等,而常用的頻域分析方法有帶通濾波器組法、傅里葉變換法、線件預(yù)測(cè)法等幾種。本文介紹的是語音信號(hào)的傅里葉分析法。因?yàn)檎Z音波是一個(gè)非平穩(wěn)過程因此適用于周期、瞬變或平穩(wěn)隨機(jī)信號(hào)的標(biāo)準(zhǔn)傅里葉變換不能用來直接表示語音信號(hào),而應(yīng)該用短時(shí)傅里葉變換對(duì)語音信號(hào)的頻譜進(jìn)行分析,相應(yīng)的頻譜稱為"短時(shí)譜"。FFT即為快速傅氏變換是離散傅氏變換的快速算法。它是根據(jù)離散傅氏變換的奇、偶、虛、實(shí)等特性對(duì)離散傅立葉變換的算法進(jìn)行改進(jìn)獲得的。在MATLAB的信號(hào)處理工具箱中函數(shù)FFT和IFFT用于快速傅立葉變換和逆變換。函數(shù)FFT用于序列快速傅立葉變換,其調(diào)用格式為y=fft<x>其中,x是序列,y是序列的FFT,x可以為一向量或矩陣?。若x為一向量?,y是x的FFT且和x相同長(zhǎng)度。若x為一矩陣,則y是對(duì)矩陣的每一列向量進(jìn)行FFT。如果x長(zhǎng)度是2的冪次方,函數(shù)fft執(zhí)行高速基——2FFT算法,否則fft執(zhí)行一種混合基的離散傅立葉變換算法,計(jì)算速度較慢。函數(shù)FFT的另一種調(diào)用格式為y=fft<x,N>式中?x?y意義同前。N為正整數(shù)。函數(shù)執(zhí)行N點(diǎn)的FFT,若x為向量且長(zhǎng)度小于N。則函數(shù)將x補(bǔ)零至長(zhǎng)度N,若向量x的長(zhǎng)度大于N,則函數(shù)截短x使之長(zhǎng)度為N,若x為矩陣,按相同方法對(duì)x進(jìn)行處理。4語音信號(hào)的加噪處理所謂高斯噪聲,是指沒有任何時(shí)遲相關(guān)時(shí)間序列,它只一個(gè)參數(shù)代表噪聲的強(qiáng)度,也即遲滯為0的滯后自協(xié)方差,而其余滯后自協(xié)方差統(tǒng)統(tǒng)為零。標(biāo)準(zhǔn)高斯噪聲,則是滿足N〔0,1標(biāo)準(zhǔn)正態(tài)分布的高斯噪聲。斯白噪聲,如果一個(gè)噪聲,它的幅度分布服從高斯分布,而它的功率譜密度又是均勻分布的,則稱它為高斯白噪聲。熱噪聲和散粒噪聲是高斯白噪聲。MATLAB中產(chǎn)生高斯白噪聲非常方便,可以直接應(yīng)用3個(gè)函數(shù),一個(gè)是WGN,另一個(gè)是AWGN,還有一個(gè)randn,WGN用于產(chǎn)生高斯白噪聲,AWGN則用于在某一信號(hào)中加入高斯白噪聲,randn直接產(chǎn)生高斯分布序列。1.WGN:產(chǎn)生高斯白噪聲y=wgn<m,n,p>產(chǎn)生一個(gè)m行n列的高斯白噪聲的矩陣,p以dBW為單位指定輸出噪聲的強(qiáng)度。y=wgn<m,n,p,imp>以歐姆<Ohm>為單位指定負(fù)載阻抗。y=wgn<m,n,p,imp,state>重置RANDN的狀態(tài)。在數(shù)值變量后還可附加一些標(biāo)志性參數(shù):y=wgn<?,POWERTYPE>指定p的單位。POWERTYPE可以是'dBW','dBm'或'linear'。線性強(qiáng)度<linearpower>以瓦特<Watt>為單位。y=wgn<?,OUTPUTTYPE>指定輸出類型。OUTPUTTYPE可以是'real'或'complex'。2.AWGN:在某一信號(hào)中加入高斯白噪聲y=awgn<x,SNR>在信號(hào)x中加入高斯白噪聲。信噪比SNR以dB為單位。x的強(qiáng)度假定為0dBW。如果x是復(fù)數(shù),就加入復(fù)噪聲。y=awgn<x,SNR,SIGPOWER>如果SIGPOWER是數(shù)值,則其代表以dBW為單位的信號(hào)強(qiáng)度,如果SIGPOWER為'measured',則函數(shù)將在加入噪聲之前測(cè)定信號(hào)強(qiáng)度。y=awgn<x,SNR,SIGPOWER,STATE>重置RANDN的狀態(tài)。y=awgn<?,POWERTYPE>指定SNR和SIGPOWER的單位。POWERTYPE可以是'dB'或'linear'。如果POWERTYPE是'dB',那么SNR以dB為單位,而SIGPOWER以dBW為單位。如果POWERTYPE是'linear',那么SNR作為比值來度量,而SIGPOWER以瓦特為單位。3.直接用randn函數(shù)產(chǎn)生高斯分布序列:?無論是WGN還是AWGN函數(shù),實(shí)際上都調(diào)用Randn函數(shù)產(chǎn)生的噪聲。即WGN函數(shù)中調(diào)用了Randn函數(shù),而AWGN函數(shù)調(diào)用了WGN函數(shù)。rand:rand<n>:生成0到1之間的n階隨機(jī)數(shù)方陣。rand<m,n>?:?生成0到1之間的m×n的隨機(jī)數(shù)矩陣。Randn:randn<>命令是產(chǎn)生白噪聲的,白噪聲應(yīng)該是0均值,方差為1的一組數(shù)同rand有randn<n>,randn<m,n>。x=rand<1,N>產(chǎn)生<0,1>區(qū)間均勻分布的長(zhǎng)度為N的隨機(jī)信號(hào),x=randn<1,N>產(chǎn)生長(zhǎng)度為N且具有零均值和單位方差的正態(tài)分布的隨機(jī)信號(hào)。<可以在前面擴(kuò)大相應(yīng)的倍數(shù)得到不同的隨機(jī)數(shù),比如10*rand<1>得到0-10的隨機(jī)數(shù)>。5濾噪設(shè)計(jì)分析在頻域內(nèi),語音信號(hào)的頻譜分量主要集中在300---3400Hz的范圍內(nèi)。利用這個(gè)特點(diǎn),可以用一個(gè)防混疊的帶通濾波器將此范圍內(nèi)的語音信號(hào)頻率分量取出。通過該課題采集的語音信號(hào)頻譜主要是500---800HZ范圍。加入高斯隨機(jī)噪聲后該語音信號(hào)的時(shí)域波形幾乎和噪聲波形相同,通過回放幾乎聲音全部沒噪聲淹沒,因此要想得到語音信號(hào)必須加入一個(gè)濾波器,能有效的濾除噪聲影響。從原始信號(hào)頻譜和加噪信號(hào)頻譜可以得出,該高斯隨機(jī)噪聲的加入使得信號(hào)加入了很多高頻成分,因此我們可以選用低通濾波器濾除該噪聲的高頻干擾,聲音低頻成分主要是500---800HZ范圍,因此我們選用截止頻率為1KHZ的低通濾波器來濾除高斯噪聲。6設(shè)計(jì)總結(jié)通過這次課程設(shè)計(jì),使我對(duì)語音信號(hào)有了全面的認(rèn)識(shí),對(duì)數(shù)字信號(hào)處理的知識(shí)又有了深刻的理解,在之前數(shù)字信號(hào)與處理的學(xué)習(xí)以及完成課后的作業(yè)的過程中已經(jīng)使用過MATLAB,對(duì)其有了一些基礎(chǔ)的了解和認(rèn)識(shí)。通過這次練習(xí)是我進(jìn)一步了解了信號(hào)的產(chǎn)生、采樣及頻譜分析的方法。以及其中產(chǎn)生信號(hào)和繪制信號(hào)的基本命令和一些基礎(chǔ)編程語言。讓我感受到只有在了解課本知識(shí)的前提下,才能更好的應(yīng)用這個(gè)工具,并且熟練的應(yīng)用MATLAB也可以很好的加深我對(duì)課程的理解,方便我的思維。這次設(shè)計(jì)使我了解了MATLAB的使用方法,學(xué)會(huì)分析濾波器的優(yōu)劣和性能,提高了分析和動(dòng)手實(shí)踐能力。同時(shí)我相信,進(jìn)一步加強(qiáng)對(duì)MATLAB的學(xué)習(xí)與研究對(duì)我今后的學(xué)習(xí)將會(huì)起到很大的幫助。?%程序1:用MATLAB對(duì)原始語音信號(hào)進(jìn)行分析畫出它的時(shí)域波形和頻譜fs=22050;%語音信號(hào)采樣頻率為22050[x1]=wavread<'yuyin.wav'>;%讀取語音信號(hào)的數(shù)據(jù)賦給變量x1sound<x1,22050>;%播放語音信號(hào)y1=fft<x1,1024>;%對(duì)信號(hào)做1024點(diǎn)FFT變換f=fs*<0:511>/1024;figure<1>plot<x1>%做原始語音信號(hào)的時(shí)域圖形title<'原始語音信號(hào)'>;xlabel<'time<s>'>;ylabel<'幅值'>;figure<3>plot<f,abs<y1<1:512>>>;title<'原始語音信號(hào)頻譜'>xlabel<'Hz'>;ylabel<'幅值'>MATLAB課程設(shè)計(jì)說明書15附錄2%程序2用randn函數(shù)給原始信號(hào)加入高斯隨機(jī)噪聲fs=22050;%語音信號(hào)采樣頻率為22050x1=wavread<'yuyin.wav'>;%讀取語音信號(hào)的數(shù)據(jù)賦給變量x1t=0:1/22050:<size<x1>-1>/22050;y1=fft<x1,1024>;%對(duì)信號(hào)做1024點(diǎn)FFT變換f=fs*<0:511>/1024;x2=randn<1,length<x1>>;%產(chǎn)生一與x長(zhǎng)度一致的隨機(jī)信號(hào)sound<x2,22050>;figure<1>plot<x2>%做原始語音信號(hào)的時(shí)域圖形title<'高斯隨機(jī)噪聲'>;xlabel<'time<s>'>;ylabel<'幅值'>;randn<'state',0>;m=randn<size<x1>>;x2=0.1*m+x1;sound<x2,22050>;%播放加噪聲后的語音信號(hào)y2=fft<x2,1024>;figure<2>plot<t,x2>title<'加噪后的語音信號(hào)'>;MATLAB課程設(shè)計(jì)說明

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論