版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 數(shù)字信號處理課程設計說明書</p><p> 題 目:編程實現(xiàn)任意確定信號</p><p> 的頻譜分析算法(0.9)</p><p> 系 別:計算機學院</p><p> 專 業(yè):通信工程 </p><p> 班 級:通信102班 </p>&
2、lt;p><b> 目錄</b></p><p> 摘要………………………………………………………………….2</p><p> 一、設計內容………………………………………………………2</p><p> 二、設計原理………………………………………………………2</p><p> 三、設計目的………………
3、………………………………………4</p><p> 四、實現(xiàn)過程………………………………………………………4</p><p> 4.1.CEG和弦音音頻文件的頻譜分析………………………… 4</p><p> 4.2.對該信號頻譜能量較集中的頻帶濾波……………………5</p><p> 4.3.對濾波后的音頻信號再濾出三個能量最集中的
4、頻簇…………… 9</p><p> 4.4.重建信號與原信號的音頻進行聲音回放比較……………21</p><p> 4.5.分析什么是和弦音…………………………………………22</p><p> 五、課程設計總結………………………………………………… 23</p><p> 六、參考文獻………………………………………………………
5、23</p><p><b> 摘要:</b></p><p> MATLAB主要是一種應用軟件,可以運用高級語言編程思想,解決電子信息中的問題,可以做出仿真結果。如信號處理,電路分析等。</p><p> 本次課程設計主要是用MATLAB作為工具平臺對給定的CEG和弦音音頻文件進行分析處理,編程實現(xiàn)任意確定信號的頻譜分析算法。</
6、p><p><b> 設計內容</b></p><p> ?。?)對給定的CEG和弦音音頻文件取合適長度的采樣記錄點,然后進行頻譜分析(信號的時域及幅頻特性曲線要畫出)。</p><p> (2)分析CEG和弦音頻譜特點,對該信號頻譜能量相對較為集中的頻帶(分低、中、高頻)實現(xiàn)濾波(分別使用低通,帶通及高通),顯示濾波后信號的時域和頻域曲線,并
7、對濾波后的信號與原信號的音頻進行聲音回放比 較。</p><p> ?。?)在低、中、高三個頻帶中,各濾出三個能量最集中的頻簇,顯示濾波后信號的時域和頻域曲線。</p><p> (4)任意選擇幾個濾出的頻帶(或頻簇)進行時域信號重建(合成),與原信號的音頻進行聲音回放比較。</p><p> 討論:根據(jù)上述結果,分析什么是和弦音。</p><
8、;p><b> 二、設計原理</b></p><p> 1、采用雙線性變換法設計濾波器,其原理如下:</p><p> S平面與z平面之間滿足以下映射關系:</p><p> s平面的虛軸單值地映射于z平面的單位圓上,s平面的左半平面完全映射到z平面的單位圓內。雙線性變換不存在混疊問題。</p><p>
9、 雙線性變換時一種非線性變換 ,這種非線性引起的幅頻特性畸變可通過預畸而得到校正。</p><p> IIR低通、高通、帶通數(shù)字濾波器設計采用雙線性原型變換公式:</p><p> 可以利用上面提到的原理分別用雙線性變化法設計以上3種濾波器,可以利用函數(shù)fir1設計FIR濾波器,可以利用函數(shù)butte,cheby1和ellip設計IIR濾波器;利用MATLAB中的函數(shù)freqz畫出各濾
10、波器的頻率響應。</p><p> 2、函數(shù)FFT用于序列快速傅立葉變換:</p><p> 2.1函數(shù)的一種調用格式為:y=fft(x)</p><p> 其中,x是序列,y是序列的FFT,x可以為一向量或矩陣,若x為一向量,y是x的FFT。且和x相同長度。若x為一矩陣,則y是對矩陣的每一列向量進行FFT。</p><p> 如果x
11、長度是2的冪次方,函數(shù)fft執(zhí)行高速基-2FFT算法;否則fft執(zhí)行一種混合基的離散傅立葉變換算法,計算速度較慢。</p><p> 2.2函數(shù)FFT的另一種調用格式為:y=fft(x,N)式中,x,y意義同前,N為正整數(shù)。</p><p> 函數(shù)執(zhí)行N點的FFT。若x為向量且長度小于N,則函數(shù)將x補零至長度N。若向量x的長度大于N,則函數(shù)截短x使之長度為N。若x 為矩陣,按相同方法對
12、x進行處理。</p><p> 經函數(shù)fft求得的序列y一般是復序列,通常要求其幅值和相位。MATLAB提供求復數(shù)的幅值和相位函數(shù):abs,angle,這些函數(shù)一般和FFT同時使用。</p><p> 函數(shù)abs(x)用于計算復向量x的幅值,函數(shù)angle(x)用于計算復向量的相角,介于 和 之間,以弧度表示。</p><p> 函數(shù)unwrap(p)用于展開
13、弧度相位角p ,當相位角絕對變化超過 時,函數(shù)把它擴展至 。</p><p><b> 3、頻率計算:</b></p><p> 若N點序列x(n)(n=0,1,…,N-1)是在采樣頻率 下獲得的。它的FFT也是N點序列,即X(k)(k=0,1,2,…,N-1),則第k點所對應實際頻率值為f=k*fs /N.</p><p><b&g
14、t; 三、設計目的:</b></p><p> 綜合運用本課程的理論知識進行頻譜分析以及濾波器設計,通過理論推導得出相應結論,并利用MATLAB作為工具進行實現(xiàn),從而復習鞏固課堂所學的理論知識,提高對所學知識的綜合應用能力,并從實踐上初步實現(xiàn)對數(shù)字信號的處理。</p><p><b> 四、實現(xiàn)過程</b></p><p>
15、 4.1.CEG和弦音音頻文件的頻譜分析</p><p> 1、對給定的CEG和弦音音頻文件取合適長度的采樣記錄點,然后進行頻譜分析,并畫出信號的時域及幅頻特性曲線。</p><p><b> 程序代碼如下:</b></p><p> Fs=8000; %語音信號采樣頻率為8000</p><p>
16、x=wavread('C:\MATLAB7\work\CEG和弦音.wav',[100 8000]); %把語音截取100到8000部分</p><p> sound(x); %播放出語音</p><p> t=(0: [8000-1000])/Fs; %計算從1000到8000點的時間</p><p> y=fft(x,5000);
17、%對語音信號進行FFT運算</p><p> f=Fs*(0:2499)/5000;</p><p> figure(1);</p><p> subplot(2,1,1) %在窗口中生成2行1列共2個子圖,當前激活第1個圖</p><p> plot(x); %畫出連續(xù)時域圖形</p><
18、p> title('原和弦音信號的時域圖'); %標題為原始信號的時域圖</p><p> xlabel('時間'); %定義圖形橫坐標為'時間’</p><p> ylabel('幅值'); %定義圖形縱坐標為''幅值'</p><p> subplot
19、(2,1,2); %在窗口中生成2行1列共2個子圖,當前激活第2個圖</p><p> plot(f,abs(y (1:2500))); %畫出幅值圖</p><p> title('原和弦音信號的時域圖'); %定義圖形標題為'原和弦音信號的時域圖'</p><p> xlabel('頻率');
20、 %定義圖形橫坐標為'頻率’</p><p> ylabel('幅值'); %定義圖形縱坐標為''幅值'</p><p><b> 執(zhí)行如下:</b></p><p> 4.2.對該信號頻譜能量較集中的頻帶濾波</p><p> 2、對該信號頻譜能量相對較
21、為集中的頻帶(分低、中、高頻)實現(xiàn)濾波(分別使用低通,帶通及高通),同時顯示濾波后信號的時域和頻域曲線,并對濾波后的信號與原信號的音頻進行聲音回放比較。</p><p><b> 程序代碼如下:</b></p><p> (1)設計低通濾波器:</p><p><b> Fs=8000;</b></p>
22、<p> x=wavread('C:\MATLAB7\work\CEG和弦音.wav',[1000 8000]'); %讀出和弦音信號</p><p> t=(0: [8000-1000])/Fs; %計算從1000到8000點的時間</p><p> y=fft(x,5000); %對和弦音信號進行FFT運算</p>&l
23、t;p> f=Fs*(0:2499)/5000;</p><p> Ws=2*1200*1/8000; %濾波器的阻帶截止頻率</p><p> Wp=2*1000*1/8000; %濾波器的通帶截止頻率</p><p> Rs=100; %定義通帶最小阻帶衰減</p><p> Rp=1;
24、 %定義通帶波紋系數(shù)</p><p> [N,Wn]=cheb1ord(Wp,Ws,Rp,Rs); %估計切貝雪夫I型濾波器階數(shù)</p><p> [num,den]=cheby1(N,Rp,Wn,'low'); %切貝雪夫I型低通濾波器系統(tǒng)函數(shù);</p><p> [h,w]=freqz(num,den); %數(shù)字低通
25、濾波器的頻率響應</p><p> subplot(3,1,1); %在窗口中生成3行1列共3個子圖,當前激活第1個子圖</p><p> plot(w/pi,abs(h));grid; %畫出網(wǎng)格 </p><p> xlabel('\omega/\pi'); %在xabe
26、l中顯示歸一化/</p><p> ylabel('振幅'); %定義圖形縱坐標為''振幅'</p><p> title('契比雪夫Ⅰ型低通濾波器的幅頻響應'); %定義標題</p><p> f1=filter(num,den,x); %濾波</p><p>
27、; y=fft(f1,8000); % 進行fft變換</p><p> subplot(3,1,2); %在窗口中生成3行1列共3個子圖,當前激活第2個子圖</p><p> plot(f1); %畫出原語音信號經低通后圖像</p><p> title('低通濾波后的信號'); %定義標題</p&
28、gt;<p> xlabel('時間'); %定義圖形橫坐標為'時間’</p><p> ylabel('幅值'); %定義圖形縱坐標為''幅值'</p><p> subplot(3,1,3); %在窗口中生成3行1列共3個子圖,當前激活第3個子圖</p><p>
29、; plot(abs(y(1:4000))); % 畫出頻譜圖像</p><p> title('低通后濾波信號頻譜') %定義標題</p><p> xlabel('頻率'); %定義圖形橫坐標為'頻率’</p><p> ylabel('幅值'); %定義圖形縱坐標為''幅值
30、'</p><p> wavwrite(f1,'低通.wav'); %寫出低通后信號</p><p> x1=wavread('低通.wav'); %讀取低通后信號</p><p> sound(x1); %播放低通后的語音</p><p><b> 執(zhí)行如
31、下:</b></p><p> ?。?)設計高通濾波器:</p><p><b> 程序代碼如下:</b></p><p><b> Fs=8000;</b></p><p> x=wavread('C:\MATLAB7\work\CEG和弦音.wav',[1000
32、 8000]); %讀出和弦音信號</p><p> t=(0: [8000-1000])/Fs; %計算從1000到8000點的時間</p><p> y=fft(x,5000); %對和弦音信號進行FFT運算</p><p> f=Fs*(0:2499)/5000;</p><p> Ws1=2*3000*1/8000;
33、%濾波器的阻帶截止頻率</p><p> Wp1=2*3200*1/8000; %濾波器的通帶截止頻率</p><p> Rs1=100; %定義通帶最小阻帶衰減</p><p> Rp1=1; %定義通帶波紋系數(shù)</p><p> [N1,Wn1]=cheb1ord(Wp1,Ws1,Rp1,Rs1);
34、 %估計切貝雪夫Ⅰ型濾波器階數(shù)</p><p> [num1,den1]=cheby1(N1,Rp1,Wn1,'high');%切貝雪夫I型高通濾波器系統(tǒng)函數(shù);</p><p> [h1,w1]=freqz(num1,den1); %計算幅頻響應</p><p> subplot(3,1,1); %在窗口中生成3行
35、1列共3個子圖,當前激活第1個子圖 </p><p> plot(w1/pi,abs(h1)); %畫出幅值圖</p><p> xlabel('\omega/\pi'); %在xabel中顯示歸一化/</p><p> ylabel('振幅'
36、;); %定義圖形縱坐標為''振幅'</p><p> title('契比雪夫Ⅰ型高通濾波器的幅頻響應'); %定義標題</p><p> f2=filter(num1,den1,x); %濾波</p><p> y1=fft(f2,8000); %進行fft變換</p>
37、<p> subplot(3,1,2); %在窗口中生成3行1列共3個子圖,當前激活第2個子圖 </p><p> plot(f2); %做原始語音信號的時域圖形</p><p> title('高通濾波后的信號'); %定義標題</p><p> xlabel('時間')
38、; %定義圖形橫坐標為'時間’</p><p> ylabel('幅值'); %定義圖形縱坐標為''幅值'</p><p> subplot(3,1,3); %在窗口中生成3行1列共3個子圖,當前激活第3個子圖 </p><p> plot(abs(y1(1:4000))); %畫出頻譜圖像</
39、p><p> title('高通濾波后的信號頻譜'); %定義標題</p><p> xlabel('頻率'); %定義圖形橫坐標為'頻率’</p><p> ylabel('幅值'); %定義圖形縱坐標為'幅值'</p><p>
40、wavwrite(f2,'高通.wav'); %寫出高通后信號</p><p> x2=wavread('高通.wav'); %讀出高通后信號</p><p> sound(x2); %播放高通后信號</p><p><b> 執(zhí)行如下:</b></p><
41、p> ?。?)設計帶通濾波器:</p><p><b> 程序代碼如下:</b></p><p><b> Fs=8000;</b></p><p> x=wavread('C:\MATLAB7\work\CEG和弦音.wav',[1000 8000]); %讀出和弦音信號</p&g
42、t;<p> t=(0: [8000-1000])/Fs; %計算從1000到8000點的時間</p><p> y=fft(x,5000); %對和弦音信號進行FFT運算</p><p> f=Fs*(0:2499)/5000;</p><p> Wp2=[2*1200/Fs 2*3000/Fs]; %在1的dB衰減處的邊帶
43、頻率</p><p> Ws2=[2*1000/Fs 2*3200/Fs]; %在衰減為100dB處的邊帶頻率</p><p> Rp2=1; %通帶損耗不大于1dB</p><p> Rs2=100; %阻帶衰減不小于100dB</p>&
44、lt;p> [N2,Wn2]=cheb1ord(Wp2,Ws2,Rp2,Rs2); %估計切貝雪夫濾波器階數(shù)</p><p> [num2,den2]=cheby1(N2,Rp2,Wn2); %切貝雪夫濾波器系統(tǒng)函數(shù)</p><p> [h2,w2]=freqz(num2,den2); %計算頻譜響應</p><p>
45、figure(4); %第四個圖形</p><p> subplot(3,1,1); %在窗口中生成3行1列共3個子圖,當前激活第1個子圖 </p><p> plot(abs(h2));grid; %畫出幅值圖</p><p
46、> xlabel('\omega/\pi'); %在xabel中顯示歸一化/</p><p> ylabel('振幅'); %定義圖形縱坐標為''振幅'</p><p> title('契比雪夫Ⅰ型帶通濾波器的幅頻響應'); %
47、定義標題</p><p> f3=filter(num2,den2,x); %濾波</p><p> y3=fft(f3,8000); %作fft變換</p><p> subplot(3,1,2); %在窗口中生成3行1列共3個子圖,當前激活第2個子圖
48、 </p><p> plot(f3); %做原始語音信號的時域圖形</p><p> title('帶通濾波后的信號'); %定義標題</p><p> xlabel('時間'); %定義圖形橫坐標為'時間’ </p>
49、<p> ylabel('幅值'); %定義圖形縱坐標為''幅值'</p><p> subplot(3,1,3); %在窗口中生成3行1列共3個子圖,當前激活第2個子圖 </p><p> plot(abs(y3(1:4000))); %畫出頻譜圖像</p>
50、<p> title('帶通濾波后的信號頻譜') %定義標題</p><p> xlabel('頻率'); %定義圖形橫坐標為'頻率’ </p><p> ylabel('幅值'); %定義圖形縱坐標為''幅
51、值'</p><p> wavwrite(f3,'帶通.wav'); %寫出過濾后帶通信號</p><p> x3=wavread('帶通.wav'); %讀出過濾后帶通信號</p><p> sound(x3); %播放帶通后信號</p><p><b>
52、; 執(zhí)行如下: </b></p><p> 4.3.對濾波后的音頻信號再濾出三個能量最集中的頻簇</p><p> 3、在低、中、高三個頻帶中,各濾出三個能量最集中的頻簇,顯示濾波后信號的時域和頻域曲線。</p><p><b> 程序代碼如下:</b></p><p> ?。?)低通能量最集中的
53、頻簇:</p><p> 1、x1=wavread('低通.wav'); %讀取低通后信號</p><p> sound(x1); %播放低通后信號</p><p> Wp1=[2*500/Fs 2*600/8000]; </p><p> Ws1=[2*400/Fs 2*800/8000]
54、;</p><p> Rp1=1; %通帶損耗不大于1dB</p><p> Rs1=100; %阻帶衰減不小于100dB</p><p> [N1,Wn1]=cheb1ord(Wp1,Ws1,Rp1,Rs1); </p><p> [num1,den1]=cheby1(N1,Rp1,Wn1);</p>
55、<p> [h1,w1]=freqz(num1,den1);</p><p> figure(4); %第四個圖形</p><p> subplot(3,1,1); %在窗口中生成3行1列共3個子圖,當前激活第1個子圖</p><p> plot(w1/pi,abs(h1));grid; %打網(wǎng)格</p><p&g
56、t; xlabel('\omega/\pi'); %在xabel中顯示歸一化/</p><p> ylabel('振幅(幅值)'); %定義圖形縱坐標為''幅值'</p><p> title('契比雪夫Ⅰ型低通濾波器的幅頻響應');</p><p> f1=filter(
57、num1,den1,x1); %濾波</p><p> y1=fft(f1,8000); %作fft變換</p><p> subplot(3,1,2); %在窗口中生成3行1列共3個子圖,當前激活第2個子圖</p><p> plot(f1); %做原始語音信號的時域圖形</p><p> title('低通
58、能量集中后信號');</p><p> xlabel('時間'); %定義圖形橫坐標為'時間’</p><p> ylabel('幅值'); %定義圖形縱坐標為''幅值'</p><p> subplot(3,1,3); %在窗口中生成3行1列共3個子圖,當前激活第3個子圖</p
59、><p> plot(abs(y1(1:4000))); %畫出頻譜圖像</p><p> title('低通的集中能量語音信號頻譜') %定義標題</p><p> xlabel('頻率'); %定義圖形橫坐標為'頻率’</p><p> ylabel('幅
60、值'); %定義圖形縱坐標為''幅值'</p><p> wavwrite(f1,'低通能量集中1.wav'); %寫出信號</p><p> x21=wavread('低通能量集中1.wav'); %讀出信號</p><p> sound(x21);
61、 %播放出信號</p><p><b> 執(zhí)行如下:</b></p><p> 2、x2=wavread('低通.wav'); %讀取低通后信號</p><p> sound(x2); %播放低通后信號</p><p> Wp2=[2*700/8000 2*800/
62、8000];</p><p> Ws2=[2*500/8000 2*1000/8000];</p><p><b> Rp2=1;</b></p><p><b> Rs2=100;</b></p><p> [N2,Wn2]=cheb1ord(Wp2,Ws2,Rp2,Rs2);</p
63、><p> [num2,den2]=cheby1(N2,Rp2,Wn2);</p><p> [h2,w2]=freqz(num2,den2);</p><p> figure(4);</p><p> subplot(3,1,1); %在窗口中生成3行1列共3個子圖,當前激活第1個子圖</p><p> pl
64、ot(w2/pi,abs(h2));grid; %打網(wǎng)格</p><p> xlabel('\omega/\pi'); %在xabel中顯示歸一化/</p><p> ylabel('振幅'); %定義圖形縱坐標為''振幅' </p><p> title('契比雪夫Ⅰ型低通濾波器的幅頻響應
65、');</p><p> f2=filter(num2,den2,x2); %濾波</p><p> y2=fft(f2,8000); </p><p> subplot(3, 1,2); %在窗口中生成3行1列共3個子圖,當前激活第2個子圖</p><p><b> plot(f2);</b>&l
66、t;/p><p> title('低通能量集中后信號');</p><p> xlabel('時間'); %定義圖形橫坐標為'時間’</p><p> ylabel('幅值'); %定義圖形縱坐標為''幅值' </p><p> subp
67、lot(3,1,3); %在窗口中生成3行1列共3個子圖,當前激活第3個子圖</p><p> plot(abs(y2(1:4000))); % 畫出頻譜圖像</p><p> title('低通的集中能量語音信號頻譜')</p><p> xlabel('頻率'); %定義圖形橫坐標為'頻率’</p>
68、;<p> ylabel('幅值'); %定義圖形縱坐標為''幅值' </p><p> wavwrite(f2,'低通能量集中2.wav'); %寫出信號</p><p> x31=wavread('低通能量集中2.wav'); %讀出信號</p><p> so
69、und(x31); %播放出信號</p><p><b> 執(zhí)行如下:</b></p><p> 3、x3=wavread('低通.wav'); %讀取低通后信號</p><p> sound(x3); %播放低通后信號</p><p>
70、 Wp3=[2*800/8000 2*900/8000];</p><p> Ws3=[2*600/8000 2*1200/8000];</p><p><b> Rp3=1;</b></p><p><b> Rs3=100;</b></p><p> [N3,Wn3]=cheb1ord
71、(Wp3,Ws3,Rp3,Rs3);</p><p> [num3,den3]=cheby1(N3,Rp3,Wn3);</p><p> [h3,w3]=freqz(num3,den3);</p><p> figure(4);</p><p> subplot(3,1,1); %在窗口中生成3行1列共3個子圖,當前激活第1個子圖&l
72、t;/p><p> plot(w3/pi,abs(h3));grid; %打網(wǎng)格</p><p> xlabel('\omega/\pi'); %在xabel中顯示歸一化/</p><p> ylabel('振幅'); %定義圖形縱坐標為''振幅</p><p> title(&
73、#39;契比雪夫Ⅰ型低通濾波器的幅頻響應');</p><p> f3=filter(num3,den3,x3); %濾波</p><p> y3=fft(f3,8000); %做fft變換</p><p> subplot(3,1,2); %在窗口中生成3行1列共3個子圖,當前激活第2個子圖</p><p><b&g
74、t; plot(f3);</b></p><p> title('低通能量集中后信號');</p><p> xlabel('時間'); %定義圖形橫坐標為'時間’</p><p> ylabel('幅值'); %定義圖形縱坐標為''幅值</p><p
75、> subplot(3,1,3); %在窗口中生成3行1列共3個子圖,當前激活第3個子圖</p><p> plot(abs(y3(1:4000)));</p><p> title('低通的集中能量語音信號頻譜')</p><p> xlabel('頻率'); %定義圖形橫坐標為'頻率’</p>
76、<p> ylabel('幅值'); %定義圖形縱坐標為''幅值</p><p> wavwrite(f3,'低通能量集中3.wav');</p><p> x41=wavread('低通能量集中3.wav');</p><p> sound(x41); %播放出語音<
77、;/p><p><b> 執(zhí)行如下:</b></p><p> ?。?)高通能量最集中的頻簇:</p><p> 1、x1=wavread('高通.wav'); %讀出高通后信號</p><p> sound(x1); %播放高通后信號</p><p>
78、; Wp1=[2*3300/8000 2*3500/8000];</p><p> Ws1=[2*3100/8000 2*3700/8000];</p><p><b> Rp1=1;</b></p><p><b> Rs1=100;</b></p><p> [N1,Wn1]=cheb
79、1ord(Wp1,Ws1,Rp1,Rs1);</p><p> [num1,den1]=cheby1(N1,Rp1,Wn1);</p><p> [h1,w1]=freqz(num1,den1);</p><p> figure(4);</p><p> subplot(3,1,1); %在窗口中生成3行1列共3個子圖,當前激活第1個
80、子圖</p><p> plot(w1/pi,abs(h1));grid;</p><p> xlabel('\omega/\pi'); %在xabel中顯示歸一化/</p><p> ylabel('振幅'); %定義圖形縱坐標為''幅值</p><p> title('
81、契比雪夫Ⅰ型高通濾波器的幅頻響應');</p><p> f1=filter(num1,den1,x1); %濾波</p><p> y1=fft(f1,8000); %作fft變換</p><p> subplot(3,1,2); %在窗口中生成3行1列共3個子圖,當前激活第2個子圖</p><p><
82、b> plot(f1);</b></p><p> title('高通能量集中信號'); %定義標題</p><p> xlabel('時間'); %定義圖形橫坐標為'時間’</p><p> ylabel('幅值'); %定義圖形縱坐標為''幅值</p&g
83、t;<p> subplot(3,1,3); %在窗口中生成3行1列共3個子圖,當前激活第3個子圖</p><p> plot(abs(y1(1:4000)));</p><p> title('高通能量集中的語音信號頻譜') %定義標題</p><p> xlabel('頻率'); %定義圖形橫坐標為'
84、;頻率’</p><p> ylabel('幅值'); %定義圖形縱坐標為''幅值</p><p> wavwrite(f1,'高通后高通能量集中1.wav');</p><p> x22=wavread('高通后高通能量集中1.wav');</p><p> sound
85、(x22); %播放出語音</p><p><b> 執(zhí)行如下:</b></p><p> 2、x2=wavread('高通.wav'); %讀出高通后信號</p><p> sound(x2); %播放高通后信號</p><p> Wp2=[2*3000/800
86、0 2*3200/8000];</p><p> Ws2=[2*2800/8000 2*3400/8000];</p><p><b> Rp2=1;</b></p><p><b> Rs2=100;</b></p><p> [N2,Wn2]=cheb1ord(Wp2,Ws2,Rp2,R
87、s2);</p><p> [num2,den2]=cheby1(N2,Rp2,Wn2);</p><p> [h2,w2]=freqz(num2,den2);</p><p> figure(4);</p><p> subplot(3,1,1); %在窗口中生成3行1列共3個子圖,當前激活第1個子圖</p><
88、;p> plot(w2/pi,abs(h2));grid;</p><p> xlabel('\omega/\pi'); %在xabel中顯示歸一化/</p><p> ylabel('振幅'); %定義圖形縱坐標為'振幅’</p><p> title('契比雪夫Ⅰ型高通濾波器的幅頻響應')
89、;</p><p> f2=filter(num2,den2,x2); %濾波</p><p> y2=fft(f2,8000); %作fft變換</p><p> subplot(3,1,2); %在窗口中生成3行1列共3個子圖,當前激活第2個子圖</p><p><b> plot(f2);</b&
90、gt;</p><p> title('高通能量集中信號'); %定義標題</p><p> xlabel('時間'); %定義圖形橫坐標為'時間’</p><p> ylabel('幅值'); %定義圖形縱坐標為''幅值</p><p> subplot(
91、3,1,3); %在窗口中生成3行1列共3個子圖,當前激活第3個子圖</p><p> plot(abs(y2(1:4000)));</p><p> title('高通能量集中的語音信號頻譜') %定義標題</p><p> xlabel('頻率'); %定義圖形橫坐標為'頻率’</p><
92、;p> ylabel('幅值'); %定義圖形縱坐標為''幅值</p><p> wavwrite(f2,'高通后高通能量集中2.wav');</p><p> x32=wavread('高通后高通能量集中2.wav');</p><p> sound(x32); %播放出語音
93、</p><p><b> 執(zhí)行如下:</b></p><p> 3、x3=wavread('高通.wav'); %讀出高通后信號</p><p> sound(x3); %播放高通后信號</p><p> Wp3=[2*3300/8000 2*3500/8000];&
94、lt;/p><p> Ws3=[2*3100/8000 2*3700/8000];</p><p><b> Rp3=1;</b></p><p><b> Rs3=100;</b></p><p> [N3,Wn3]=cheb1ord(Wp3,Ws3,Rp3,Rs3);</p>
95、<p> [num3,den3]=cheby1(N3,Rp3,Wn3);</p><p> [h3,w3]=freqz(num3,den3);</p><p> figure(4);</p><p> subplot(3,1,1); %在窗口中生成3行1列共3個子圖,當前激活第1個子圖</p><p> plot(w3/p
96、i,abs(h3));grid;</p><p> xlabel('\omega/\pi'); %在xabel中顯示歸一化/</p><p> ylabel('振幅'); %定義圖形縱坐標為''振幅’</p><p> title('契比雪夫Ⅰ型高通濾波器的幅頻響應'); %定義標
97、題</p><p> f3=filter(num3,den3,x3); %濾波</p><p> y3=fft(f3,8000); %作fft變換</p><p> subplot(3,1,2); %在窗口中生成3行1列共3個子圖,當前激活第2個子圖</p><p><b> plot(f3);</b&
98、gt;</p><p> title('高通能量集中信號'); %定義標題</p><p> xlabel('時間'); %定義圖形橫坐標為'時間’</p><p> ylabel('幅值'); %定義圖形縱坐標為''幅值</p><p> subplot(
99、3,1,3); %在窗口中生成3行1列共3個子圖,當前激活第3個子圖</p><p> plot(abs(y3(1:4000)));</p><p> title('高通能量集中的語音信號頻譜') %定義標題</p><p> xlabel('頻率'); %定義圖形橫坐標為'頻率’</p><p&
100、gt; ylabel('幅值'); %定義圖形縱坐標為''幅值</p><p> wavwrite(f3,'高通后高通能量集中3.wav');</p><p> x42=wavread('高通后高通能量集中3.wav');</p><p> sound(x42); %播放出語音<
101、;/p><p><b> 執(zhí)行如下:</b></p><p> (3)帶通能量最集中的頻簇:</p><p> 1、x1=wavread('帶通.wav');</p><p> sound(x1);</p><p> pause(2);
102、 %停頓2秒</p><p> Wp1=[2*1600/8000 2*1700/8000];</p><p> Ws1=[2*1500/8000 2*1800/8000];</p><p><b> Rp1=1;</b></p><p><b> Rs1=100;</b&g
103、t;</p><p> [N1,Wn1]=cheb1ord(Wp1,Ws1,Rp1,Rs1);</p><p> [num1,den1]=cheby1(N1,Rp1,Wn1);</p><p> [h1,w1]=freqz(num1,den1);</p><p> figure(4);</p><p> su
104、bplot(3,1,1); %在窗口中生成3行1列共3個子圖,當前激活第1個子圖</p><p> plot(w1/pi,abs(h1));grid;</p><p> xlabel('\omega/\pi'); %在xabel中顯示歸一化/</p><p> ylabel('振幅'); %定義圖形縱坐標為'振幅’&
105、lt;/p><p> title('契比雪夫Ⅰ型帶通濾波器的幅頻響應'); %定義標題</p><p> f1=filter(num1,den1,x1); %濾波</p><p> y1=fft(f1,8000); </p><p> subplot(3,1,2);%在窗口中生成3行1列共3個子圖,當前激活第2個子圖
106、</p><p><b> plot(f1);</b></p><p> title('帶通后帶通能量集中信號');</p><p> xlabel('時間'); %定義圖形橫坐標為'時間’</p><p> ylabel('幅值'); %定義圖形縱坐標
107、為''幅值</p><p> subplot(3,1,3); %在窗口中生成3行1列共3個子圖,當前激活第3個子圖</p><p> plot(abs(y1(1:4000)));</p><p> title('帶通能量集中的語音信號頻譜')</p><p> xlabel('頻率');
108、 %定義圖形橫坐標為'頻率’</p><p> ylabel('幅值'); %定義圖形縱坐標為''幅值</p><p> wavwrite(f1,'帶通能量集中1.wav');</p><p> x23=wavread(帶通能量集中1.wav');</p><p>
109、 sound(x23); %播放出語音</p><p><b> 執(zhí)行如下:</b></p><p> 2、x2=wavread('帶通.wav');</p><p> sound(x2);</p><p> pause(2); %停頓2秒</p>
110、<p> Wp2=[2*1800/8000 2*1900/8000];</p><p> Ws2=[2*1700/8000 2*2000/8000];</p><p><b> Rp2=1;</b></p><p><b> Rs2=100;</b></p><p> [N2
111、,Wn2]=cheb1ord(Wp2,Ws2,Rp2,Rs2);</p><p> [num2,den2]=cheby1(N2,Rp2,Wn2);</p><p> [h2,w2]=freqz(num2,den2);</p><p> figure(4);</p><p> subplot(3,1,1);%在窗口中生成3行1列共3個子
112、圖,當前激活第1個子圖</p><p> plot(w2/pi,abs(h2));grid; %打網(wǎng)格</p><p> xlabel('\omega/\pi'); %在xabel中顯示歸一化/</p><p> ylabel('振幅'); %定義圖形縱坐標為'振幅’</p><p> ti
113、tle('契比雪夫Ⅰ型帶通濾波器的幅頻響應');</p><p> f2=filter(num2,den2,x2); %濾波</p><p> y2=fft(f2,8000);</p><p> subplot(3,1,2); %在窗口中生成3行1列共3個子圖,當前激活第2個子圖</p><p><b>
114、 plot(f2);</b></p><p> title('帶通后帶通能量集中信號');</p><p> xlabel('時間'); %定義圖形橫坐標為'時間’</p><p> ylabel('幅值'); %定義圖形縱坐標為''幅值</p><p&
115、gt; subplot(3,1,3); %在窗口中生成3行1列共3個子圖,當前激活第3個子圖</p><p> plot(abs(y2(1:4000)));</p><p> title('帶通后能量集中的語音信號頻譜')</p><p> xlabel('頻率'); %定義圖形橫坐標為'頻率’</p>
116、<p> ylabel('幅值'); %定義圖形縱坐標為''幅值</p><p> wavwrite(f2,'帶通能量集中2.wav');</p><p> x33=wavread('帶通能量集中2.wav');</p><p> sound(x33); %播放出語音</p
117、><p><b> 執(zhí)行如下:</b></p><p> 3、x3=wavread('帶通.wav');</p><p> sound(x3); %播放出語音</p><p> pause(2); %停頓2秒</p><p> Wp
118、3=[2*2000/8000 2*2100/8000];</p><p> Ws3=[2*1900/8000 2*2200/8000];</p><p><b> Rp3=1;</b></p><p><b> Rs3=100;</b></p><p> [N3,Wn3]=cheb1ord(
119、Wp3,Ws3,Rp3,Rs3);</p><p> [num3,den3]=cheby1(N3,Rp3,Wn3);</p><p> [h3,w3]=freqz(num3,den3);</p><p> figure(4);</p><p> subplot(3,1,1);%在窗口中生成3行1列共3個子圖,當前激活第1個子圖<
120、/p><p> plot(w3/pi,abs(h3));grid; %打網(wǎng)格</p><p> xlabel('\omega/\pi'); %在xabel中顯示歸一化/</p><p> ylabel('振幅'); %定義圖形縱坐標為'振幅' </p><p> title('
121、;契比雪夫Ⅰ型帶通濾波器的幅頻響應');</p><p> f63=filter(num3,den3,x3); %濾波</p><p> y3=fft(f3,8000); %作fft變換</p><p> subplot(3,1,2); %在窗口中生成3行1列共3個子圖,當前激活第2個子圖</p><p><b&
122、gt; plot(f3);</b></p><p> title('帶通后帶通能量最集中的信號'); %定義標題</p><p> xlabel('時間'); %定義圖形橫坐標為'時間’</p><p> ylabel('幅值'); %定義圖形縱坐標為'幅值'</p
123、><p> subplot(3,1,3); %在窗口中生成3行1列共3個子圖,當前激活第3個子圖</p><p> plot(abs(y3(1:4000)));</p><p> title('帶通能量集中的語音信號頻譜') %定義標題</p><p> xlabel('頻率'); %定義圖形橫坐標為
124、39;頻率’</p><p> ylabel('幅值'); %定義圖形縱坐標為'幅值'</p><p> wavwrite(f3,'帶通帶通能量集中3.wav');</p><p> x43=wavread('帶通帶通能量集中3.wav');</p><p> soun
125、d(x43); %播放出語音</p><p><b> 執(zhí)行如下:</b></p><p> 4.4.重建信號與原信號的音頻進行聲音回放比較</p><p> 4、任意選擇幾個濾出的頻帶(或頻簇)進行時域信號重建(合成),與原信號的音頻進行聲音回放比較。</p><p><b> 程序代碼如下:&
126、lt;/b></p><p> x=wavread('C:\MATLAB7\work\CEG和弦音.wav',[1000 8000]'); %讀出和弦音信號</p><p> soundview(x,8000); </p><p> pause(2); %停頓2秒</p><p> x41=wavr
127、ead('低通能量集中3.wav');</p><p> x42=wavread('高通后高通能量集中3.wav');</p><p> x43=wavread('帶通帶通能量集中3.wav');</p><p> z=x41+x42+x43; %信號的合成</p><p> wavwr
128、ite(z,'合成.wav');</p><p> h=wavread('合成.wav');</p><p> sound(h); %播放出聲音</p><p><b> 執(zhí)行如下:</b></p><p> 5、分析什么是和弦音</p><p> 和弦是
129、按照一定的音程關系結合起來的三個或三個以上同時或先后發(fā)音,叫做“和弦”。通過MATLAB對音頻文件經過簡單的低通,帶通和高通濾波器濾波,即對三個不同的頻帶分別進行頻譜分析及聲音比較,再將三個不同的頻帶信號合成并比較聲音,可以知道和弦音可分解為不同頻帶的單音信號。在不同頻帶其頻率分布及其振幅大小的不同都會造成音律不同,不同頻帶的單音信號重建也會組合成音律不同的和弦音。</p><p><b> 五、課程
130、設計總結</b></p><p> 通過本次課程設計,我除了對Matlab這個軟件的強大功能又有了更深的了解外,還學會了如何用MATLAB編程的方法實現(xiàn)任意確定信號的頻譜分析算法。采用Matlab進行數(shù)字信號處理課程設計,使我鞏固了課堂上所學的理論知識,并能較好地理解數(shù)字信號處理中的基本概念、基本原理和基本分析方法。雖然在設計的過程中遇到了很多問題,但通過上網(wǎng)和去圖書館查閱資料,還有和同學們的討論下
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字信號處理課程設計---語音信號的頻譜分析
- 數(shù)字信號除處理課程設計-dft在信號頻譜分析中的應用
- 數(shù)字信號處理課程設計---正余弦信號的譜分析
- 數(shù)字信號處理課程設計---應用 matlab對信號進行頻譜分析及濾波
- 數(shù)字信號課程設計--數(shù)字信號處理
- 正余弦信號的譜分析數(shù)字信號處理課程設計報告
- 數(shù)字信號課程設計--語音數(shù)字信號處理與分析及matlab實現(xiàn)
- 關于數(shù)字信號處理頻譜分析儀的簡易設計
- 數(shù)字信號處理課程設計
- 數(shù)字信號處理課程設計
- 數(shù)字信號處理課程設計
- 數(shù)字信號處理課程設計
- 數(shù)字信號處理課程設計
- 數(shù)字信號處理課程設計
- 數(shù)字信號處理課程設計
- 數(shù)字信號處理課程設計--離散時間信號處理
- 數(shù)字信號處理課程設計 (2)
- 數(shù)字信號處理課程設計報告
- 數(shù)字信號處理課程設計2
- 數(shù)字信號處理課程設計報告
評論
0/150
提交評論