coolmyf 发表于 2007-7-10 00:12

关于傅立叶变换的疑问

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

VibrationMaster 发表于 2007-7-10 07:06

对的

coolmyf 发表于 2007-7-10 11:31

但是我感觉用Mathematica算出来的值乘以 0.01并不对,不知道是怎么回事?

VibrationMaster 发表于 2007-7-10 14:18

一般FFT出来的结果都要乘dt,或T

coolmyf 发表于 2007-7-11 00:23

我还有一个疑问,只是做一个试验,想证实一下我的想法对不对。
我用Mathematica进行计算,时域采用函数f(x)=Sin(x),对其进行离散傅立叶变换,我想既然对其进行傅立叶变换的话应该就是找出由哪些简谐波组成的,并找出其对应的频率。因为原f(x)就是一个简谐波,周其为2Pi,圆频率为1,振幅为1,那么傅立叶的变换结果就应该是只有一个结果其值虚部非零,其对应的周期为2Pi,圆频率为1,幅值为1。

在Mathematica中我取了128个点,

x=Table,{i,0,127}];
y=Fourier

由于Mathematica中的Fourier函数是在求和公式的结果下除以了点数的平方根,这里是128的平方根,因此结果中是圆频率为1的值虚部为
5.6568542,我将其乘以128的平方根则为64,也就是求和公式的结果。那么乘以我的步长,2Pi/128,就是幅值了,为什么结果是Pi,而不是我原先Sin(x)中的1?是不是我的理解有什么错误?请高人指点。

coolmyf 发表于 2007-7-11 10:47

没人回答吗?自己顶!

zhangnan3509 发表于 2007-7-11 10:58

回复 #6 coolmyf 的帖子

请把你的程序贴上来,这样观察更直接

coolmyf 发表于 2007-7-11 11:22

我觉得上面的描述还是比较清楚的啊。

coolmyf 发表于 2007-7-11 12:18

我在论坛里查到,傅立叶变换后的值 取绝对值除以 N/2就是幅值,在Matlab里好象是 abs(fft(x))/(N/2) ,请问这是根据什么原理得出的?

coolmyf 发表于 2007-7-11 12:56

自己在论坛里查到答案了,变换后的幅值放大了AN/2倍,所以要除以N/2.
页: [1]
查看完整版本: 关于傅立叶变换的疑问