关于fft补零提高频率分辨率的讨论_第1页
关于fft补零提高频率分辨率的讨论_第2页
关于fft补零提高频率分辨率的讨论_第3页
关于fft补零提高频率分辨率的讨论_第4页
关于fft补零提高频率分辨率的讨论_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、关于fft补零提高频率分辨率的讨论这是一篇值得讨论的问题,作者认为补零fft可以提高频率分辨率,并给出了试验结果,可以看出确实提高了对频率细节的观察能力,本人可以肯定这个试验是真实的试验。但是所有的数字信号教课书上都认为补零fft并不能提高频率分辨率,是不是有矛盾?1 从分析角度, 设fs为采样频率,fft长度为N, 那么频率分辨率为fs/N, 如果N增加那么频率分辨率增加。这是下面一篇文章的用的论据。2 从另一角度,设fs为采样频率,fft长度为N, 则频率分辨率为fs/N, 我们引进另一个概念:时间长度DT(duration of time), 可以看出DT = 1/频率分辨率. 

2、;     则频率分辨率=1/DT 。从这一角度看只要DT不变,频率分辨率就不会变。因此尽管补零或插值,都不会提高分辨率。这是所有目前信号处理教科书的观点,但这些教科书都没有给出原因,不知道为什么,我发现这个问题是曾经找过不少教科书,没有一本给出原因,问老师也答的含糊不清。后来我反复考虑,感觉应该如此解释,如若有意见,欢迎讨论。为什么两个角度看竟然矛盾?同样一个问题为什么有不同的解释从1 我们看出,增加的值全为零,不是原信号内容,这就造成了特殊性,我们的信号变了不是原来信号了!而是新的补零信号的周期延拓。但是可以证明两个信号在对应点上的频谱值相同(直接利

3、用定义即可推出)。至于补零后其它多点处的频谱是否是原信号的内容,这是问题的关键。事实上,用于实用的方法不是下文里提到的方法,而是利用采样数据抽取,降低采样频率的方法来实现。因为数据长度一般在使用时都是最大长度,尤其是这种应用,肯定已经采用最大数据处理长度,不用问的。我有一个试验,是多年前和一位同学讨论此类问题的试验,有兴趣的不妨试试.% 用于检验补零FFT是否提高分辨率% 结论: 1。 补零fft提高分辨率是指信号加窗后的合成信号的分辨率。%     这种情况下fft可以帮助分辨真实的峰值,但分辨率你可以计算一下应该改是不变的。  &

4、#160; %           2。 如果信号=加窗后的合成信号   提高分辨率,如果加入点为真实的数据,当然提高分辨率。   %           4。 提高分辨细节的本质是由于窗的展宽,窗分辨细节率的提高引起的。这是一个用大窗观 察含有小窗信号的小窗的过程。补零而看到的频率细节不是信号本身的细节,而是窗的细节。  clear;N

5、fft=16;span=0:Nfft-1;omga=1:3*pi/8;x=exp(j*omga(1)*span)+exp(j*omga(2)*span)+exp(j*omga(3)*span);stem(pi/Nfft*0:Nfft-1,abs(fft(x,Nfft),'r'); figure(2);stem(pi/Nfft/2*0:Nfft*2-1,abs(fft(x,Nfft*2),'b'); figure(3);stem(pi/Nfft/16*0:Nfft*16-1,abs(fft(x,Nfft*16),'g'); 原文连接:http:/w

6、ww.ed-原文简介:采用C语言程序处理FFT算法无能为力的扩大频谱的问题如果你只是对计算小频率范围上的频谱有兴趣,那HRFT可能比FFT更有效。频率范围越窄,HRFT的吸引力就越大。当必须利用有限的存储资源在嵌入式系统中执行运算时,这一点尤为明显。许多科学和工程应用都要求信号准确的频谱或傅立叶变换。式1以无量纲形式(dimensionless form)给出,其中 = T,T是采样间隔,qn = q(nT),代表信号q(t)的第n次采样。该式也假设信号为有限长序列,故总共仅有N 个连续采用点。Q()是连续变量的周期函数,周期为2e。常规求解方法是在区间 = 0, 2e内的N个均匀间隔点上计算

7、Q()的值。这个过程叫做离散傅立叶变换(DFT),通常利用快速傅利叶变换(FFT)的算法来完成。DFT给出点 = 2ek/N (k = 0.N -1)的傅立叶变换,从而按照实际频率给出了=2e/(NT) 或f=1/(NT)的分辨率。对许多应用来说,这种分辨率可能已经足够。对于某些应用,必须非常准确地确定频谱峰值(spectral peak)的位置。在这种情况下,DFT提供的分辨率可能不够。提高分辨率的方法之一就是简单地用额外的零来增加采样点。例如,为加倍频率分辨率,你可以在qn序列末尾增添N个零,使总的序列长度为2N。DFT将在2N个点上计算Q(),从而使分辨率提高一倍。 为提高分辨率而增加的

8、零的个数是有限制的。通常,只有在很小的频率范围内才需要提高分辨率。这里提供了一种简洁明了的办法,那就是直接在你感兴趣的频率范围上计算式1。下面给出有效算法。采用欧拉恒等式,我们可以把式1分为实数和虚数两部分:通过契比雪夫多项式(Chebyshev polynomials),我们从sin和cos开始,有效地进行sin(n)和cos(n)的递归运算。 在式4和式5中,已知T0 =1、T1=cos、U0=1以及U1=2cos,我们可以利用下列公式计算每一个Tn和Un。 现在我们只需要cos和sin,就能够以任意的高分辨率(远大于标准FFT)在一个非常小的频率范围上计算子频谱了。这一程序hrft用C语

9、言编写,执行如下: hrft f1 f2 Nf N sps infile outfile其中,f1=开始频率(Hz),f2=终止频率(Hz),Nf=计算FT的频率点数, N=从输入文件读取的采样点数,sps=每秒采样点数,infile=输入文件,outfile=输出文件。图中显示了由FFT算法产生的从2260Hz到2268 Hz的部分频谱,以及由高分辨率傅立叶变换(HRFT)在该频率范围上产生的频谱。两种方法都采用了相同的2048点数据集。FFT具有4 Hz/bin的分辨率,HRFT计算了41个点,分辨率为0.2 Hz/bin。显然,41点的HRFT3比3点FFT的图更平滑。数据集的主要频率为

10、2265 Hz,据此我们可以看出HRFT方法准确定位了频率峰值,而用FFT定位的峰值则偏离了1Hz。为了利用FFT获得同样好的分辨率,必须添加零,以达到 65,536个点的序列长度。 如果你只是对计算小频率范围上的频谱有兴趣,那HRFT可能比FFT更有效。频率范围越窄,HRFT的吸引力就越大。当必须利用有限的存储资源在嵌入式系统中执行运算时,这一点尤为明显。采用C语言程序处理FFT算法无能为力的扩大频谱的问题(转)2009-05-20 17:59如果你只是对计算小频率范围上的频谱有兴趣,那HRFT可能比FFT更有效。频率范围越窄,HRFT的吸引力就越大。当必须利用有限的存储资源在嵌入式系统中执

11、行运算时,这一点尤为明显。许多科学和工程应用都要求信号准确的频谱或傅立叶变换。式1以无量纲形式(dimensionless form)给出,其中 = T,T是采样间隔,qn = q(nT),代表信号q(t)的第n次采样。该式也假设信号为有限长序列,故总共仅有N 个连续采用点。Q()是连续变量的周期函数,周期为2e。常规求解方法是在区间 = 0, 2e内的N个均匀间隔点上计算Q()的值。这个过程叫做离散傅立叶变换(DFT),通常利用快速傅利叶变换(FFT)的算法来完成。DFT给出点 = 2ek/N (k = 0.N -1)的傅立叶变换,从而按照实际频率给出了=2e/(NT) 或f=1/(NT)的

12、分辨率。对许多应用来说,这种分辨率可能已经足够。对于某些应用,必须非常准确地确定频谱峰值(spectral peak)的位置。在这种情况下,DFT提供的分辨率可能不够。提高分辨率的方法之一就是简单地用额外的零来增加采样点。例如,为加倍频率分辨率,你可以在qn序列末尾增添N个零,使总的序列长度为2N。DFT将在2N个点上计算Q(),从而使分辨率提高一倍。信号采样序列的傅立叶变换如式1所示。为提高分辨率而增加的零的个数是有限制的。通常,只有在很小的频率范围内才需要提高分辨率。这里提供了一种简洁明了的办法,那就是直接在你感兴趣的频率范围上计算式1。下面给出有效算法。采用欧拉恒等式,我们可以把式1分为

13、实数和虚数两部分:通过契比雪夫多项式(Chebyshev polynomials),我们从sin和cos开始,有效地进行sin(n)和cos(n)的递归运算。 在式4和式5中,已知T0 =1、T1=cos、U0=1以及U1=2cos,我们可以利用下列公式计算每一个Tn和Un。 现在我们只需要cos和sin,就能够以任意的高分辨率(远大于标准FFT)在一个非常小的频率范围上计算子频谱了。这一程序hrft用C语言编写,执行如下: hrft f1 f2 Nf N sps infile outfile其中,f1=开始频率(Hz),f2=终止频率(Hz),Nf=计算FT的频率点数, N=从输入文件读取的采样点数,sps=每秒采样点数,infile=输入文件,outfile=输出文件。图中显示了由FFT算法产生的从2260Hz到2268 Hz的部分频谱,以及由高分辨率傅立叶变换(HRFT)在该频率范围上产生的频谱。两种方法都采用了相同的2048点数据集。FFT具有4 Hz/bin的分辨率,HRFT计算了41个点,分辨率为0.2 Hz/bin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论