matlab录制的语音信号的时域和频域波形图的代码
时间: 2024-01-21 22:17:17 浏览: 97
以下是 Matlab 中录制语音信号并绘制时域和频域波形图的示例代码:
```matlab
% 设置录音参数
fs = 8000; % 采样率为 8000 Hz
bits = 16; % 采样位数为 16 位
channels = 1; % 单声道
% 录音 5 秒钟
recObj = audiorecorder(fs, bits, channels);
disp('开始录音...');
recordblocking(recObj, 5);
disp('录音结束!');
% 获取录音数据并绘制时域波形图
data = getaudiodata(recObj);
t = linspace(0, length(data)/fs, length(data));
figure;
plot(t, data);
xlabel('Time (s)');
ylabel('Amplitude');
title('时域波形图');
% 计算并绘制频域波形图
N = length(data);
f = (0:N-1)*fs/N;
Y = abs(fft(data)/N);
figure;
plot(f, Y);
xlabel('Frequency (Hz)');
ylabel('Amplitude');
title('频域波形图');
```
这段代码中使用了 `audiorecorder` 函数来录制语音信号,并使用 `getaudiodata` 函数获取录音数据。接着,通过 `linspace` 函数生成时间轴,绘制时域波形图;通过 `fft` 函数计算频域波形图,并绘制出来。你可以根据需要修改采样率、录音时长等参数。
阅读全文