声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4722|回复: 11

[FFT] FFT加hanning窗的问题

[复制链接]
发表于 2007-11-6 22:05 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 wdhd 于 2016-9-8 14:46 编辑

  用Matlab的库函数,可以这样写
  w=hanning(512);
  但是最后读到的数据,和用C编程出来的是不一样的,我的C程序就是按书上公式编写的。
  W(n)=0.5*(1-cos(2*pi*n/N)) n=0,1,.......N-1
  大家看看有什么问题,最后求FFT的幅值,怎样去消除hanning的影响?

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2007-11-6 22:16 | 显示全部楼层
matlab里改成 w=hanning(512,'periodic')看看
发表于 2007-11-6 22:26 | 显示全部楼层

回复 #2 yangzj 的帖子

请问 PREODIC 模式和对称模式什么区别?
发表于 2007-11-6 22:50 | 显示全部楼层

回复 #3 firecat_2 的帖子

呵呵,顾名思义就行。
其是就是离散化的方式不一样,
W(n)=0.5*(1-cos(2*pi*n/N))      n=0,1,.......N-1,就是周期的。
W(n)=0.5*(1-cos(2*pi*n/(N+1)))      n=1,2,.......N

一般来说我都会用周期模式,它会有比较好的特性。因为经周期延拓后它与实际的Hanning窗完全一样

[ 本帖最后由 yangzj 于 2007-11-6 22:53 编辑 ]
 楼主| 发表于 2007-11-7 07:48 | 显示全部楼层
W(n)=0.5*(1-cos(2*pi*(n+1)/N))      n=0,1,2,.......N-1
 楼主| 发表于 2007-11-7 07:51 | 显示全部楼层
最后求FFT的幅值,怎样去消除hanning的影响?
发表于 2007-11-7 08:03 | 显示全部楼层

回复 #6 libobo2000 的帖子

什么影响,是幅值减半了吗?乘上2就行了.
发表于 2007-11-7 08:10 | 显示全部楼层
本帖最后由 wdhd 于 2016-9-8 14:47 编辑
原帖由 libobo2000 于 2007-11-7 07:48 发表
W(n)=0.5*(1-cos(2*pi*(n+1)/N))      n=0,1,2,.......N-1

你是说对称hanning窗用的是这个式子吗?这个不是对称窗,只是把周期Hanning窗住后移了一点而已.matlab里的对称hanning窗我昨天仔细看了下,用的是W(n)=0.5*(1-cos(2*pi*n/(N+1)))      n=1,2,.......N,  实际上是取了长度为(N+1)/fs的hanning窗的中间N点 (fs为采样频率),舍掉了两端为0的点.而周期hanning窗是对长度为N/fs的窗取了前N点,舍掉了末端为0的点
 楼主| 发表于 2007-11-7 08:26 | 显示全部楼层
我看到一个程序上是这样写的,后来看下也不对,误差太大。我按照楼上的做了,乘2,也是不对
for(i=0;i<N;i++)
    {
    han_win=han_win*han_win;
    han_win_sum=han_win_sum+han_win;
    }
    han_win_sum=1/han_win_sum;
    //printf("han_win_sum:%f",han_win_sum);
    for(i=0;i<N;i++)//消除窗的影响
    {
     magnitude=magnitude*han_win_sum;//short fft output
    }
发表于 2007-11-7 08:42 | 显示全部楼层

回复 #9 libobo2000 的帖子

这个求的应该是能量恢复系数。
把FFT的结果除以N再乘以4就是单边谱。这样幅值不对那是由于非整周期采样引起的频谱泄露造成的
发表于 2008-1-10 13:56 | 显示全部楼层
加hanning窗之后为什么fft的结果要乘4,不是乘2的吗
发表于 2008-1-10 17:05 | 显示全部楼层
本帖最后由 wdhd 于 2016-9-8 14:47 编辑
原帖由 witty01 于 2008-1-10 13:56 发表
加hanning窗之后为什么fft的结果要乘4,不是乘2的吗

在加窗和FFT后单边谱的幅值(除N),矩形窗乘2,hanning窗乘4。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-17 04:04 , Processed in 0.076543 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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