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

您所在的位置:网站首页 如何用matlab画图片的频谱图教程图解 MATLAB录制音频显示波形,并绘制其频谱

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

2024-06-30 13:30| 来源: 网络整理| 查看: 265

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');

recObj = audiorecorder; disp('Start speaking.') recordblocking(recObj,5); disp('End of Recording.'); doubleArray = getaudiodata(recObj); plot(doubleArray); title('Audio Signal (double)'); fs=length(doubleArray)/5; 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); 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');



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3