声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3193|回复: 10

[FFT] 利用FFT求简谐波频率幅值的问题

[复制链接]
发表于 2008-4-9 16:21 | 显示全部楼层 |阅读模式

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

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

x
假设有信号x=a0*sin(2*pi*f0*t)+a1*sin(2*pi*f1*t),我想把其中的a0.a1.f0.f1检测出来,我的想法是先利用最简单的FFT,再改善算法。但是FFT只有幅频图中的数据与设定值相差很大,看过论坛的一些帖子,感觉还是似懂非懂,仅仅是*2/N的问题吗?

[ 本帖最后由 无水1324 于 2008-7-11 21:23 编辑 ]

Untitled5.m

587 Bytes, 下载次数: 114

回复
分享到:

使用道具 举报

发表于 2008-4-9 17:37 | 显示全部楼层
看了楼主提供的程序,f1是f0的一倍,而幅值上要相差50db左右。要求出f0的幅值,可以有2种方法,一种是用窗函数,选择衰减较大的窗函数(现在用矩形窗,一个倍频程衰减6dB),所以很容易把f0淹没(或虚假的两者叠加在一起)而检不出正确的参数;另一种方法是对f1滤波,例如用自适应带陷滤波,对滤波后的信号检测f0的参数。

评分

1

查看全部评分

发表于 2008-4-9 17:46 | 显示全部楼层
还可以有一个方法,就是整周期采样,使f0=ndf、f1=mdf,df是FFT后的分辨率,n和m都为整数,即在分析中没有泄漏发生。
 楼主| 发表于 2008-4-10 18:11 | 显示全部楼层
谢谢!我需要检测出间谐波的幅值和频率, 整周期采样实现起来比较困难,加窗函数和插值应该能提高检测精度。
发表于 2008-7-6 20:32 | 显示全部楼层

用校正法求谐波频率幅值

要求频率,振幅必须要用校正法, 你的程序只作FFT幅频图不够,

这儿提供一个FFT和apFFT组合校正法程序, 可以校正相位,频率,振幅

对你提供的二个正弦波组成的信号, 运行结果:
频率校正值         fff1 =25                   fff2 =  50
振幅校正值      aaa1 =1.8598         aaa2 =   310
初相位校正值   ppp1 =360度           ppp2 =   360度


附校正程序
hann2.m (1.6 KB, 下载次数: 112)

[ 本帖最后由 zhwang554 于 2008-7-6 20:58 编辑 ]
发表于 2008-7-7 09:21 | 显示全部楼层
要对应上幅值肯定要注意归一化的问题,也就是你说的*2/N的问题。
发表于 2008-7-7 09:23 | 显示全部楼层
因为两个信号的幅值相差太大,肯定要滤掉大的一个,更利用检测小信号。

同时要想频率更接近一些,
可以加大数据长度,
或者像5楼说的,进行频率细化:可参考丁康教授的相关文献。
发表于 2008-7-11 21:26 | 显示全部楼层

回复 2楼 的帖子

呵呵,终于找到一个答案了。我原来有一个问题也可以用这个方法解决了。
发表于 2008-8-23 09:46 | 显示全部楼层
最好是用三角回归法
发表于 2008-12-29 19:25 | 显示全部楼层
fft的幅值与实测幅值相差较大,肯定需要校正,但具体应该怎么做,还是看看论坛中的相关帖子,最近我一直在关注。
发表于 2011-7-4 14:46 | 显示全部楼层
学习了,APfft应该可以
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-16 11:34 , Processed in 0.076936 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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