画出原始信号x(t)=2sin(2*pi*100t)+3cos(2*pi*500t)+sin(2*pi*800t)的时域波形和幅度谱
时间: 2023-07-23 13:15:36 浏览: 109
画出信号的时域图和频谱
3星 · 编辑精心推荐
以下是Matlab代码实现:
```matlab
% 定义时间轴
t = 0:0.0001:0.5;
% 定义原始信号
x = 2*sin(2*pi*100*t) + 3*cos(2*pi*500*t) + sin(2*pi*800*t);
% 时域波形
subplot(2,1,1); % 将画布分为2行1列,第1个子图
plot(t, x);
xlabel('时间/s');
ylabel('幅值');
title('时域波形');
% 幅度谱
subplot(2,1,2); % 将画布分为2行1列,第2个子图
N = length(x); % 信号长度
fs = N/0.5; % 采样频率
f = (0:N-1)*fs/N; % 频率轴
X = abs(fft(x))/N; % 取模后取归一化
plot(f, X);
xlabel('频率/Hz');
ylabel('幅度');
title('幅度谱');
```
代码与上一个问题中的代码基本相同,只是在计算频率轴时略有不同。在幅度谱中,我们将频率轴改为从0开始,因为我们只需要表示正频率部分的幅度谱。其他细节可以参考上一个问题的解答。
阅读全文