|
发表于 2021-3-2 23:00:44
|
显示全部楼层
硬汉网上找了一个FFT加窗补偿算法,采样率100K,FFT点数16384,实际相位43.98, matlab计算出来p=43.9813,帮忙看一下这个算法是否可以用!!!
N=16384;
fs=100000;
t=0:1/fsN-1)/fs; %;
f0=5512.2;
a=0.87;
ph=43.98;%f=[0:fs/N/f0:N-1];
f2=5512.2+1150;
a2=0.27;
y=a*cos(2*pi*f0*t+ph*pi/180)+a2*cos(2*pi*f2*t);
y1=y(1:N); %N个数据
%%%%获取对称窗¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
win=hanning(N,'periodic')';
%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
win1=win/sum(win); %窗归一
y11=y1.*win1;
y1_fft=fft(y11,N);
a1=abs(y1_fft); %fft振幅谱
a11=a1;
a2=[a11(2:N) 0];%%方便画图
p1=angle(y1_fft)*180/pi;%fft相位谱
p2=[p1(2:N) 0];
[j,m]=max(a11);
w0=(m-1)*fs/N
p0=mod(phase(y1_fft(m))*180/pi,360)
v=a1(m+1)/a1(m)
dk=(2*v-1)/(1+v)
f1=(m-1+dk)*fs/N
A1=j*(2*pi*dk)*(1-dk*dk)/sin(pi*dk)
dp=dk*180
p=p1(m)-dk*180*(N-1)/N
|
|