画出原始信号x(t)=2sin(2*pi*100t)+3cos(2*pi*500t)+sin(2*pi*800t)的时域波形和
时间: 2023-07-23 07:15:36 浏览: 141
matlab典型时间信号的波形图生成
5星 · 资源好评率100%
频域波形。
以下是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 = (-N/2:N/2-1)*fs/N; % 频率轴
X = abs(fftshift(fft(x)))/N; % 取模后取归一化
plot(f, X);
xlabel('频率/Hz');
ylabel('幅值');
title('频域波形');
```
在代码中,我们定义了一个长度为0.5秒的时间轴,然后计算出原始信号的值。接着,我们使用subplot函数将画布分为两个子图,分别绘制时域波形和频域波形。
时域波形使用plot函数绘制,x轴为时间轴,y轴为信号幅值,标题为“时域波形”。
频域波形需要先计算出信号的FFT,然后将其取模后归一化,使用fftshift函数将零频分量移到频谱中心,最后使用plot函数绘制。x轴为频率轴,y轴为信号幅值,标题为“频域波形”。
阅读全文