利用matlab库函数wavread命令来读入录制的语音信号,将它赋值给一个数组,对语音信号进行采样,记住采样频率fs和采样点数N,画出语音信号的时域波形和频域波形
时间: 2024-04-07 17:30:11 浏览: 71
在 MATLAB 中,您可以使用 `audioread` 函数来读取录制的语音信号,并使用 `plot` 函数来绘制时域波形和频域波形。以下是一个示例代码:
```matlab
% 读取语音信号
[y, fs] = audioread('recorded_audio.wav');
% 语音信号的采样点数
N = length(y);
% 绘制时域波形
time = (0:N-1) / fs; % 时间轴
figure;
plot(time, y);
xlabel('Time (s)');
ylabel('Amplitude');
title('Time Domain Waveform');
% 绘制频域波形
f = (-fs/2 : fs/N : fs/2 - fs/N); % 频率轴
Y = fftshift(fft(y)); % 进行FFT变换并进行频谱中心化
magnitude = abs(Y);
figure;
plot(f, magnitude);
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title('Frequency Domain Waveform');
```
在上述代码中,我们使用 `audioread` 函数读取录制的语音信号,并将其赋值给数组 `y`。同时,我们获取采样频率 `fs` 和采样点数 `N`。
然后,我们使用 `plot` 函数绘制时域波形,其中 x 轴表示时间,y 轴表示振幅。接下来,我们计算频率轴 `f` 和进行频谱中心化的 FFT 变换结果 `Y`,并使用 `plot` 函数绘制频域波形,其中 x 轴表示频率,y 轴表示幅度。
请确保将代码中的 `'recorded_audio.wav'` 替换为您录制的实际语音文件的路径。
阅读全文