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('幅值')

 

运行结果如下所示:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44436677/article/details/106269719
今日推荐