matlab 画频谱图函数
时间: 2023-08-23 10:36:27 浏览: 112
Matlab中可以使用fft函数计算信号的傅里叶变换,并使用abs函数计算其模值。然后,可以使用plot函数或imagesc函数绘制频谱图。以下是一个简单的例子:
```matlab
% 生成信号
fs = 1000; % 采样率
t = 0:1/fs:1-1/fs; % 时间向量
x = cos(2*pi*100*t) + sin(2*pi*200*t); % 信号
% 计算傅里叶变换
X = fft(x);
% 计算模值
X_mag = abs(X);
% 绘制频谱图
f = (0:length(X)-1)*fs/length(X); % 频率向量
plot(f, X_mag)
xlabel('Frequency (Hz)')
ylabel('Magnitude')
```
如果信号是矩阵形式,可以使用spectrogram函数绘制频谱图。例如:
```matlab
% 生成信号
fs = 1000; % 采样率
t = 0:1/fs:1-1/fs; % 时间向量
x = cos(2*pi*100*t) + sin(2*pi*200*t); % 信号
y = 0.5*randn(size(x)); % 噪声
% 合并信号并绘制频谱图
z = x + y; % 合并信号
spectrogram(z, hamming(256), 128, 256, fs, 'yaxis')
```
该代码使用hamming窗口计算短时傅里叶变换,并使用128个点的重叠计算每个时间段的频谱图。结果显示在y轴上,x轴表示时间。
阅读全文