设方波信号如下所示:
对其进行傅里叶级数展开,计算后可得:
编写的matlab代码如下:
close all;
clear all;
N = 1000; %取展开式的项数为1000项
T = 1; %方波周期为1
fs = 1/T;
N_sample = 128; %为了画出波形,设置每个周期的采样点个数
dt = T/N_sample;
t=0:dt:10*T-dt;
ft = zeros(1,length(t));
for n=1:N
an = (2*sin(pi*n) - sin(2*pi*n))/(pi*n);
bn = (1-2*cos(n*pi)+cos(2*pi*n))/(pi*n);
ft = ft + an*cos(n*2*pi*fs*t)+bn*(sin(n*2*pi*fs*t));
end
plot(t,ft);
展开式的项数设置为1000项时,波形如下:
展开式的项数设置为100项时,波形如下:
两幅图对比可以证明展开式项数越多,波形越接近方波。