录制一段语音信号,使用matlab 的audioread 函数对录制的信号进行采样,仿真出采样后信号的时域波 形和频谱图。
时间: 2023-12-15 15:06:24 浏览: 43
好的,以下是一个MATLAB示例代码,用于录制一段语音信号、对其进行采样,并绘制其时域波形和频谱图:
```matlab
% 录制语音信号
duration = 5; % 录音时长(秒)
fs = 44100; % 采样率
recObj = audiorecorder(fs, 16, 1); % 创建录音对象
disp('开始录音...');
recordblocking(recObj, duration); % 录音
disp('录音结束.');
% 获取录音数据
audio_data = getaudiodata(recObj);
% 绘制采样后信号的时域波形
t = linspace(0, duration, length(audio_data));
figure;
plot(t, audio_data);
xlabel('时间 (s)');
ylabel('幅值');
title('采样后信号的时域波形');
% 绘制采样后信号的频谱图
N = length(audio_data);
Y = fft(audio_data);
f = fs*(0:(N/2))/N;
P = abs(Y/N);
P = P(1:N/2+1);
P(2:end-1) = 2*P(2:end-1);
figure;
plot(f, P);
xlabel('频率 (Hz)');
ylabel('幅值');
title('采样后信号的频谱图');
```
在上述代码中,使用 `audiorecorder` 函数创建了一个录音对象 `recObj`,并使用 `recordblocking` 函数进行录音。然后,使用 `getaudiodata` 函数获取录音数据,并使用 `plot` 函数分别绘制了采样后信号的时域波形和频谱图。其中,使用了FFT算法计算频谱图。