資源描述:
《基于matlab的語音信號采集及處理》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、基于MATLAB的語音信號采集與處理一、實驗的目的和要求1.MATLAB軟件功能簡介MATLAB的名稱源自MatrixLaboratory,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)、
2、數(shù)字圖形文字統(tǒng)一處理功能(Notebook)和建模仿真可視化功能(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)
3、用。MATLAB在信號與系統(tǒng)中的應(yīng)用主要包括符號運算和數(shù)值計算仿真分析。由于信號與系統(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é)生更深入地理解理論知識,并為將來使用M
4、ATLAB進行信號處理領(lǐng)域的各種分析和實際應(yīng)用打下基礎(chǔ)。2.本題目的意義本次課程設(shè)計的課題為《基于MATLAB的語音信號采集與處理》,學(xué)會運用MATLAB的信號處理功能,采集語音信號,并對語音信號進行濾波及變換處理,觀察其時域和頻域特性,加深對信號處理理論的理解,并為今后熟練使用MATLAB進行系統(tǒng)的分析仿真和設(shè)計奠定基礎(chǔ)。二、實驗原理:1.理論原理2利用MATLAB對語音信號進行分析和處理,采集語音信號后,利用MATLAB軟件平臺進行頻譜分析;并對所采集的語音信號加入干擾噪聲,對加入噪聲的信號進行頻譜分析,設(shè)計合
5、適的濾波器濾除噪聲,恢復(fù)原信號。2.具體流程(1)語音信號的采集及分析基于聲卡進行數(shù)字信號的采集。將話筒插入計算機的語音輸入插口上,啟動錄音機。按下錄音按鈕,對話筒說話,說完后停止錄音。要保存文件時,利用了計算機上的A/D轉(zhuǎn)換器,把模擬的聲音信號變成了離散的量化了的數(shù)字信號,放音時,它又通過D/A轉(zhuǎn)換器,把保存的數(shù)字?jǐn)?shù)據(jù)恢復(fù)為原來的模擬的聲音信號。在Matlab軟件平臺下可以利用函數(shù)wavread對語音信號進行采樣,得到了聲音數(shù)據(jù)變量。下面介紹Wavread函數(shù)幾種調(diào)用格式。(1)y=wavread(file)功能
6、說明:讀取file所規(guī)定的wav文件,返回采樣值放在向量y中。(2)[y,fs,nbits]=wavread(file)功能說明:采樣值放在向量y中,fs表示采樣頻率(hz),nbits表示采樣位數(shù)。(3)y=wavread(file,N)功能說明:讀取錢N點的采樣值放在向量y中。(4)y=wavread(file,[N1,N2])功能說明:讀取從N1到N2點的采樣值放在向量y中。錯誤說明:如果自己錄制的wav文件不能讀取,可以自己找一段wav聲音文件。(2)給原始信號加上一個高頻噪聲在Matlab中人為設(shè)計一個高
7、頻f噪聲干擾信號。噪聲信號通常為隨機序列,在本設(shè)計中可用正弦序列代替,干擾信號構(gòu)建命令函數(shù)為nosie=[Au*sin(2*pi*f*t)]',給出的干擾信號為一個正弦信號,針對上面的語音信號,采集了其中一段。再對噪音信號進行頻譜變換得到其頻譜圖。在MATLAB中把語音信號與噪聲信號進行疊加,并對其進行播放,然后對加入噪聲后的語音信號進行頻譜分析,在MATLAB中可以利用函數(shù)FFT對信號進行快速傅里葉變換。將原語音信號與noise疊加,調(diào)用的形式為:s=y+noise;其中,y為原語音信號,noise為所構(gòu)造的隨機
8、高斯噪聲,s即為兩者的疊加后的語音信號。2(3)設(shè)計一個濾波器,濾除高頻噪聲在MATLAB中,可以利用函數(shù)butterworth,設(shè)計FIR濾波器,利用MATLAB中的函數(shù)freqz畫出各濾波器的頻率響應(yīng)。用設(shè)計好的濾波器對含噪語音信號進行濾波,在Matlab中,F(xiàn)IR濾波器利用函數(shù)filter對信號進行濾波。2