声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 7070|回复: 34

[FFT] 讨论:丁康写的有关频率细化文章中的问题,俺有些疑问

[复制链接]
发表于 2006-8-16 18:06 | 显示全部楼层 |阅读模式

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

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

x
前几天在论坛上下了一个有关zoomfft的程序,是参照丁康的文章写的,但是我看了一下文章,觉得文中有些疑问:
文中公式:hr(k)=sin(w0*k)*cos(we*k)/(pi*k)
                    hi(k)=sin(w0*k)*sin(we*k)/(pi*k)
然后把w0,we的往里面带,得到:
                    hr(k)=(sin(w1*k)-sin(w2*k))/(pi*k)
                    hi(k)=(cos(w1*k)-sin(w2*k))/(pi*k)
但是我算了之后,觉得应该是:
                    hr(k)=(sin(w2*k)-sin(w1*k))/(2*pi*k)
                    hi(k)=(cos(w1*k)-cos(w2*k))/(2*pi*k)
不知道怎么回事,我参考的是《基于复解析带通滤波器的复调制细化普分析原理和方法》;
                                                    《基于复解析带通滤波器的复调制细化普分析的算法研究》;
                                                    《复解析带通滤波器及其在解调分析中的应用》
而且三篇文中的公式有些差异
有没有大虾知道,能够指点一下,谢谢
回复
分享到:

使用道具 举报

发表于 2006-8-16 18:59 | 显示全部楼层
你算的没错.
 楼主| 发表于 2006-8-16 19:34 | 显示全部楼层
yangzj,那你写的程序是不是有点错误,我试了一下运行不了,
发表于 2006-8-16 19:57 | 显示全部楼层
我刚测试过了,没错哦.你那是提示什么错误呢?
上面的公式的确有问题,但你要再考虑下做卷积是要先反转的
 楼主| 发表于 2006-8-16 20:43 | 显示全部楼层
我这提示:xrz(k)=x(kk+1)*hr(1)+sum(hr(2:M+1).*(x(kk+2:kk+M+1)+x(kk:-1:kk-M+1)));这一句超过矩阵界限
那你测试的结果对吗,
 楼主| 发表于 2006-8-16 20:55 | 显示全部楼层
在给zoomfft传参数的时候,其中x的长度与谱分析点数N是不是不是一回事
 楼主| 发表于 2006-8-16 21:28 | 显示全部楼层
yangzj,你的程序当数据长度与普分析点数相等时就出错了,不能真正达到D倍的细化倍数
发表于 2006-8-16 21:34 | 显示全部楼层
我测试的没有错.
N就是谱分析点数,你数据的长度得至少有D*N+2*M
 楼主| 发表于 2006-8-16 21:57 | 显示全部楼层
当N=数据长度时,分析的分辨率才能提高D倍
但是如果数据长度为D*N+2*M,这时候只有M=0,D=1才符合要求,这好像不符合ZFFT本意
发表于 2006-8-17 09:14 | 显示全部楼层
N不是数据的长度,而是做谱时候的点数
要提高分辨率,就只有增加处理的数据长度,ZFFT本质就是通过带通滤波形成一个窄带信号,因此就可以降低采样频率为1/D,从而可以保证做N点的谱分析就可以得到高的频率分辨率.而直接做FFT要想得到相同分辨率的话就得做N*D的谱分析,这么长的FFT通常是不可能的.
 楼主| 发表于 2006-8-17 10:05 | 显示全部楼层
zfft的分辨率是fs/D/N,FTT的分辨率是fs/Q,当D*N=Q时,两者的分辨率才能一样,也就是说即使我细化10倍,实际上也不一定能提高分辨率,是吗?
 楼主| 发表于 2006-8-17 12:11 | 显示全部楼层
我很不理解,
如果做zfft需要N点数据的话,这时候原始数据得有至少D*N+2*M,那么我用这些原始数据直接作FFT,分辨率不是更高吗?
发表于 2006-8-17 14:34 | 显示全部楼层
原帖由 yangzj 于 2006-8-17 09:14 发表
N不是数据的长度,而是做谱时候的点数
要提高分辨率,就只有增加处理的数据长度,ZFFT本质就是通过带通滤波形成一个窄带信号,因此就可以降低采样频率为1/D,从而可以保证做N点的谱分析就可以得到高的频率分辨率.而直 ...

我并没有看过丁康频率细化的文章,但对于一般的ZoomFF来说,数据长度至少要N*D。因此基本同意yangj所说。一般的ZoomFFT要经过复频调制、滤波、下采样(1:D),再进行N点的FFT变换。从下采样和N点FFT变换可看到,为了得到N点,在下采样之前不是要有N*D个数据样点。实际上直接把N*D个数据样点作FFT得到与ZFFT一样的分辨率,但在资源消耗上是否一样呢?
 楼主| 发表于 2006-8-17 16:41 | 显示全部楼层
如果像songzy41所说仅仅是耗费资源上的差别,那么zfft就失去了本身的意义了

顺便再请教yangzj一个问题:在丁康的文章中,抽取数据为什么要从M,D+M,2D+M......开始呢,不加M可不可以?
发表于 2006-8-17 18:53 | 显示全部楼层
liuhuanjun不妨去看一下贴子:

http://forum.vibunion.com/thread-22068-1-1.html

原数据长512,N=512,D=10,这样无法作ZFFT分析,把数据增长到5120后便能运行了。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-30 08:00 , Processed in 0.064322 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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