请教ZOOM FFT的一些细节问题
各位大牛,小弟正在用DSP实现ZOOM FFT,有些原理上的东西不太明白,还望各位指教。首先,我确定了要选择的频段,比如第15~17根谱线吧,根据定义,要对该频段进行滤波和搬移,如果我只是把第15~17根谱线搬移到原点,其余谱线做清零处理,(也就是给第15~17根谱线加矩形窗),这样做可以么,对结果会有影响么?
其次,滤波完成之后,做IFFT,然后要进行重采样,比如原来我是1024点FFT,现在细化128倍,也就是每128个点取一个,这样整个序列我只有8个点,下一步我应该把序列补零到1024个点,做1024点FFT呢?还是说把IFFT的结果不停的延拓,不停的每128个点取一个,直到取了1024个点,再做1024点FFT呢?或者做8点FFT?
多谢各位指点,俺给你们鞠躬了
[ 本帖最后由 nemo218 于 2007-7-16 21:53 编辑 ]
回复 #1 nemo218 的帖子
从时域做会更好些,时域上直接降采样."比如原来我是1024点FFT,现在细化128倍,也就是每128个点取一个,这样整个序列我只有8个点,下一步我应该把序列补零到1024个点,做1024点FFT呢?还是说把IFFT的结果不停的延拓,不停的每128个点取一个,直到取了1024个点,再做1024点FFT呢?或者做8点FFT?"肯定是不妥的.其中,方案一使得信号太短,频率谱被展宽;方案二,ifft结果不断延拓会引起跳变,引入意料之外的频率. 我的意思就是时域降采样,但是降了之后,点数不够1024点啊,怎么凑够1024点呢?请各位提出一个可行的方案,谢谢 补零(padding zero) 数据样点要1024*D,D为ZOOM的放大倍数。看一下http://forum.vibunion.com/forum/thread-23569-1-1.html。
回复 #3 nemo218 的帖子
是对整个时间序列进行降采样,而不是分段之后的1024点。 那比如我真要细化128倍,数据长度不是要1024*128个点么?天哪还有,如果是对整个时间序列降采样,那一开始的1024点FFT不也只是对数据的前1024点进行的FFT么?后面经过滤波和反变换之后再降采样的数据也只有前面8个是经过处理的啊,剩下的怎么办那?难道我应该分128次,每次1024点FFT,滤波,反变换,然后每次的8个数据最后凑出1024点,最后FFT么?谢谢各位 本帖最后由 wdhd 于 2016-6-3 11:11 编辑
原帖由 nemo218 于 2007-7-17 14:38 发表
那比如我真要细化128倍,数据长度不是要1024*128个点么?天哪
还有,如果是对整个时间序列降采样,那一开始的1024点FFT不也只是对数据的前1024点进行的FFT么?后面经过滤波和反变换之后再降采样的数据也只有前 ...
数据长度就是要1024*128点,不要用ifft来滤波,从时域上用卷积来滤波。 哦,是这样啊,原来我的理解有误,只想着在频域滤波方便,却忽略了这个问题,看来算法实现上要改动一下了,谢谢yangzj! 不过这么一说,ZOOM FFT也有不足之处了,数据要超长才行啊?真的没有办法像我说的那样,在频域上做了呗?:lol zoom fft的原理简单来说就是把一段频率通过移频移到低频,再进行低通滤波后做FFT分析。
那么滤波后的信号其实是一个很低的低频信号(细化倍数越大,频率越低),而要分析低频信号的话当然在时域上就得采足够长(至少得一个周期吧)。 ZOOM-FFT需要存放中间数据的内存空间巨大,限制了最大的细化倍数。没得办法呀 我先看看,我正在研究这个 回复 nemo218 的帖子
我跟楼主有同样的问题,现在明白了~ 学知识了
页:
[1]
2