半波傅氏算法的matlab实现
%半波傅氏算法,数据窗10msN=12;
h=input('请输入谐波次数(1 or 3):');
z=1+sqrt(-1)*sqrt(3);
t=0:0.02/N:0.02;
u= sin(2*pi*50*t)+2*sin(2*3*pi*50*t-pi/6);
t1=0:0.0001:0.07;
u1=sin(2*pi*50*t1)+2*sin(2*3*pi*50*t1-pi/6);
subplot(211);plot(t1,u1);title('连续图');
subplot(212);stem(t,u);title('离散图');
i=u./z;
S=0;C=0;
fork=1:N/2
S=S+u(k)*sin(h*(k-1)*2*pi/N);
C=C+u(k)*cos(h*(k-1)*2*pi/N);
end
Us=S*4/N;
Uc=4*C/N;
U=abs(Us+sqrt(-1)*Uc)/sqrt(2);
JU=angle(Us+sqrt(-1)*Uc);
S=0;C=0;
fork=1:N/2
S=S+i(k)*sin(h*(k-1)*2*pi/N);
C=C+i(k)*cos(h*(k-1)*2*pi/N);
end
Is=S*4/N;
Ic=4*C/N;
I=abs(Is+sqrt(-1)*Ic)/sqrt(2);
JI=angle(Is+sqrt(-1)*Ic);
U
I
cos(JU-JI) 谢了,哈哈,
页:
[1]
