MATLAB課程設計講解_第1頁
MATLAB課程設計講解_第2頁
MATLAB課程設計講解_第3頁
MATLAB課程設計講解_第4頁
MATLAB課程設計講解_第5頁
免費預覽已結束,剩余7頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、MATLAB課程設計報告書課題名稱基于MATLAB勺語音信號采集與處理姓 名胡敬學 號3120504005院、系、部電氣信息工程學院專 業電子信息科學與技術 1201指導教師許波2014年7月3日語音信號的采集與處理一、實踐的目的和要求本次課程設計的課題為基于 MATLAB的語音信號采集與處理,學會運用MATLAB的信 號處理功能,采集語音信號,并對語音信號進行濾波及變換處理,觀察其時域和頻域特性,加深對信號處理理論的理解,并為今后熟練使用MATLAB進行系統的分析仿真和設計奠定基礎。此次實習課程主要是為了進一步熟悉對matlab軟件的使用,以及學會利用 matlab對聲音信號這種實際問題進行

2、處理,將理論應用于實際,加深對它的理解。二、實踐原理:理論原理:利用MATLAB對語音信號進行分析和處理,采集語音信號后,利用 MATLAB軟件平臺進 行頻譜分析;并對所采集的語音信號加入干擾噪聲,對加入噪聲的信號進行頻譜分析,設計合適的濾波器濾除噪聲,恢復原信號。語音信號的“短時譜”對于非平穩信號,它是非周期的,頻譜隨時間連續變化,因此由傅里葉變換得到的頻譜無法獲知其在各個時刻的頻譜特 性。如果利用加窗的方法從語音流中取出其中一個短斷,再進行傅里葉變換,就可以得到該語音的短時譜。課題要求:課題要求:1、語音信號的采集利用 Windows下的錄音機,錄制一段自己的話音,時間在 5s左右,然后在

3、 Matlab軟件 平臺下,利用函數 wavread對語音信號進行采樣,記住采樣頻率和采樣點數。(1)請每位同學都參與錄音。分析鴿子語音信號時域信號的不同點。(2)請錄制兩段音樂信號,期中一段為簡單音樂信號,一段為和弦音樂信號。比較時域波形的不同。2、語音信號的頻譜分析在Matlab中,可以利用函數 fft對信號進行快速傅立葉變換,得到信號的頻譜特性,要 求學生首先畫出語音信號的時域波形,然后對語音信號進行頻譜分析。程序:fs=44100;x,fs,Nbits =wavread('C:UsersAdministratorDesktopmatlabSW);t=0:1/44100:(len

4、gth(x)-1)/44100;sound(x,fs);figure(1)plot(t,x)title('原始語音信號);xlabel('time n');ylabel('fuzhi n');n=length(x);y1=fft(x,n);w=1/n*0:n-1*fsfigure(2)plot(w,abs(y1)%對加載的語音信號進行回放%做原始語音信號的時域圖形%求出語音信號的長度%傅里葉變換%做原始語音信號的 FFT頻譜圖title(,原始語音信號FFT頻譜')頻譜分析對比:簡單音樂信號Q 加 5r L口回 貂和弦音樂信萬.Q i=回口回鼻翼

5、Q impure-2男生: Figyrt 1.(Fik Ecfe View Insert 7wk >nktap Wind HrJp, Eh | £航JmIelAfindow H*/ FifLFC 2用. EdH 幅WingH" Hfl|p J k ,-啊。口用 Q :igjre 2Q :中 E 1用 is Edit Wew Inwrl: 丁目出 口上的g Window Help2PHj總 鼠、仃與娟X目口國B 3 倬始諾官借號Q2 040.5 口日 11.2141.&1 0ttfTlig n>£le Edit 由2 Instri 1口 ok R

6、e5kt¥ 卸 nd*cw BdpUcJBk,F野忘厘父已口國 QJfeSWflFFTSiil女生:3、理解傅立葉變換的性質(1)對信號進行時域的尺度變換,抽取與插值,觀察期品與眾頻譜的變化,回放語音信號,體會時域語音信號變化(實現慢錄快放和快錄慢放功能)。在Matlab中,函數sound可以對聲音進行回放。其調用格式: sound(x,fs,bits);可以感 覺濾波前后的聲音變化。程序:x,fs,Nbits =wavread('C:UsersAdministratorDesktopmatlabSW');t=0:1/fs:(length(x)-1)/fs;a=1so

7、und(x,a*fs) ;%對加載的語音信號進行回放pause(3)a=2sound(x,a*fs) ; %對加載的語音信號進行快發pause(3)a=0.5sound(x,a*fs) ; %對加載的語音信號進行慢放(2)信號的調制與解調(負責板塊)語音信號與高頻正弦載波相調制,比較其頻譜變化,回放信號,比較是與眾語音信號變化。將調制后的信號進行解調,回放信號,比較時域中語音信號變化。本次課程設計我主要負責的是對載波信號的調制解調部分。1、所謂調制,就是在傳送信號的一方將所要傳送的信號附加在高頻振蕩上,再由天線發射 出去。這里高頻振蕩波就是攜帶信號的運載工具,也叫載波。振幅調制,就是由調制信號

8、去控制高頻載波的振幅, 直至隨調制信號做線性變化。在線性調制系列中, 最先應用的一種幅度調制是全調幅或常規調幅,簡稱為調幅( AM )。在頻域中已調波頻譜是基帶調制信號頻 譜的線性位移;在時域中,已調波包絡與調制信號波形呈線性關系。設正弦載波為:c(t)=Acos( w0t 0)式中,A為載波幅度;W0為載波角頻率;平°為載波初始相位(假設 中0 =0).調制信號(基帶信號)為 m(t)o根據調制的定義,振幅調制信號(已調信號)一般可以表示sm(t) = Am(t)cos(w0t)設調制信號m(t)的頻譜為m(w),則已調信號sm(t)的頻譜we為sm(w)Asm(w) = M (w

9、 w0) M (w -w0) 1:2標準調巾高波(AM )產生原理:調制信號是只來來自信源的調制信號(基帶信號) ,這些信號可以是模擬的,亦可以是數字的。為首調制的高頻振蕩信號可稱為載波,它可以是正弦波,亦可以是非正弦波(如周期性脈沖序列)。載波由高頻信號源直接產生即可,然后經過高頻功率放大器進行放大,作為調 幅波的載波,調制信號由低頻信號源直接產生,二者經過乘法器后即可產生雙邊帶的調幅波。設載波信號的表達式為coswot ,調制信號的表達式為m(t) = Am coswmt,則調幅信號的表達式為 sAM (t) = .Aom(t) Cosw0t2、解調從高頻已調信號中恢復出調制信號的過程稱為

10、解調(demodulation ),又稱為檢波(detection )。對于振幅調制信號,解調(demodulation )就是從它的幅度變化上提取調制信號的 過程。解調(demodulation )是調制的逆過程。可利用乘積型同步檢波器實現振幅的解調,讓已調信號與本地恢復載波信號相乘并通過 低通濾波可獲得解調信號。程序:clear;dt=1/44100;fs=44100;f1,fs,nbits=wavread('C:UsersAdministratorDesktopmatlabSW');figure(1);subplot(2,1,1);N=length(f1);t=0:1/f

11、s:(N-1)/fs;plot(t,f1);title('信息信號的時域波形');fy1=fft(f1);w1=0:fs/(N-1):fs;subplot(2,1,2);plot(w1,abs(fy1);title('信息信號的頻譜');f2=cos(22000*pi*t);figure(2);subplot(2,1,1);fy2 = fft(f2);N2=length(f2);w2=fs/N*0:N-1;plot(w2,abs(abs(fy2);title('載波信號的頻譜');f1=f1(:,1);f3=f1'.*f2;subplot

12、(2,1,2);fy3 = fft(f3);plot(w1,abs(abs(fy3);title('已調信號的頻譜,);sound(f3,fs,nbits);f4=f3.*f2;figure(3);subplot(1,1,1);fy4=fft(f4);plot(w1,abs(abs(fy4);title('解調信號頻譜,);sound(f4,fs,nbits);fp1=0;fs1=5000;As1=100;wp1=2*pi*fp1/fs;ws1=2*pi*fs1/fs;BF1=ws1-wp1;wc1=(wp1+ws1)/2;M1=ceil(As1-7.95)/(2.286*BF

13、1)+1;N1=M1+1;beta1=0.1102*(As1-8.7);Window=(kaiser(N1,beta1);b1=fir1(M1,wc1/pi,Window);figure(4);freqz(b1,1,512);title('FIR低通濾波器的頻率響應,);f4_low = filter(b1,1, f4);plot(t,f4_low);title('濾波后的解調信號時域波形,);sound(f4_low,fs,nbits);f5=fft(f4_low);figure(5);subplot(1,1,1);plot(w1,abs(f5);title('濾波后

14、的解調信號頻譜,)1|Furv4Pe £ditInsert 工©ok fiwktop 那Mow Hdp,H,% 、 9',./ 0 y 二口%對加載的語音信號進行回放%做原始語音信號的時域圖形title(,原始語音信號 xlabel('time n'); ylabel('fuzhi n');n=length(x);y1=fft(x,n);w=1/n*0:n-1*fsfigure(2) plot(abs(y1)');%求出語音信號的長度%傅里葉變換%做原始語音信號的 FFT頻譜圖4、設計數字濾波器和畫出其頻率響應給出各濾波器的性

15、能指標低通濾波器的性能指標:fb=1000Hz,fc=1200Hz,As=100dB,Ap=1dB.程序 fs=48000;x,fs,Nbits =wavread('C:UsersAdministratorDesktopmatlabSW');t=0:1/48000:(length(x)-1)/48000;sound(x,fs);figure(1)plot(t/2,x) title('原始語音信號FFT頻譜')x1,Fs,bits=wavread('C:UsersAdministratorDesktopmatlabRFS');derta_Fs =

16、Fs/length(x1);%設置頻譜的間隔,分辨率 ,這里保證了 x軸的點數必須和y軸點 fs=Fs;fp1=1000;fs1=1200;As1=100;wp1=2*pi*fp1/fs;ws1=2*pi*fs1/fs;BF1=ws1-wp1;wc1=(wp1+ws1)/2;M1=ceil(As1-7.95)/(2.286*BF1)+1;% 按凱澤窗計算濾波器階數N1=M1 + 1;beta1=0.1102*(As1-8.7);Window=(kaiser(N1,beta1); % 求凱澤窗窗函數b1=fir1(M1,wc1/pi,Window);% wc1/pi為歸一化,窗函數法設計函數fi

17、gure(3);freqz(b1,1,512); %H,w=freqz(B,A,N),(1)中B和A分別為離散系統的系統函數分子、分母多 項式的系數向量,返回量H則包含了離散系統頻響在0pi范圍內N個頻率等分點的值(其中N為正整數),w則包含了范圍內N個頻率等分點。調用默認的 N時,其值是512。title('FIR低通濾波器的頻率響應');x1_low = filter(b1,1, x1);% 對信號進行低通濾波,Y = filter(B,A,X),輸入X為濾波前序列,Y為濾波結果序列,B/A提供濾波器系數,B為分子,A為分母sound(x1_low,Fs,bits);fig

18、ure(4);subplot(2,1,1);plot(x1_low);title('信號經過FIR低通濾波器(時域)');subplot(2,1,2);plot(-Fs/2:derta_Fs: Fs/2-derta_Fs,abs(fftshift(fft(x1_low);title('信號經過FIR低通濾波器(頻域);:5、用濾波器對信號進行濾波然后用自己設計的濾波器對采集到的信號進行濾波,畫出濾波后信號的時域波形及頻 譜,并對濾波前后的信號進行對比,分析信號的變化。File Edit We Inurl Tacts Desk! op Winder HelpF舊低通盤甚君

19、的糖率響應 W二 口 id心6 % A門的娼M t 國 口國 aNurmnkztd Frcquancv |kt FMZjmpkp'0 a.f 。2D.3D.4050 60.7C.3091Narmakzed Frfiquancy ki rad)'5dmpk|回 E 航 ¥nsert JemIs QiMktop 更 inds Helfj值號經ilFiR低遇謔波等謨捫£i05E410123l/6、提高部分要求1)實現對聲音信號放大和衰減功能程序:fs=22050;x,fs,Nbits=wavread('C:UsersAdministratorDesktop

20、matlabSW); t=0:1/22050:(length(x)-1)/22050;%對加載信號的語音信號進行回放 a=1;wavplay(a*x,fs);fs=22050;x,fs,Nbits=wavread('C:UsersAdministratorDesktopmatlabSW); t=0:1/22050:(length(x)-1)/22050;%對加載信號的語音信號進行回放 a=10;wavplay(a*x,fs);2)實現對錄音內容倒放程序:fs=22050;x,fs,Nbits=wavread('C:UsersAdministratorDesktopmatlabS

21、W); t=0:1/22050:(length(x)-1)/22050;%對加載的語音信號進行回放 x=flipud(x) wavplay(x,fs);3)實現混音音效效果程序:close allclear ally,fs=wavread('C:UsersAdministratorDesktopmatlabSW');% 打開音頻文件(格式為wav的音頻文件),所得y為采樣數據,fs為采樣率time=(1:length(y)/fs;%時間軸的向量【(length(y)/fs即為音頻文件播放的時間長度】subplot(3,1,1); plot(time, y);%畫出時間軸上的波形

22、title(' SW 的聲音,); %sound(y,fs) y6,fs6=wavread('C:UsersAdministratorDesktopmatlabYWX');%打開音頻文件(格式為wav的音頻文件),所得y為采樣數據,fs為采樣率time6=(1:length(y6)/fs6; %時間軸的向量【(length(y)/fs即為音頻文件播放的時間長度】subplot(3,1,2);plot(time6, y6);% 畫出時間軸上的波形title(' YWX 的聲音,);%sound(y6,fs6)%下面將兩個音頻疊加在一塊m,n=size(y);%查看

23、y的大小,【此處y是m行,n列的數據】m6,n6=size(y6);%查看y6的大小,【此處y6是m6行,n6列的數據】z=zeros(max(m,m6)-min(m,m6),n);%生成0矩陣,用于加在時間較短的那么音頻的后面 if length(y)<length(y6);y1=y;z;y8=y1+y6;sound(y8,fs)else y1=y6;z;y8=y1+y; sound(y8,fs) end;%wavwrite(y8,fs,'111');% 保存合成的音頻信號,文件夾在 matlab-bin4)實現回音音效效果程序:x,fs,bits=wavread(&#

24、39;C:UsersAdministratorDesktopmatlabYWX');%讀取語音信號?n1=0:2000;b=x(:,1);%產生單聲道信號?N=3;yy2=filter(1,1,zeros(1,80000/(N+1),0.7,b',zeros(1,40000);%IIR濾波器進行濾波 ?figure(3) subplot(2,1,1);plot(yy2);%三次回聲濾波器時域波形?title(,三次回聲濾波器時域波形,);YY2=fft(yy2);%對三次回聲信號做 FFT變換?subplot(2,1,2);plot(n1(1:1000),YY2(1:1000);% 三次回聲濾波器頻譜圖?titl

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論