在MATLAB中,编写程序,画出信号f(t)=(e^(–3t))ε(t),f(t-4)以及信号f(t)e^(-j4t)的频谱图。
时间: 2023-07-28 11:07:15 浏览: 345
用matlab程序写的matlab语言求频谱图
4星 · 用户满意度95%
好的,这是一个关于信号和系统的问题,我可以帮你回答。以下是MATLAB的代码:
```matlab
% 定义时间范围
t = linspace(-5, 5, 1000);
% 定义信号
f1 = exp(-3*t).*heaviside(t); % f(t)
f2 = exp(-3*(t-4)).*heaviside(t-4); % f(t-4)
f3 = exp(-3*t).*exp(-1j*4*t); % f(t)e^(-j4t)
% 绘制信号时域图像
subplot(3, 1, 1);
plot(t, f1);
title('f(t) = (e^{-3t})u(t)');
xlabel('时间');
ylabel('幅度');
subplot(3, 1, 2);
plot(t, f2);
title('f(t-4) = (e^{-3(t-4)})u(t-4)');
xlabel('时间');
ylabel('幅度');
subplot(3, 1, 3);
plot(t, real(f3));
title('实部(f(t)e^{-j4t})');
xlabel('时间');
ylabel('幅度');
% 计算并绘制频谱
N = length(t);
Fs = N/(t(end)-t(1));
f = linspace(-Fs/2, Fs/2, N);
F1 = fftshift(fft(f1))/N;
F2 = fftshift(fft(f2))/N;
F3 = fftshift(fft(f3))/N;
subplot(3, 1, 1);
figure;
plot(f, abs(F1));
title('f(t)的频谱图');
xlabel('频率');
ylabel('幅度');
subplot(3, 1, 2);
plot(f, abs(F2));
title('f(t-4)的频谱图');
xlabel('频率');
ylabel('幅度');
subplot(3, 1, 3);
plot(f, abs(F3));
title('f(t)e^{-j4t}的频谱图');
xlabel('频率');
ylabel('幅度');
```
这段代码将绘制三个信号的时域图像和对应的频谱图像。其中,时域图像通过 `plot` 函数绘制,频谱图像则通过 `fft` 函数求解得到。请注意,由于频谱是复数,因此在绘制频谱图时需要分别绘制实部和虚部的幅度。
阅读全文