2020-02-11 08:49发布
again 发表于 2016-10-14 14:30 clear all;clc N=256; fs=1000;
again 发表于 2016-10-14 14:23 如果整周期采样无泄漏那么FFT后模值/(N/2)/1.414就是有效值
最多设置5个标签!
N=256;
fs=1000;
f=51.1234;
a=1.2345;
ph=30.123;
dc=0.123;
t=0:N-1;
x=a*sin(2*pi*f*t/fs+ph*pi/180)+dc;
xfft=fft(x,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
MATLAB输出结果,精度自己看
fo =
51.123401059088216
ao =
1.234499850166726
pho =
30.122670622875049
这个是单频信号,多频的话这个三点校正算法频率间隔需要5个以上才比较好,你可以去看看频谱泄漏校正算法相关数据,丁康老师、王兆华老师推荐可以看
谢谢喔!
我这个 采样 相对 来说 是一个比较完整的 周期了
一周热门 更多>