声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 8661|回复: 9

[FFT] 请求apFFT完整的算法,过程

[复制链接]
发表于 2008-5-8 15:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
请问apFFT对相位的计算帮助有多大,具体如何计算?
回复
分享到:

使用道具 举报

发表于 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
发表于 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)+[0 y22(1:N-1)];
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 编辑 ]

评分

1

查看全部评分

 楼主| 发表于 2008-5-22 14:32 | 显示全部楼层

谢谢~!

好感谢您的解答,我还在继续的学习中,有问题我会继续请教~!:@)
发表于 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相位谱正确显示. 不用校正.
apfft1.jpg


[ 本帖最后由 zhwang554 于 2008-7-17 11:01 编辑 ]
发表于 2010-9-24 20:16 | 显示全部楼层
谢谢了 收获很大
发表于 2012-12-18 16:00 | 显示全部楼层
请问,怎么就能知道 apFFT的对数振幅谱泄漏比FFT小一倍呢?而且,
发表于 2014-9-27 23:21 | 显示全部楼层
呜呜,看不到附件,刚来论坛,伤不起啊
发表于 2015-3-31 08:54 | 显示全部楼层
努力学习中了
发表于 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个点
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-27 19:09 , Processed in 0.098306 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表