yifeng2030 发表于 2007-5-29 08:03

多谢,不知能否留下联系方式,方便向您请教,MSN或邮箱?

zhwang554 发表于 2007-5-29 18:05

忙了一天,sorry!
zhwang@tju.edu.cn
QQ 804111486

你提到用二个正弦波自相关,互相关求相位, 均是线性相关.
求相位还是FFT最好,它一次FFT可以求许多频率成分的相位, 相关法只能求单一频率,噪声下因有相除也不好.

yifeng2030 发表于 2007-5-29 21:36

呵呵,我已经请求加您的QQ了,您不会是天津大学王兆华老师吧?

robustcococole 发表于 2009-12-15 19:46

受教了。。。

wwllzz 发表于 2011-4-3 21:39

记得有个帖子曾在讨论哪个领域需要将相位/频率计算到如此精度, 我是在做数字电能计量的, 要实现交流功率表的在线校准, 这里就要求电网频率在现场噪声条件下算到10ppm以内, 希望apFFT能有所帮助, 我刚接触这概念和思路

wwllzz 发表于 2011-4-5 16:25

实际应用中的信号是包含大量谐波的, 加窗可能是必要的选择. 窗函数的选择, 系数确定的依据, 加窗的时机和方式, 甚至窗函数的表达式似乎都是工程方法, 没有明确的理论依据. 稍后我传上来我的测试数据

wwllzz 发表于 2011-4-8 15:54

我在关注这贴, 很可能是我的窗加的不对, 再仔细琢磨下双窗apFFT的算法. 目的是在稳定信号下, 不同时刻能得到稳定结果.

ximeiji 发表于 2011-7-22 14:50

王老师您好!我在http://home.vibunion.com/blog-62061-17741.html
这里看到您的图1,我想把程序写出来,但是有两个问题:
1、(h)和(j)两个子图我画不出来,不知道怎么编写那个插值公式?
2、我本只想一次性显示3个点的频率、相位幅值,但是我的程序确实一次1个点,一次2个点,一次3个点这样显示,其实我想要的是最后一种,怎么避免前两种的出现呢?
下面是我的程序;
close all;clc;clear all;
N=128;
t=-N+1:N-1;
f=;
pha=;
A=;
y=1.0*cos(2*pi*t*9.5/N+200*pi/180)+0.6*cos(2*pi*t*29.3/N+200*pi/180)+0.2*cos(2*pi*t*49.1/N+200*pi/180);
y1 = y(N:2*N-1);%后N个输入数据
win =hanning(N)';;
win1 = win/sum(win);%窗归1
y11= y1.*win1;
y11_fft = fft(y11,N);
a1 = abs(y11_fft);%FFT振幅谱
p1 = mod(phase(y11_fft)*180/pi,360);%FFT相位谱
y2 = y(1:2*N-1);%2N-1个输入数据
%win =hanning(N)';;
winn =conv(win,win);%apFFT须要卷积窗
win2 = winn/sum(winn);%窗归1
y22= y2.*win2;
y222=y22(N:end)+;%构成长N的apFFT输入数据
y2_fft = fft(y222,N);;
a2 = abs(y2_fft);%apFFT振幅谱
p2= mod(phase(y2_fft)*180/pi,360);%apFFT相位谱
      ee=mod((p1-p2)/180/(1-1/N),1);%频率偏离校正值
      aa=(a1.^2)./a2*2;%振幅校正值
a11=a2./a1;
a12=a11.^2;
for i=1:3
aa2=(A(i)/N).*(sin(pi*ee)/sin(pi*ee/N)).*exp(pha(i)+N/(N-1)*pi*ee);
aa3=(A(i)/N^2).*(sin(pi*ee)/sin(pi*ee/N)).^2.*exp(pha(i));
end
subplot(5,2,1);stem(2*a1,'.');title('(a)FFT振幅谱');ylim();xlim();grid
subplot(5,2,2),stem(2*a2,'.');title('(b)apFFT振幅谱');ylim();xlim();grid
subplot(5,2,3);stem(p1,'.');title('(c)FFT 相位谱');ylim();xlim();grid
subplot(5,2,4),stem(p2,'.');title('(d)apFFT 相位谱');ylim();xlim();grid
subplot(5,2,5);stem(ee,'.');title('(e)校正频偏');ylim();xlim();grid
subplot(5,2,6);stem(aa,'.');title('(f)校正振幅1');ylim();xlim();grid
subplot(5,2,7);stem(a11,'.');title('(g)归一振幅谱');ylim();xlim();grid
subplot(5,2,8);stem(aa2,'.');title('(h)校正振幅2');ylim();xlim();grid
subplot(5,2,9);stem(a12,'.');title('(i)归一功率谱');ylim();xlim();grid
subplot(5,2,10);stem(aa3,'.');title('(j)校正振幅3');ylim();xlim();grid
for i=1:3
r(i)=round(f(i));
disp('频率校正值')
      fff(i)=floor(f(i))+ee(r(i)+1)
disp('振幅校正值')
      aaa(i)=aa(r(i)+1)
disp('初相位校正值')
      ppp(i)=p2(r(i)+1)
    end
程序改动的地方编的有点烂,还望老师不吝赐教,谢谢!

ximeiji 发表于 2011-7-22 14:51

还有我加了您的QQ号,但是您还没回应我的。。。。

liuxingwja 发表于 2012-8-2 18:16

受教了学习啦太专业了

xjzhendong 发表于 2012-11-29 18:15

王博士 杨老师 你们在2007年就开始讨论这个问题了,我现在才开始学习这个问题,嗯 受教了

blueseasky 发表于 2013-1-27 15:08

xjzhendong 发表于 2012-11-29 18:15 static/image/common/back.gif
王博士 杨老师 你们在2007年就开始讨论这个问题了,我现在才开始学习这个问题,嗯 受教了

我也刚接触这方面的知识,希望多交流,共同学习~~

十年木林森 发表于 2013-10-6 21:50

zhwang554 发表于 2007-5-26 11:18 static/image/common/back.gif
很高兴和你交流,
95224388是什么?



王老师,您好,我买了您写的《数字信号全相位谱分析与滤波技术》这本书,按照书上的程序,自己写了一个基于LabVIEW的测单频正弦波的初相的仿真程序,但结果不对啊,不知道您对LabVIEW编程语言熟悉不?当频率是频率分辨率的整数倍时,初相大致可以测准,但相位估计精度也不是很高啊;当频率不是频率分辨率的整数倍的时候,初相完全就测不准了。不知道怎么传附件

jinyi7016 发表于 2014-10-24 17:15

我的程序也存在跳变,估计是硬件的问题
页: 1 2 [3]
查看完整版本: 如何准确确定信号中强线谱的相位?