用Matlab画出周期信号f(t)=-1+2sin(0.2*pi*t)-3cos(pi*t)的离散幅度谱的代码
时间: 2024-02-23 19:58:46 浏览: 128
matlab实现离散信号的图形表达
5星 · 资源好评率100%
以下是用 Matlab 画出周期信号 f(t)=-1+2sin(0.2*pi*t)-3cos(pi*t) 的离散幅度谱的代码:
```matlab
% 定义信号 f(t)
t = -5:0.01:5; % 时间轴范围为 -5~5,步长为 0.01
f = -1 + 2*sin(0.2*pi*t) - 3*cos(pi*t);
% 对信号进行采样和重构
fs = 50; % 采样频率为 50 Hz
Ts = 1/fs; % 采样周期
n = 0:1/fs:10; % 采样范围
x = -1 + 2*sin(0.2*pi*n) - 3*cos(pi*n); % 对信号进行采样
xr = zeros(size(t)); % 初始化重构信号
for i = 1:length(n)
xr = xr + x(i)*sinc((t-i*Ts)/Ts); % 重构信号
end
% 计算信号的傅里叶变换以及离散幅度谱
X = fft(x); % 傅里叶变换
Mag_X = abs(X); % 离散幅度谱
% 绘制离散幅度谱图像
f_axis = linspace(-fs/2,fs/2,length(x)); % 频率轴
stem(f_axis,fftshift(Mag_X)) % 绘制离散幅度谱图像
title('离散幅度谱图像') % 添加标题
xlabel('频率 (Hz)') % x 轴标签
ylabel('幅度') % y 轴标签
```
上述代码中,首先定义了信号 f(t),然后对信号进行采样和重构,接着通过计算信号的傅里叶变换以及离散幅度谱,最后使用 `stem` 函数绘制离散幅度谱图像。需要注意的是,由于离散幅度谱是关于频率轴对称的,因此需要使用 `fftshift` 函数将频率轴移至中心位置。
希望这个代码能帮到你!如果你还有其他问题,欢迎随时向我提出。
阅读全文