matlab 输入语音信号,请你给出如何画它的时域图和频域图的代码
时间: 2024-02-25 20:57:40 浏览: 94
Matlab代码,将时域信号转换成频域信号,附带汇报PPT
5星 · 资源好评率100%
好的,以下是 MATLAB 画时域图和频域图的代码:
假设你已经有了一个名为 `audio` 的语音信号向量。
时域图:
```matlab
% 画时域图
t = linspace(0, length(audio)/44100, length(audio)); % 生成时间坐标轴
plot(t, audio);
xlabel('时间 (s)');
ylabel('幅值');
title('语音信号时域图');
```
其中,`linspace` 函数用于生成时间坐标轴,`44100` 是语音信号的采样率。
频域图:
```matlab
% 画频域图
N = length(audio);
f = (0:N-1)*(44100/N); % 生成频率坐标轴
audio_fft = fft(audio);
audio_fft = audio_fft(1:N/2);
plot(f, abs(audio_fft));
xlabel('频率 (Hz)');
ylabel('幅值');
title('语音信号频域图');
```
其中,`N` 是语音信号的长度,`f` 是频率坐标轴,`fft` 函数用于进行傅里叶变换,`abs` 函数用于取复数的绝对值,只画了频率为正的部分。
希望对你有所帮助!
阅读全文