用matlab作图演示方波信号的傅里叶级数完整代码
时间: 2023-10-21 19:02:36 浏览: 136
以下是用 MATLAB 作图演示方波信号的傅里叶级数的完整代码:
```matlab
% 清空命令行窗口与工作区
clc; clear;
% 定义方波信号的参数
T = 2*pi; % 周期
w0 = 2*pi/T; % 基频
D = 0.5; % 占空比
N = 10; % 傅里叶级数展开的项数
% 定义傅里叶级数函数
f = @(t) 0; % 初始化傅里叶级数函数为 0
for n = 1:2:N % 遍历所有奇数项
% 计算对应的系数
Cn = 4/(n*pi) * sin(n*w0*D/2);
% 更新傅里叶级数函数
f = @(t) f(t) + Cn * sin(n*w0*t);
end
% 定义时间范围
t = linspace(0, T, 1000);
% 绘制原始方波信号
figure;
subplot(2,1,1);
y = square(w0*t, D*100);
plot(t, y);
ylim([-1.5, 1.5]);
title('原始方波信号');
% 绘制傅里叶级数展开后的信号
subplot(2,1,2);
y = f(t);
plot(t, y);
ylim([-1.5, 1.5]);
title(['傅里叶级数展开后的信号 (N = ' num2str(N) ')']);
```
运行上述代码,即可得到绘制原始方波信号与傅里叶级数展开后信号的图像。其中,`T`、`w0`、`D`、`N` 分别代表方波信号的周期、基频、占空比与傅里叶级数展开的项数。在代码中,我们首先定义了一个傅里叶级数函数 `f`,然后在遍历所有奇数项的过程中,根据公式计算对应的系数 `Cn` 并更新傅里叶级数函数 `f`。最后,我们绘制原始方波信号与傅里叶级数展开后的信号的图像,观察到傅里叶级数展开后的信号逐渐接近于原始方波信号。
阅读全文