MATLAB录制音频显示波形,并绘制其频谱

matlab通过调用电脑的录音机录一段音频,分析时域和频域

recObj = audiorecorder;
    %录音机对象,指定为 audiorecorder 对象。使用 audiorecorder 函数创建该对象。
    disp(‘Start speaking.’)

recordblocking(recObj,5);
    disp(‘End of Recording.’);
    %从麦克风录制20秒的音频片段

doubleArray = getaudiodata(recObj);
plot(doubleArray);
      %以 double 数组形式获取音频信 ,并绘制数据。
title(‘Audio Signal (double)’);

fs=length(doubleArray)/5;
    %做fft变换,绘制频谱图。
f=(0:length(doubleArray)-1)*fs/length(doubleArray);
y_fft=fft(doubleArray);
P_1 = abs(y_fft).^2/length(doubleArray);
plot(f,abs(P_1 ));
xlabel(‘Frequency (f)’);
ylabel(‘|P(f)|^2’);

Y_fft = fftshift(y_fft);
n=length(doubleArray);
      %通过shiftfft将零频分量移动到数组中心,重新排列傅里叶变换 。
fshift = (-n/2:n/2-1)*(fs/n); 
P_2 = abs(Y_fft ).^2/n;
plot(fshift,abs(P_2));
xlabel(‘Frequency (f)’);
ylabel(‘|P(f)|^2’);

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年9月6日
下一篇 2021年9月6日

相关推荐