声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1672|回复: 9

[FFT] 关于傅立叶变换的疑问

[复制链接]
发表于 2007-7-10 00:12 | 显示全部楼层 |阅读模式

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

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

x
加速度时程转换成加速度谱时,采用离散的傅立叶变换。
比如,我的加速度时程时长为10.24秒,时间间隔为0.01,那么总计有1024个点的数据。按公式推导的话,离散的傅立叶变换应该是求和公式再乘以时间间隔,但是我查到的一些关于傅立叶变换的程序(Mathematica或者一些C程序)并没有乘以时间间隔0.01秒这一步,那么这些程序算出来的值是对应的加速度谱吗?
或者说,通过程度算出来的数据,我需要再手工乘以一个0.01再作为反应谱的值吗?
请高手解答一下,谢谢!
回复
分享到:

使用道具 举报

发表于 2007-7-10 07:06 | 显示全部楼层
对的
 楼主| 发表于 2007-7-10 11:31 | 显示全部楼层
但是我感觉用Mathematica算出来的值乘以 0.01并不对,不知道是怎么回事?
发表于 2007-7-10 14:18 | 显示全部楼层
一般FFT出来的结果都要乘dt,或T
 楼主| 发表于 2007-7-11 00:23 | 显示全部楼层
我还有一个疑问,只是做一个试验,想证实一下我的想法对不对。
我用Mathematica进行计算,时域采用函数f(x)=Sin(x),对其进行离散傅立叶变换,我想既然对其进行傅立叶变换的话应该就是找出由哪些简谐波组成的,并找出其对应的频率。因为原f(x)就是一个简谐波,周其为2Pi,圆频率为1,振幅为1,那么傅立叶的变换结果就应该是只有一个结果其值虚部非零,其对应的周期为2Pi,圆频率为1,幅值为1。

在Mathematica中我取了128个点,

  x=Table[Sin[2*Pi*i/128],{i,0,127}];
  y=Fourier[x]

由于Mathematica中的Fourier函数是在求和公式的结果下除以了点数的平方根,这里是128的平方根,因此结果中是圆频率为1的值虚部为
5.6568542,我将其乘以128的平方根则为64,也就是求和公式的结果。那么乘以我的步长,2Pi/128,就是幅值了,为什么结果是Pi,而不是我原先Sin(x)中的1?是不是我的理解有什么错误?请高人指点。
 楼主| 发表于 2007-7-11 10:47 | 显示全部楼层
没人回答吗?自己顶!
发表于 2007-7-11 10:58 | 显示全部楼层

回复 #6 coolmyf 的帖子

请把你的程序贴上来,这样观察更直接
 楼主| 发表于 2007-7-11 11:22 | 显示全部楼层
我觉得上面的描述还是比较清楚的啊。
 楼主| 发表于 2007-7-11 12:18 | 显示全部楼层
我在论坛里查到,傅立叶变换后的值 取绝对值除以 N/2就是幅值,在Matlab里好象是 abs(fft(x))/(N/2) ,请问这是根据什么原理得出的?
 楼主| 发表于 2007-7-11 12:56 | 显示全部楼层
自己在论坛里查到答案了,变换后的幅值放大了AN/2倍,所以要除以N/2.

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-9-22 21:34 , Processed in 0.072919 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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