方波信号为:
傅里叶级数展开为:
程序运行结果:
程序代码:
clear x = -6:0.01:6;
T = 4; f = x;
for N = 1:length(f)
temp = rem(abs(x(N)),T);
if temp>1 && temp<3
f(N) = 0;
else
f(N) = 1;
end
end % f(x) = 1/2 + sum(g(k,x)) (k=1,2,3,4......)
% g(k,x) = sinc(k/2)*cos(k*pi/2*x)
% MATLAB build-in function: sinc(x) = sin(x*pi)/(x*pi) count = 9;
y = zeros(count, length(x)); for N = 1:count
k = 2*N-1;
if N==1
y(N,:) = 0.5 + sinc(k/2)*cos(k*pi/2*x);
else
y(N,:) = y(N-1,:) + sinc(k/2)*cos(k*pi/2*x);
end
end row = ceil(sqrt(count));
colomn = ceil(count/row);
for N=1:count
subplot(row,colomn,N);
plot(x,f,'k');
hold on
h = plot(x,y(N,:),'r');
title(strcat(num2str(2*N-1),' harmonic'));
end