m=50; t = -4:0.01:4; %时域波形的时间范围-2~2,采样间隔 0.01 n = round(length(t)/4); %根据周期方波信号的周期,计算 1/2 周期的数据点数 f = [0.5*ones(n,1);-0.5*ones(n,1);0.5*ones(n,1);-0.5*ones(n+1,1)]; %构造周期方波信号 y = zeros(m+1,max(size(t))); y(m+1,:) = f'; x = zeros(size(t)); kk = 1; for k=1:2:2*m-1%循环显示谐波叠加图形 x = x+sin(pi/2*k*t)/k; y((k+1)/2,:) = 2/pi*x; %计算各次谐波叠加和 if k==3||k==9||k==33||k==99 subplot(2,2,kk); plot(t,y(m+1,:)); hold on; plot(t,y((k+1)/2,:)); %绘制谐波叠加信号 hold off; grid; axis([-44-11]); title(strcat('第1至',num2str(k),'次谐波叠加')); xlabel('t','Fontsize', 8); kk =kk+1; end end
clear; clc; close all; syms c dt = 0.001; t = -4:dt:4; T = 4; w0 = 2 * pi / T; n = -10:10; Cn = zeros(size(n)); for N = -10:10 ak=0; ak=1/T*(int((-1-c) * exp(-1i * N * w0 * c),c,-3,0)+int((4 * c - 2) * exp(-1i * N * w0 * c) ,c,0,1)); Cn(N+11)=ak; end subplot(2,1,1);stem(n,abs(Cn));ylabel('Cn 的幅度谱');grid; subplot(2,1,2);stem(n,angle(Cn));ylabel('Cn 的相位谱');grid; xlabel('\omega/\omega_0');
%f g h f = 0.5*square(0.5*pi* t); % plot(t, f); % hold on; g=(-1-t).*(-t>0)+4*(t-0.5).*(t>0)+(-1).*(t==0); % plot(t, g); % hold on; h=f.*g; subplot(221) plot(t, h);ylabel('h(t)');grid on;
%系数 T = 4; w0 = 2 * pi / T; N=input('N='); n = -N:N; An = zeros(size(n)); Bn = zeros(size(n)); for k = -N:N bk=1/T*(int((-1-c) * exp(-1i * k * w0 * c),c,-3,0)+int((4 * c - 2) * exp(-1i * k * w0 * c) ,c,0,1)); Bn(k+N+1)=bk;
ak=1/T*(int(0.5* exp(-1i * k * w0 * c),c,-3,-2)+int(-0.5* exp(-1i * k * w0 * c),c,-2,0)+int(0.5* exp(-1i * k * w0 * c),c,0,1)); % if k==0 % ak=0 % else % ak=-1i/(k*pi); % end An(k+N+1)=ak; end