|
发表于 2012-9-12 21:17:56
|
显示全部楼层
理论这个东西还是去翻书吧!贴个实用matlab程序
clear all;clc
N=1024;
fs=100000;
f=10000
a=1.2345;
ph=50.123;
dc=0.123;
t=0:N-1;
x=a*sin(2*pi*f*t/fs+ph*pi/180)+dc;
x=x+0.0005*randn(1,N);
xfft=fft(x,N);
s1=xfft(2);
S=abs(s1)*2/N;
y=abs(xfft);
[Y1, k]=max(y(2:N/2));
k=k+1;
z1=xfft(k)-(xfft(k-1)+xfft(k+1))/2;
z2=xfft(k+1)-(xfft(k)+xfft(k+2))/2;
ka=abs(z1)/abs(z2);
r=(2-ka)/(1+ka);
fo=(k-1+r)*fs/N
ao=2*pi*r*(1-r*r)*(abs(z1))/(N*sin(r*pi))
pho=(angle(z1)-pi*r)*180/pi+90
---------------------------------------------------
结果精度非常高
fo =
9.999999905023071e+03
ao =
1.234515159107427
pho =
50.120900758689679 |
|