xieniuniu 发表于 2008-5-8 15:13

请求apFFT完整的算法,过程

请问apFFT对相位的计算帮助有多大,具体如何计算?

zhwang554 发表于 2008-5-16 07:57

“如何准确确定信号中强线谱的相位?”的帖子为:
http://forum.vibunion.com/forum/thread-41548-1-1.html
“请教全相位谱分析问题”的帖子为:
http://forum.vibunion.com/forum/thread-41727-1-1.html

zhwang554 发表于 2008-5-21 15:56

apFFT相位测量法

对频率49.2,初相位100度余弦信号,你取N个样点,作FFT分析

N=128;
t=0:N-1;
y=cos(2*pi*t*49.2/N+100*pi/180);
y1 = y(1:N);
win =hanning(N)';;
win1 = win/sum(win);
y11= y1.*win1;
y11_fft = fft(y11,N);
y1_amplitude = abs(y11_fft);
y1_phase = phase(y11_fft);
subplot(4,1,1),stem(y1_amplitude,'.');title('FFT振幅谱')
subplot(4,1,2),stem(y1_phase,'.');title('FFT相位谱')

你也可以取2N-1个样点,作全相位FFT分析,
全相位FFT分析的matlab程序如下

t=-N+1:N-1;
y=cos(2*pi*t*49.2/N+100*pi/180);
y2 = y(1:2*N-1);
win =hanning(N)';;
winn =conv(win,win);
win2 = winn/sum(winn);
y22= y2.*win2;
y222=y22(N:end)+;
y2_fft = fft(y222,N);
y2_amplitude = abs(y2_fft);
y2_phase = phase(y2_fft);
subplot(4,1,3),stem(y2_amplitude,'.');title('apFFT振幅谱')
subplot(4,1,4),stem(y2_phase,'.');title('apFFT相位谱')

('FFT相位测量值')
p1=mod(y1_phase (50)*180/pi,360)
('FFT相位校正值')
p11=mod(y1_phase (50)*180/pi-(49.2-49)*180*(1-1/N),360)
('apFFT相位测量值')
p2=mod(y2_phase (50)*180/pi,360)


程序运行结果是

FFT相位测量值
p1 =135.718699628317
ans =
FFT相位校正值
p11 =99.9999496283172
ans =
apFFT相位测量值
p2 =100.000000000029

FFT测的是N个样点的第1点相位,在本例中是t=0时的相位,即初相位,但测值为135.718699628317,不是100,有频偏时(采样频率不是被测频率整数倍),需校正得99.9999496283172,所以须将49.2频率测出,可以用任何一种离散频谱校正法测出49.2(这也会带来误差)

apFFT测的是2N-1个样点的中间点相位,在本例中是t=0时的相位,即初相位(注意apFFT时,t=-N+1:N-1),测值为100.000000000029,有频偏时不需校正,

apFFT的泄偏是FFT的平方,所以在多频时,互相干扰小,cos信号有二条谱线有互相干扰,但全相位干扰小测得更准(比FFT校正后)

[ 本帖最后由 zhwang554 于 2008-5-21 17:10 编辑 ]

xieniuniu 发表于 2008-5-22 14:32

谢谢~!

好感谢您的解答,我还在继续的学习中,有问题我会继续请教~!:@)

zhwang554 发表于 2008-7-17 08:47

FFT和apFFT频谱图比较实例 (回复楼主)

为了直观, 给一个图示实例: 二个余弦信号(一个大信号振幅1, 频率20.4,, 初相位45度, 另一个小信号振幅0.001, 频率28.2, 初相位90度)
cos(w*t*(20.4)/N+pi/4)+0.001*cos(w*t*(28.2)/N+pi/2)
用3楼的程序, 上述信号N=128阶hanning窗时的FFT 和apFFT的对数振幅谱和相位谱如下图, 可见
   apFFT的对数振幅谱泄漏比FFT小一倍, 振幅0.001的28.2赫小信号在FFT中已被频率20.4赫大信号的泄漏掩没,显示不出来,而在apFFT中清晰可见,
   二个信号初相位45度和90度在FFT的相位谱中均不正确, 须校正, 而apFFT相位谱正确显示. 不用校正.

[ 本帖最后由 zhwang554 于 2008-7-17 11:01 编辑 ]

xidian05 发表于 2010-9-24 20:16

谢谢了 收获很大

xjzhendong 发表于 2012-12-18 16:00

请问,怎么就能知道 apFFT的对数振幅谱泄漏比FFT小一倍呢?而且,

dlldz 发表于 2014-9-27 23:21

呜呜,看不到附件,刚来论坛,伤不起啊

jinyi7016 发表于 2015-3-31 08:54

努力学习中了

wuzhikai 发表于 2018-4-13 17:09

zhwang554 发表于 2008-5-21 15:56
对频率49.2,初相位100度余弦信号,你取N个样点,作FFT分析

N=128;


您好,我想问下p2=mod(y2_phase (50)*180/pi,360)
式中为什么带第50个点
页: [1]
查看完整版本: 请求apFFT完整的算法,过程