matlab 信号与系统 6.4日零点截止
用MATLAB软件编程和调用相关函数,绘制周期T1=1,幅度E=1的对称方波的前10项傅里叶级数的系数(三角函数形式),并用前5项恢复原信号。
(1) 画出原时域波形和幅度谱
(2) 绘出恢复后的时域波形,并与原波形比较并简要说明
需要代码,过程可简略
首先,我们需要计算对称方波的傅里叶级数系数。对于方波信号,我们可以使用以下公式计算傅里叶系数:
a_n = 0 b_n = (2 * E / (n * pi)) * (1 - (-1)^n)
其中,a_n 和 b_n 分别表示傅里叶级数的余弦和正弦系数,n 表示级数的阶数,E 表示方波的幅度。
接下来,我们将使用 MATLAB 编程来实现这个过程。
计算傅里叶级数的前10项系数:
T1 = 1;
E = 1;
N = 10;
% 计算傅里叶级数的系数
a_n = zeros(1, N);
b_n = zeros(1, N);
for n = 1:N
a_n(n) = 0;
b_n(n) = (2 * E / (n * pi)) * (1 - (-1)^n);
end
使用前5项傅里叶级数恢复原信号:
t = linspace(0, T1, 1000);
x = zeros(1, length(t));
N_recover = 5;
% 使用前5项傅里叶级数恢复原信号
for n = 1:N_recover
x = x + a_n(n) * cos(2 * pi * n * t / T1) + b_n(n) * sin(2 * pi * n * t / T1);
end
绘制原时域波形、幅度谱以及恢复后的时域波形:
% 绘制原时域波形
figure;
subplot(3, 1, 1);
square_wave = square(2 * pi * t);
plot(t, square_wave);
title('原时域波形');
% 绘制幅度谱
subplot(3, 1, 2);
stem(1:N, b_n);
title('幅度谱');
% 绘制恢复后的时域波形
subplot(3, 1, 3);
plot(t, x);
title('恢复后的时域波形');
通过观察绘制的图像,我们可以看到原时域波形为一个标准的方波信号。幅度谱显示了前10项傅里叶级数的系数,我们可以看到随着频率的增加,系数逐渐减小。恢复后的时域波形与原波形非常接近,但由于我们只使用了前5项傅里叶级数,因此恢复的信号在波形的上升和下降过程中会有一些畸变。这说明,随着傅里叶级数项数的增加,我们可以更好地恢复原始信号。
```