Matlab-對音頻文件(.wav)中的一段(1-2s)進行傅里葉變換並顯示頻譜

本博客實驗環境是Matlab2018,軟件版本不同可能會有些出入,需要稍作修改。

使用Matlab 編寫一段傅里葉變換代碼,對你所採集的 wav 文件中的一段(1-2s)進行傅里葉變換,並顯示頻譜。

我使用的音頻是琵琶D調Re,文件命名爲test.wav。記得修改爲自己的文件名哦。
代碼如下:

[xx,fs]=audioread('test.wav');
x=xx(:,1);
N=length(x);
time=(0:N-1)/fs;
plot(x);
M=2048;
nfft=8192;
win=hanning(M);
freq=(0:nfft/2)*fs/nfft;
y=x(9001:9000+M);
y=y-mean(y);
Y=fft(y.*win,nfft);
figure(2)
subplot 211;plot(y);xlim([0 M]);
title('一幀信號波形');xlabel('樣點');ylabel('幅值')
subplot 212;plot(freq,20*log10(abs(Y(1:nfft/2+1))));
grid;axis([0 max(freq) -60 55]);
title('頻譜');xlabel('頻率(Hz)');ylabel('幅值')

 

運行結果如下所示:

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章