um = 1; % 三角波幅度
T = 1; % 三角波周期
% 构造三角波信号
t = linspace(0, T, 1000);
x = zeros(size(t));
for n = 1:2:9
x = x + (4*um/(n^2*pi^2))*sin(n*2*pi*t/T);
end
% 绘制三角波信号
subplot(2,1,1);
plot(t, x);
title('Original Signal');
% 进行傅里叶级数展开
N = 5; % 展开的级数
f = zeros(size(t));
for n = 1:N
f = f + (4*um/(n^2*pi^2))*sin(n*2*pi*t/T);
end
% 绘制展开后的信号
subplot(2,1,2);
plot(t, f);
title(['Reconstructed Signal (', num2str(N), ' terms)']);
% 输出分解和合成结果
disp('Signal Decomposition:');
for n = 1:N
disp(['a', num2str(n), ' = ', num2str((4*um/(n^2*pi^2))*(-1)^((n-1)/2))]);
end
disp('Signal Reconstruction:');
disp(['f(t) = ', num2str(um/2), ' + ']);
for n = 1:N
disp([num2str((4*um/(n^2*pi^2))*(-1)^((n-1)/2)), '*sin(', num2str(n), '*2*pi*t/', num2str(T), ') + ']);
end