信號與系統大作業大作業要求 課程大作業采用小組形式進行,每4~6名學生一組,每組推選組長1名,由組長負責組織小組成員分工合作,完成語音信號時頻認知。具體要求如下,①錄制一段語音信號,對錄制的信號進行采樣,并畫出采樣后語音信號的時域波形和頻譜圖;②對語音信號進行加噪,畫出加噪后時域波形和頻譜;③回放語音信號;實現快錄慢放;④撰寫設計報告及完成仿真,并進行驗收答辯。 錄制一段語音信號,對錄制的信號進行采樣,并畫出采樣后語音信號的時域波形和頻譜圖;
1、用window的附件中的“錄音機”錄制一段語音信號并存盤。(例如:d:\1\2.wav)
2、用MATLAB軟件進行該原始語音信號的時頻分析。
2.1代碼
%對語言信號做原始的時域波形分析和頻譜分析
[y,fs]=audioread('d:\1\2.wav');
% sound(y,fs) % 回放語音信號
n=length(y) %選取變換的點數
y_p=fft(y,n); %對n 點進行傅里葉變換到頻域
f=fs*(0:n/2-1)/n; % 對應點的頻率
figure(1)
subplot(2,1,1);
plot(y); %語音信號的時域波形圖
title('原始語音信號采樣后時域波形');
xlabel('時間軸')
ylabel('幅值 A')
subplot(2,1,2);
plot(f,abs(y_p(1:n/2))); %語音信號的頻譜圖
title('原始語音信號采樣后頻譜圖');
xlabel('頻率Hz');
ylabel('頻率幅值');
2.2 圖像

對語音信號進行加噪,畫出加噪后時域波形和頻譜;
2.1代碼
%對音頻信號產生噪聲
L=length(y) %計算音頻信號的長度
noise=0.1*randn(L,2); %產生等長度的隨機噪聲信號(這里的噪聲的大小取決于隨機函數的幅度倍數)
y_z=y+noise; %將兩個信號疊加成一個新的信號——加噪聲處理
%sound(y_z,fs)
%對加噪后的語音信號進行分析
n=length(y); %選取變換的點數
y_zp=fft(y_z,n); %對n 點進行傅里葉變換到頻域
f=fs*(0:n/2-1)/n; % 對應點的頻率
figure(2)
subplot(2,1,1);
plot(y_z); %加噪語音信號的時域波形圖
title('加噪語音信號時域波形');
xlabel('時間軸')
ylabel('幅值 A')
subplot(2,1,2);
plot(f,abs(y_zp(1:n/2))); %加噪語音信號的頻譜圖
title('加噪語音信號頻譜圖');
xlabel('頻率Hz');
ylabel('頻率幅值');

回放語音信號;實現快錄慢放;
在MATLAB寫好的代碼末尾輸入sound(y,fs);語句 可實現語音正常放;
若輸入sound(y,1.5*fs); 可實1.5倍快播放
若輸入sound(y,0.5*fs); 可實現0.5倍慢播放
完整的Word格式文檔51黑下載地址:
信號與系統大作業.docx
(114.58 KB, 下載次數: 24)
2017-12-4 22:55 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|