请教王兆华教授一个关于apFFT时移相位差法的问题
王教授您好,我看过你的“全相位比值法和Hann窗生成公式”帖子中的程序close all;clc;clear all;N=1024;t=-N+1:N*2-1; f1=39.3;A1=1;ph1=60;s=1*cos(1*(2*pi*t*f1/N+ph1*pi/180));win=sin(pi*(1/2:N-1/2)/N).^2;win2=conv(win,win);win2=win2/sum(win2);w=pi*2;s1=s(1:2*N-1);y1=s1.*win2;y1a=y1(N:end)+;Out1=fft(y1a,N);a1=abs(Out1);p1=mod(phase(Out1),2*pi);s2=s(1+N:3*N-1);y2=s2.*win2;y2a=y2(N:end)+;Out2=fft(y2a,N);a2=abs(Out2);p2=mod(phase(Out2),2*pi);g=mod((p2-p1)/pi/2,1);h=2*(1-g.*g)./sinc(g); aaa=abs((h.^2).*a1)/2;rr=round(f1);fff=floor(f1)+g(rr+1)aaa=aaa(floor(f1)+1)ppp=p1(rr+1)*180/pi
中校正精度可达10-12次方,其中是对于单频的校正。使用单频时,使用angle()替代phase()也行。我的疑问是:假如信号中有多个频率成分能使用angle()替代angle()么我知道phase() = upwrap(angel()),使得相位角平滑一些。
unwrap使得相位角相差大于2*pi时,会+ 或 - n*2*pi个弧度 _eason 发表于 2012-10-15 13:27 static/image/common/back.gif
unwrap使得相位角相差大于2*pi时,会+ 或 - n*2*pi个弧度
重贴:
所谓“全相位”,纯粹是个臆想!
从黄翔东的博士论文《全相位数字信号处理》可以看出,他的本科《数字信号处理》课程没有学明白,特别是关于傅立叶谱分析这一节,概念模糊,自以为是。
“全相位”纯碎是他们的臆想。他们用“全相位”处理一段2N-1点长的数据的频谱结果去与N点长的FFT结果做对比,然后就宣布自己的“全相位”好。这是一个非常幼稚的概念错误!
建议楼主不要在这个错误的概念上再浪费时间了。
至于这个“全相位”为什么是个臆想,请楼主回头去学习本科的《数字信号处理教程》。当然,下面这本英文书也讲得通俗易懂:
书名:Understanding Digital Signal Processing
作者:Richard G. Lyons
相关章节:3.8 DFT Leakage
dsp2008 发表于 2012-10-15 18:58 static/image/common/back.gif
重贴:
所谓“全相位”,纯粹是个臆想!
你这段话,我早就看过啦,还没做深入研究。不过我曾看到王兆华教授说过使用2*N-1点数据做全相位比2*N-1点数据做FFT效果好,这样的话就是同样的采样率和同样的点数就说明"全相位"好。具体的帖子是这个"离散频谱校正"(yangzj的帖子),14楼和18楼。谢谢你的关注和推荐的书,
呵呵,经验证,两个不同,即使单频情况下,也不同, mod(phase(Out1),2*pi)与mod(angle(Out1),2*pi)之差是10-14次方量级的,对于弧度来说区别也不怎么大 _eason 发表于 2012-10-16 08:40 static/image/common/back.gif
你这段话,我早就看过啦,还没做深入研究。不过我曾看到王兆华教授说过使用2*N-1点数据做全相位比2*N-1点 ...
您有完全的信仰自由!
我很理解。
{:{20}:}
页:
[1]