方波信号为:
傅里叶级数展开为:
程序运行结果:
程序代码:
1 clear 2 3 x = -6:0.01:6; 4 T = 4; 5 6 f = x; 7 for N = 1:length(f) 8 temp = rem(abs(x(N)),T); 9 if temp>1 && temp<3 10 f(N) = 0; 11 else 12 f(N) = 1; 13 end 14 end 15 16 % f(x) = 1/2 + sum(g(k,x)) (k=1,2,3,4......) 17 % g(k,x) = sinc(k/2)*cos(k*pi/2*x) 18 % MATLAB build-in function: sinc(x) = sin(x*pi)/(x*pi) 19 20 count = 9; 21 y = zeros(count, length(x)); 22 23 for N = 1:count 24 k = 2*N-1; 25 if N==1 26 y(N,:) = 0.5 + sinc(k/2)*cos(k*pi/2*x); 27 else 28 y(N,:) = y(N-1,:) + sinc(k/2)*cos(k*pi/2*x); 29 end 30 end 31 32 row = ceil(sqrt(count)); 33 colomn = ceil(count/row); 34 for N=1:count 35 subplot(row,colomn,N); 36 plot(x,f,'k'); 37 hold on 38 h = plot(x,y(N,:),'r'); 39 title(strcat(num2str(2*N-1),' harmonic')); 40 end