Galaxy163 发表于 2007-8-3 08:42

回复 #14 hcharlie 的帖子

我不这么认为的。
虽然说计算出来以后400线后的很多数据都不大用,但是要保证信息完整,就应该包括0和Fs/2的数据。
也就是有513点。

Galaxy163 发表于 2007-8-3 08:51

本帖最后由 wdhd 于 2016-4-26 16:55 编辑

原帖由 monkeybanana 于 2007-8-2 17:34 发表
谢谢指点。
要是这样的话,如果我的测试范围是0-fs/4,那么谱线数应该算是200谱线还是400谱线呢?
你如果依据Fs进行采样,采样点数1024的话,你获得的整个有效频带的谱线数是400线,你关心的有257线。
因为在的频率范围内,全是有效谱线。所以不能根据400线/2获得。
而在(fs/4,fs/2]的范围内,fs/2.56以上的频率范围内包含的都是试验中无用的谱线。
因此,这一段的有效谱线很少,相当于400-257。

hcharlie 发表于 2007-8-3 11:21

本帖最后由 wdhd 于 2016-4-26 16:56 编辑

原帖由 Galaxy163 于 2007-8-3 08:42 发表
我不这么认为的。
虽然说计算出来以后400线后的很多数据都不大用,但是要保证信息完整,就应该包括0和Fs/2的数据。
也就是有513点。
不包括fs/2这一点。

[ 本帖最后由 hcharlie 于 2009-4-26 07:44 编辑 ]

Galaxy163 发表于 2007-8-3 12:03

本帖最后由 wdhd 于 2016-4-26 16:56 编辑

原帖由 hcharlie 于 2007-8-3 11:21 发表

绝对不包括fs/2这一点。
请你查查有关的书再发表意见!请指出哪本书上说过1024点实数FFT以后能得到513对数据?
呵呵。
我没有说1024点实数FFT计算以后得到的是513对数据。:)
1024点实数FFT计算后应该得到的是1024点复数数据。
对于实数FFT,得到的这1024点复数数据,除了0和N/2点是实数外,其他都是共轭对称的,所以,我们只需要计算出前513点就可以保存原数据的所有信息,你只保存512点,其实是丢失了原数据的部分信息而已。如果做IFFT,你是恢复不了原始数据的。这也就是为什么要保存513点数据的原因。

hcharlie 发表于 2007-8-3 14:31

你说的是将1024个实数虚部加0变成1024个复数,再求1024点复数的FFT,现在有谁还用这种工作量加大了一倍的算法呢?

Galaxy163 发表于 2007-8-3 15:07

本帖最后由 wdhd 于 2016-4-26 16:56 编辑

原帖由 hcharlie 于 2007-8-3 14:31 发表
你说的是将1024个实数虚部加0变成1024个复数,再求1024点复数的FFT,现在有谁还用这种工作量加大了一倍的算法呢?
老兄,我并没有说我的具体实现过程是虚部加0变成复数,再求1024点复数的FFT。
我说的是1024点实数的FFT变换应该得到1024点的复数,这只是原理啊。
我不知道你是怎么折腾出是我说的了。

hcharlie 发表于 2007-8-3 17:40

你的算法,存储器多用一倍,运算时间多一倍,算出有一半的(共扼复数)多余数据,也就是现在计算机速度和存储器都不是问题了,在早20几年前差别可就大了。

wanyeqing2003 发表于 2007-8-3 17:48

分辨率应该根据随机振动信号的特性和数据处理的要求来定。

根据采样定律,采样频率应该为截止频率两倍以上。

Galaxy163 发表于 2007-8-3 19:45

本帖最后由 wdhd 于 2016-4-26 16:56 编辑

原帖由 hcharlie 于 2007-8-3 17:40 发表
你的算法,存储器多用一倍,运算时间多一倍,算出有一半的(共扼复数)多余数据,也就是现在计算机速度和存储器都不是问题了,在早20几年前差别可就大了。
哎,老兄!我都和你说过了,我说的是基本原理。
我从来没有说过我具体的实现过程,你又是从哪儿判断出我采用了什么算法?存储器如何会多用一倍,运算时间多一倍的呢?

我知道你说的是实数FFT的优化运算,比如1024点的实数FFT运算,可以通过512点的复数FFT来实现。
我具体的实现过程就是基于这种方法的,并且在这个方法上还根据我们的需要,做了更多优化以及扩展。
难道你还有比这个方法更优的算法吗?非常希望你能介绍一下!

hcharlie 发表于 2007-8-4 07:27

从原理上讲,1024个实数在FFT以后得到的1024个复数中的第512条谱线是不完整的,因为它只能算得实部,虚部算不出始终为0,所以在实数FFT中只有0-511谱线了。(512谱线数据信息被保存在0谱线中,以便数据可以还原。)

[ 本帖最后由 hcharlie 于 2007-8-4 09:03 编辑 ]

Galaxy163 发表于 2007-8-4 09:53

本帖最后由 wdhd 于 2016-4-26 16:56 编辑

原帖由 hcharlie 于 2007-8-4 07:27 发表
从原理上讲,1024个实数在FFT以后得到的1024个复数中的第512条谱线是不完整的,因为它只能算得实部,虚部算不出始终为0,所以在实数FFT中只有0-511谱线了。(512谱线数据信息被保存在0谱线中,以便数据可以还原。)
举个例吧,按照你的说法,我有一个4点的数据x,经过fft变换y=fft(x),y应该是4点的复数数据。
如果只保留0~1点,则y'=。
能否给我介绍一下,你如何根据这两点还原原始时域数据?
谢谢!

Galaxy163 发表于 2007-8-4 09:57

我的原始数据是x=;y=。

monkeybanana 发表于 2007-8-4 12:04

回复 #15 hcharlie 的帖子

谢谢指点

monkeybanana 发表于 2007-8-4 12:06

回复 #17 Galaxy163 的帖子

哦,是这样,谢谢

hcharlie 发表于 2007-8-4 14:30

x=,My y=
我说过,0谱线中包含有fs/2实部的信息.
页: 1 [2] 3
查看完整版本: 指各位高手指点一下, 随机振动中频率分辨率的选择?