matlab周期信号频谱图
时间: 2023-09-19 20:05:45 浏览: 141
MATLAB周期信号的频谱分析解读.ppt
在 MATLAB 中,可以使用 `fft` 函数将周期信号转换为频谱图。代码如下:
假设我们要绘制一个正弦波信号的频谱图,其频率为 10 Hz,采样率为 1000 Hz,持续时间为 1 秒。
```matlab
% 生成信号
t = linspace(0, 1, 1000); % 时间向量
f = 10; % 信号频率
x = sin(2*pi*f*t); % 正弦波信号
% 绘制频谱图
N = length(x); % 信号长度
X = abs(fft(x))/N; % 计算频域幅值
f_axis = linspace(0, 1, N)*1000; % 频率轴
plot(f_axis(1:N/2), X(1:N/2)); % 绘制频谱图
xlabel('频率 (Hz)');
ylabel('幅值');
```
解释一下代码的每一行:
- 第 2 行:生成时间向量,从 0 秒到 1 秒,共 1000 个点。
- 第 3 行:设置信号频率为 10 Hz。
- 第 4 行:根据正弦函数生成信号。
- 第 7 行:计算信号的 FFT。`abs` 函数取幅值,除以信号长度得到归一化的幅值。
- 第 8 行:生成频率轴,从 0 到 1000 Hz。
- 第 9 行:绘制频谱图,只绘制前一半的幅值,因为 FFT 的结果是对称的。
运行代码,可以得到以下频谱图:
![频谱图](https://img-blog.csdn.net/20180525210447487?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSGFkZHliZW5ueWd1aWRh/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/75)
阅读全文