MATLAB課程設(shè)計報告_第1頁
MATLAB課程設(shè)計報告_第2頁
MATLAB課程設(shè)計報告_第3頁
MATLAB課程設(shè)計報告_第4頁
MATLAB課程設(shè)計報告_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 基于MATLAB的語音信號采集與處理一目的意義 本次課程設(shè)計的課題為基于MATLAB的語音信號采集與處理,學會運用MATLAB的信號處理功能,采集語音信號,并對語音信號進行濾波及變換處理,觀察其時域和頻域特性,加深對信號處理理論的理解,并為今后熟練使用MATLAB進行系統(tǒng)的分析仿真和設(shè)計奠定基礎(chǔ)。 此次實習課程主要是為了進一步熟悉對matlab軟件的使用,以及學會利用matlab對聲音信號這種實際問題進行處理,將理論應(yīng)用于實際,加深對它的理解。二、實踐原理:1.理論原理利用MATLAB對語音信號進行分析和處理,采集語音信號后,利用MATLAB軟件平臺進行頻譜分析;并對所采集的語音信號加入干擾

2、噪聲,對加入噪聲的信號進行頻譜分析,設(shè)計合適的濾波器濾除噪聲,恢復原信號。語音信號的“ 短時譜”對于非平穩(wěn)信號, 它是非周期的, 頻譜隨時間連續(xù)變化, 因此由傅里葉變換得到的頻譜無法獲知其在各個時刻的頻譜特性。如果利用加窗的方法從語音流中取出其中一個短斷, 再進行傅里葉變換, 就可以得到該語音的短時譜。2. 具體流程(1). 語音信號的采集及分析基于聲卡進行數(shù)字信號的采集。將話筒插入計算機的語音輸入插口上,啟動錄音機。按下錄音按鈕,對話筒說話,說完后停止錄音。要保存文件時,利用了計算機上的A/D轉(zhuǎn)換器,把模擬的聲音信號變成了離散的量化了的數(shù)字信號,放音時,它又通過D/A轉(zhuǎn)換器,把保存的數(shù)字數(shù)據(jù)

3、恢復為原來的模擬的聲音信號。在 Matlab軟件平臺下可以利用函數(shù)wavread對語音信號進行采樣,得到了聲音數(shù)據(jù)變量x1,同時把x1的采樣頻率fs=22050Hz和數(shù)據(jù)位Nbits=16Bit放進了MATALB的工作空間。圖figure 1為原始語音信號的時域圖形。從圖中可以看出在時域環(huán)境下,信號呈現(xiàn)出6不規(guī)則的信號峰值。通過freqz函數(shù)繪制原始語音信號的頻率響應(yīng)圖figure 2 。然后對語音信號進行頻譜分析,在Matlab中可以利用函數(shù)fft對信號行快速傅里葉變換,得到信號的頻譜圖figure 3,從圖中可以看出對各個頻點上的隨機信號在頻域進行抽樣 ,抽樣頻率為 22050Hz。(2)

4、. 給原始信號加上一個高頻噪聲在Matlab中人為設(shè)計一個固定頻率5500Hz的噪聲干擾信號。噪聲信號通常為隨機序列,在本設(shè)計中用正弦序列代替,干擾信號構(gòu)建命令函數(shù)為d=Au*sin(2*pi*5500*t),給出的干擾信號為一個正弦信號,針對上面的語音信號 ,采集了其中一段。再對噪音信號進行頻譜變換得到其頻譜圖,從圖中可以看出干擾信號,在4000Hz和 6000Hz頻點處有一高峰 ,其中 5500Hz 正是本設(shè)計所要利用的。(3). 設(shè)計一個濾波器,濾除高頻噪聲由模擬濾波器變換為數(shù)字濾波器時,采用的是雙線性變換法, 它保留的是從模擬到數(shù)字域的系統(tǒng)函數(shù)表示。在濾波器的選取時, 由于設(shè)計方法的側(cè)

5、重點不同, 作出比較是困難的。如果FIR濾波器情況下,最優(yōu)的設(shè)計將是橢圓濾波器。用雙線性變換法設(shè)計低通濾波器。的本設(shè)計是用雙線性變換法設(shè)計BW帶阻型濾波器。在 MATLAB中 ,可以利用函數(shù) butterworth,設(shè)計FIR濾波器,利用 MATLAB 中的函數(shù)freqz 畫出各濾波器的頻率響應(yīng)。用設(shè)計好的帶阻濾波器對含噪語音信號進行濾波,在Matlab中 FIR濾波器利用函數(shù)fftfilt對信號進行濾波,FIR濾波器利用函數(shù)filter對信號進行濾波。在一個窗口同時畫出濾波前后的波形及頻譜。從圖中可以看出 ,5500Hz看到的高峰消失了 ,語音信號與開始的一樣 ,濾波器成功的濾除了干擾信號。

6、利用MATLAB對語音信號進行分析和處理,采集語音信號后,利用MATLAB軟件平臺進行頻譜分析;并對所采集的語音信號加入干擾噪聲,對加入噪聲的信號進行頻譜分析,設(shè)計合適的濾波器濾除噪聲,恢復原信號。三、實踐步驟1用MATLAB對原始語音信號進行分析,畫出它的時域波形和頻譜程序:fs=22050; %語音信號采樣頻率為22050x1=wavread(D:Matlab7toolboxvrvrealmprogramworldstutorialex7audiowaterrun.wav); %讀取語音信號的數(shù)據(jù),賦給變量x1,sound(x1,22050); %播放語音信號y1=fft(x1,1024)

7、; %對信號做1024點FFT變換f=fs*(0:511)/1024; %將0到511,步長為1的序列的值與fs相乘并除以1024的值,賦值給ffigure(1) %創(chuàng)建圖形窗1plot(x1) %做原始語音信號的時域圖形title(原始語音信號);xlabel(time n); %x軸的名字是“time n”ylabel(fuzhi n); %y軸的名字是“fuzhi n”figure(2)freqz(x1) %繪制原始語音信號的頻率響應(yīng)圖title(頻率響應(yīng)圖)figure(3)subplot(2,1,1); %創(chuàng)建兩行一列繪圖區(qū)間的第1個繪圖區(qū)間 plot(abs(y1(1:512) %

8、做原始語音信號的FFT頻譜圖title(原始語音信號FFT頻譜)subplot(2,1,2);plot(f,abs(y1(1:512); %abs是絕對值,plot是直角坐標下線性刻度曲線title(原始語音信號頻譜)xlabel(Hz);ylabel(幅值); 2. 給原始的語音信號加上一個高頻余弦噪聲,頻率為5500hz。對加噪后的語音進行分析,并畫出其信號時域和頻譜圖。程序:fs=22050; x1=wavread(C:Documents and SettingsAdministrator桌面聲音文件.wav); %讀取語音信號的數(shù)據(jù),賦給變量x1f=fs*(0:511)/1024; %

9、將0到511,步長為1的序列的值與fs相乘并除以1024的值,賦值給ft=0:1/fs:(length(x1)-1)/fs; %將0到x1的長度減1后的值除以fs的值,且步長為1/fs的值,的序列的值,賦予tAu=0.03; %噪聲幅值d=Au*sin(2*pi*5500*t); %所加的噪聲是正弦信號x2=x1+d; %將正弦信號噪聲加在語音信號上sound(x2,22050); %播放語音信號y1=fft(x1,1024); %對信號y1做1024點FFT變換y2=fft(x2,1024); %對信號y2做1024點FFT變換figure(1); %創(chuàng)建圖形窗1plot(t,x2); %做

10、加噪后的信號時域圖形(繪出t對x2的線性圖)title(加噪后的信號);xlabel(time n); %x軸的名字是“time n”ylabel(fuzhi n); %y軸的名字是“fuzhi n”figure(2) %創(chuàng)建圖形窗2subplot(2,1,1); % 創(chuàng)建兩行一列繪圖區(qū)間的第1個繪圖區(qū)間plot(f,abs(y1(1:512); %做原始語音信號的頻譜圖title(原始語音信號頻譜);xlabel(Hz); %x軸的名字是“time n”ylabel(fuzhi); % y軸的名字是“fuzhi”subplot(2,1,2); %創(chuàng)建兩行一列繪圖區(qū)間的第2個繪圖區(qū)間plot(

11、f,abs(y2(1:512); %做加噪后的語音信號的頻譜圖(abs是絕對值,plot是直角坐標下線性刻度曲線)title(加噪后的信號頻譜);xlabel(Hz); %x軸的名字是“time n”ylabel(fuzhi); % y軸的名字是“fuzhi”時域波形和頻譜: 圖4 加噪后的信號時域圖與原始信號對比,區(qū)別:先原始信號沒加噪音之前0到2000有幅值,在4000到6000之間沒有幅值,但是在加了噪音之后4000到6000之間出現(xiàn)最大幅值12,超出正常值。如圖5原始信號與加噪后信號頻譜對比圖所示。3. 設(shè)計合適的濾波器,濾除高頻噪聲,繪出濾波后的信號頻域和時域波形:程序:%用雙線性變

12、換法設(shè)計巴特沃思低通濾波器wp=0.25*pi; %通帶截止頻率ws=0.3*pi; %阻帶截止頻率Rp=1; %通帶最大衰減(db)Rs=15; %阻帶最大衰減(db)Fs=22050;Ts=1/Fs;wp1=2/Ts*tan(wp/2); %將模擬指標轉(zhuǎn)換成數(shù)字指標ws1=2/Ts*tan(ws/2); %將模擬指標轉(zhuǎn)換成數(shù)字指標N,Wn=buttord(wp1,ws1,Rp,Rs,s); %選擇濾波器的最小階數(shù)(估算得到Butterworth低通濾波器的最小階數(shù)N和3dB截止頻率Wc)Z,P,K=buttap(N); %創(chuàng)建Butterworth低通濾波器原型Bap,Aap=zp2tf(

13、Z,P,K); %將零極點增益轉(zhuǎn)換為普遍分子,分母b,a=lp2lp(Bap,Aap,Wn); %將普遍的分子和分母轉(zhuǎn)換為以Wn為截止頻率bz,az=bilinear(b,a,Fs); %用雙線性變換法實現(xiàn)模擬濾波器到數(shù)字濾波器的轉(zhuǎn)換(模擬轉(zhuǎn)換為數(shù)字)H,W=freqz(bz,az); %求頻率響應(yīng)figure(9)plot(W*Fs/(2*pi),abs(H) %繪制Butterworth低通濾波器頻率響應(yīng)曲線grid %添加圖格xlabel(頻率Hz)ylabel(頻率響應(yīng)幅度)title(Butterworth)f1=filter(bz,az,z); %利用上面已做好的濾波器(已bz和a

14、z為特征的濾波器)對x2信號進行濾波,賦值給f1figure(10)subplot(2,1,1) %創(chuàng)建兩行一列繪圖區(qū)間的第1繪圖區(qū)間plot(t,z) %做加噪后的信號時域圖形title(濾波前的時域波形);subplot(2,1,2) %創(chuàng)建兩行一列繪圖區(qū)間的第2繪圖區(qū)間plot(t,f1); title(濾波后的時域波形);sound(f1,22050); %播放語音信號p=length(f1);F0=fft(f1,p);f=0:fs/p:fs*(s-1)/p;figure(11)y2=fft(z,1024); %對信號y2做1024點FFT變換subplot(2,1,1); %創(chuàng)建兩行一列繪圖區(qū)間的第1繪圖區(qū)間plot(f,abs(y4); title(濾波前的頻譜)xlabel(Hz); %x軸的名字是“Hz”ylabel(fuzhi); %y軸的名字是“fuzhi”subplot(2,1,2)F1=plot(f

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論