声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2582|回复: 9

[FFT] FFT 的问题

[复制链接]
发表于 2006-12-22 11:41 | 显示全部楼层 |阅读模式

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

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

x
我在网上下载了一个FFT.dll,然后用delphi调用这个FFT的动态链接库,然后划出图形,结果,我发现很多参数不知道怎么得到!
程序返回的结果是幅值,幅角,实部,虚部,画图的时候,要求是基于频率的一个幅值普和相位普!
我想搞清楚的问题是:
1、频率(画图时候的X轴)怎么确定?是不是可以通过幅值,幅角,实部,虚部可以确定频率!(当然信号的采样频率是已知的)
2、返回的幅角是不是就是相位,如果是,我发现不对,和90度180度相差很大,都是-2到2的数值!
请教各位高手!谢谢!
回复
分享到:

使用道具 举报

 楼主| 发表于 2006-12-22 11:55 | 显示全部楼层

补充

比如我的信号采用频率是100HZ,采样点1024点,如何确定频率(画幅值普和相位普时候的X轴)?
发表于 2006-12-22 14:45 | 显示全部楼层
频率fs=100HZ,采样点N=1024,用N点进行FFT后,最高的谱频率是fs/2=50,从0~50共有513根谱线,每根谱线对应的频率是F(k)=k*df=k*fs/N; k=0~512。
 楼主| 发表于 2006-12-25 15:56 | 显示全部楼层

相位的问题

谢谢songzy41!频率的问题解决了!
相位确定有问题~
我得到的相位的值都在-1到1左右,与实际结果不相符合~
我用的方法是:arctan(虚部/实部)
发表于 2006-12-25 20:55 | 显示全部楼层
arctan得到的相位是(-π/2,π/2)的值,不知道你的所谓实际结果是什么结果??
发表于 2006-12-26 08:52 | 显示全部楼层
对楼主使用的FFT.dll不了解,又在delphi中使用,很难说出什么原因。在调用arctan可能有几个函数(在MATLAB中就有几个),有的结果在-π/2~π/2之间;有的在-π~π之间;也有在0~2π之间。故请楼主了解一下调用的函数。
发表于 2011-6-8 17:17 | 显示全部楼层
回复 3 # songzy41 的帖子

matlab里面有没有设置谱线的函数呢?
发表于 2011-6-8 19:49 | 显示全部楼层
回复 7 # lq271311 的帖子

在Matlab里设置了采样长度,比如1024点,FFT以后,谱线数为512,取有效谱线数400线。
发表于 2011-6-8 21:18 | 显示全部楼层
回复 8 # hcharlie 的帖子

我就是这一点卡住了。
为什么fft之后谱线数是512呢?
不是应该有1024个数吗?
取有效谱线数是截取吗?后面的舍了?
发表于 2011-6-9 06:41 | 显示全部楼层
回复 9 # lq271311 的帖子

1024个数里面有一半是共扼对称的.
在随机振动试验中,如果采集一帧数据点1024点,经过FFT以后可以得到512个频率点的数据,为什么通常取400谱线而不取512线呢?
这是为了抗混滤波的需要。
我们知道实际滤波器带外衰减有一定的斜率,比如100dB/Oct,算是比较高的了,我们定最高频率2000Hz在400谱线上,则第512线为 2560Hz,根据镜像原理,只有624线及以上频率的数据才可能反射到400线以内,这样我们如将401-512谱线的数据扔掉,512~623线反射过来的数据也被扔掉了,相当于上例中2000~3120Hz(正好是滤波器的过渡段)的数据被扔掉,3120Hz以上频率的信号基本上已经被滤干净,反射到有用的数据段微乎其微了。
所以常用的400谱线相当于1024个采样,800线相当于2048点等等。采样频率是最高频率的2.56倍,对应2000Hz试验为5120Hz。
也可以不取2.56倍,有些早期的控制仪取到4倍,比如试验频率2560,采集频率10240,1024点取256线,这样对滤波器的要求要降低些。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-27 11:39 , Processed in 0.085885 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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