matlab周期三角波傅里叶级数逼近代码
时间: 2023-09-11 11:06:27 浏览: 421
以下MATLAB代码,用于将周期三角波用傅里叶级数逼近:
```matlab
% 设置参数
T = 2*pi; % 周期
N = 50; % 级数
% 定义三角波函数
f = @(t) (2/pi)*sum(arrayfun(@(n) ((-1)^n)/n*sin(n*t), 1:N));
% 绘制原始三角波
t = -T:0.01:T;
y = arrayfun(f, t);
plot(t, y)
hold on
% 计算傅里叶级数逼近
a0 = (1/pi)*integral(f, 0, T);
an = @(n) (1/pi)*integral(@(t) f(t).*cos(n*t), 0, T);
bn = @(n) (1/pi)*integral(@(t) f(t).*sin(n*t), 0, T);
% 绘制傅里叶级数逼近
y_approx = a0/2 + arrayfun(@(n) an(n)*cos(n*t) + bn(n)*sin(n*t), 1:N);
plot(t, y_approx)
% 添加图例和标题
legend('原始三角波', '傅里叶级数逼近')
title('周期三角波的傅里叶级数逼近')
```
代码中,`T`代表周期,`N`代表级数。首先定义了三角波函数`f`,然后用`arrayfun`函数计算三角波函数在给定时间点`t`的值。接下来,计算傅里叶系数`a0`,`an`和`bn`,并使用这些系数计算傅里叶级数逼近`y_approx`。最后,绘制原始三角波和傅里叶级数逼近,并添加图例和标题。
阅读全文