转载于:马尚先生

一,前期回顾

上期我们主要讲了快速傅里叶变换原理和实现过程中的几个小问题。

  • 对时域连续信号进行了采样,将时域连续的信号变为了离散信号并进行傅里叶变换,我们神奇的发现在频域中还是连续的谱线,PC 处理不了。
  • 在时域中选取N点,说白了就是对时域连续信号x(t) 进行N点采样,然后将N点采样信号进行周期延拓,虚拟成周期离散的信号并将其进行离散傅里叶变换,得到的频域谱图即为周期离散。

整个的过程就是将采样的信号取N点进行离散傅里叶变换!

那么问题来了,怎样的进行取点操作那?

加窗呗,这就是本节要讲的内容,关于加窗和加窗带来的问题。

二,为什么加窗

1,首先我们要理解采样

实际的信号是连续的,要转换为计算机能处理的信号,必须离散化进行采样,采样的过程就是跟狄克拉梳状函数相乘。示例如下图,在采样过程一节中我们有详细的解释。

Fig.1 连续信号经脉冲采样过程。

问题是:

此时采样后的信号是在时域无限扩展的,频谱也是一样的,但是在实际中是不可能处理无穷多数量的信号。

Note:实际中的信号有两个特点,离散化和有限长。一是离散性,就是采集数据不连续,很容易理解,采集信号肯定是一个一个数据采集的。二是有限性,虽然理想的傅里叶变换是从进行积分,但是实际信号往往实在一个区间内(a,b) 的。

2,解决的方式为:

加窗截短更加专业点叫做分窗。

矩形窗函数是最为简单和容易理解的窗函数,我们从矩形窗函数开始。

矩形函数具有一个特性为紧支撑性,即一部分不为零,其余全都为0. 用矩形窗函数与采样后的信号相乘,就得到了加窗后的采样信号。 矩形信号的频谱为sinc 信号

Fig.1 矩形窗函数和其频谱

三,加窗的过程

例如有一个函数 ,令A=1,f =1Hz 很显然频率包括正负1Hz,假设以10 Hz 采样,采样后的信号频谱以10Hz 为周期进行周期延拓。此时采样后的信号是在时域无限扩展的,频谱也是一样的。在时域中将采样后的信号与矩形窗相乘,相应的在频域中为信号频谱与矩形窗频谱卷积,得到连续周期的谱线。加窗以后就可以得到N点的采样信号,将其进行周期延拓,虚拟成离散周期的信号进行傅里叶变换,同样的得到离散周期的谱线。此时的变换称之为离散傅里叶变换。

加窗过程如下:


像这种加窗后的有限长离散信号PC是可以处理的,但是在频域还是无限长的连续信号。以后的步骤可以在两个角度理解:

从时域角度出发,时域加窗,然后将加窗后的有限长离散信号进行周期延拓,就得到一个周期的离散信号,其傅里叶变换也是周期离散的,这样PC就可以处理了。第二个角度为从频域角度出发,当加窗以后,频域的频谱为无限连续,此时,可以对其进行采样,频域的采样相当于时域的周期延拓,与时域延拓同样的一个道理。周期延拓在数学上可以看成是一个有限长度信号和一个同样周期的无限长采样脉冲的卷积。

由于加窗行为频谱中的频率成分变的复杂了,但是由于矩形窗函数的频谱是无限宽的,在频谱的最大值处出现了一定的畸变略大于1。

四,加窗带来的问题-频谱泄露

加窗后带来最严重的影响就是不可避免的带来频谱泄露。

从信号中截取一个时间片段,然后用截取的信号时间片段进行周期延拓处理,得到虚拟的无限长的信号,然后就可以对信号进行傅里叶变换、在通过低通滤波器得到主频率区间的频谱图。当无限长的信号被截断以后,其频谱发生了畸变,原来集中在f(0)处的能量被分散到两个较宽的频带中去,这种现象称就称之为频谱能量泄漏。

理想的情况是余弦函数是周期信号,频谱为有限宽度的,如果窗函数的宽度是信号周期的整数倍,则频域采样(周期延拓)将正好采在sinc 函数的从瓣取值为0 的地方,泄露的频谱没有采到而已。实际情况是窗函数和原信号周期不一致,加窗后的信号进行周期延拓时出现了不连续频域采样时,不像前面采样只采到sinc 为零的地方频谱出现较大的泄露。


避免频谱泄露的方式为

尽量的使频谱的能量主要集中在主瓣,尽量的使旁瓣的能量低!

原因分析:

泄漏与窗函数频谱两侧旁瓣有关,如果两侧旁瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱。为了减少频谱能量泄漏,可采用不同的截取函数对信号进行截断,截断函数称为窗函数,简称为窗。如果窗函数的宽度为无穷大,则对应的sinc 函数无穷窄,卷积之后非常的接近理想矩形,反之相差很大,出现频谱泄露的主要原因是,窗函数的频谱为无限长与信号卷积时,主瓣与从瓣出现叠加,因此从瓣的能量越小,影响越小。

好的窗函数在频域的能量相对集中,也就是旁瓣的能量要低。

当窗函数为无穷大时,脉冲响应sinc 函数及其窄,当窗函数的有限的时候,脉冲函数为无限宽

既然泄露在所难免,那我们就要根据信号处理的要求来选择合适的窗函数!

五,窗函数的特性及选择

1,矩形窗

矩形窗属于时间变量的零次幂窗,使用最多,习惯上不加窗就是使信号通过了矩形窗。这种窗的优点是主瓣比较集中,缺点是旁瓣较高,并有负旁瓣,导致变换中带进了高频干扰和泄漏,甚至出现负谱现象。矩形窗主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低。

2,三角窗

三角窗亦称费杰(Fejer)窗是幂窗的一次方形式。与矩形窗比较,主瓣宽约等于矩形窗的两倍,但旁瓣小,而且无负旁瓣。

3,汉宁窗又称升余弦窗。

汉宁窗又称升余弦窗,可以看作是3个矩形时间窗的频谱之和,或者说是 3个 sinc(t)型函数之和,汉宁窗主瓣加宽并降低,旁瓣则显著减小。从减小泄漏观点出发,汉宁窗优于矩形窗。但汉宁窗主瓣加宽,相当于分析带宽加宽,频率分辨力下降。

4,海明窗

海明窗也是余弦窗的一种,又称改进的升余弦窗。海明窗与汉宁窗都是余弦窗,只是加权系数不同。海明窗加权的系数能使旁瓣达到更小。分析表明,海明窗的第一旁瓣衰减为 -42 dB.海明窗的频谱也是由3个矩形窗的频谱合成,但其旁瓣衰减速度为20 dB/(10oct),这比汉宁窗衰减速度慢。海明窗与汉宁窗都是很有用的窗函数。

5,高斯窗

高斯窗是一种指数窗,无负的旁瓣,第一旁瓣衰减达 -55 dB。高斯图谱的主瓣较宽,故而频率分辨力低.高斯窗函数常被用来截短一些非周期信号,如指数衰减信号等。

布莱克曼窗主瓣宽,旁瓣小,频率识别精度最低,但幅值识别精度最高

对于窗函数的选择,应考虑被分析信号的性质与处理要求。如果仅要求精确读出主瓣频率,而不考虑幅值精度,则可选用主瓣宽度比较窄而便于分辨的矩形窗,例如测量物体的自振频率等;如果分析窄带信号,且有较强的干扰噪声,则应选用旁瓣幅度小的窗函数,如汉宁窗、三角窗等;对于随时间按指数衰减的函数,可采用指数窗来提高信噪比。

参考文献

马尚先生:采样定理,频谱混叠和傅里叶变换 深入理解

马尚先生:傅里叶变换原理及Python代码实现

马尚先生:傅里叶变换 傅里叶基数之间关系

https://jingyan.baidu.com/article/11c17a2c204e3df446e39dc8.html

感谢看到最后,希望对你有帮助,点个赞吧!

频率泄露以及加窗原理相关推荐

  1. FFT频谱分析(补零、频谱泄露、栅栏效应、加窗、细化、频谱混叠、插值),Matlab、C语言代码

    文章目录 引言 Matlab FFT函数 频谱混叠 栅栏效应 细化技术 什么是细化技术? 细化FFT技术的应用: Zoom-FFT算法介绍及MATLAB实现 Zoom-FFT根本没有实现"细 ...

  2. Gabor滤波器为什么能实现频率域加窗

    Gabor 特征是一种可以用来描述图像纹理信息的特征,Gabor 滤波器的频率和方向与人类的视觉系统类似,特别适合于纹理表示与判别. Gabor 特征主要依靠 Gabor 核在频率域上对信号进行加窗, ...

  3. python信号处理加汉明窗_SciPyTutorial-非整周期信号加窗

    17. Scipy Tutorial- 非整周期信号加窗 17.1 什么是加窗? 使用FFT分析信号的频率成分时,分析的是有限的数据集合. FFT认为波形是一组有限数据的集合,一个连续的波形是由若干段 ...

  4. 了解FFT和信号加窗

    0 概览 学习信号时域和频域.快速傅立叶变换(FFT).加窗,以及如何通过这些操作来加深对信号的认识. 1. 理解时域.频域.FFT 傅立叶变换有助于理解常见的信号,以及如何辨别信号中的错误. 尽管傅 ...

  5. matlab哈宁低通,Matlab实现电网谐波测量加窗插值算法.pdf

    收稿日期 2005 03 16 作者简介 张鸿博 1980 男 河南舞钢人 硕士生 第16卷第2期中原工学院学报Vol 16 No 2 2005年04月JOURNAL OF ZHONG YUAN IN ...

  6. 语音信号处理基础(五)——语音分帧与加窗

    文章目录 原理 1.加窗 2.分帧 一般而言语音处理的目的有两种: 一种是对语音信号进行分析,提取特征参数,用于后续处理: 提取的特征参数主要有语音的短时能量和平均幅度.短时平均过零率.短时自相关函数 ...

  7. 数字信号处理--加窗

    1. 数字信号处理为什么要加窗? 防止频谱泄漏现象 快速傅里叶变换(FFT)实现了时域到频域的转换,是信号分析中最常用的基本功能之一.FFT变换时,总是从离散数据中选取一部分处理,将其称为一帧数据.而 ...

  8. matlab中如何加窗,matlab时域加窗

    正弦信号处理加窗_信息与通信_工程科技_专业资料.正弦信号线性叠加混噪加窗处理 fft变换 作业二 1.用 MATLAB 产生三个频率成分信号, 进行线性叠加, 再加上白...... hamming窗 ...

  9. python对语音信号读取、分帧、加窗

    python对语音信号读取.分帧.加窗 一.读入音频信号 语音信号有三个重要的参数:声道数.取样频率和量化位数. 声道数:单声道或者双声道 采样频率:一秒钟对声音采样的次数,例如10000HZ代表一秒 ...

  10. 信号处理(二)音频信号的分帧, 加窗

    1 .语音信号的三个参数 语音信号有三个重要的参数:声道数.取样频率和量化位数. 声道数:单声道或者双声道 采样频率:一秒钟对声音采样的次数,例如10000HZ代表一秒钟将信号分解为10000份,当采 ...

最新文章

  1. 计算机应用基础第四章知识点,计算机应用基础 第四章电子表格笔试知识点总结...
  2. KC shop 开发历程------注册界面
  3. TF学习——TF数据读取:TensorFlow中数据读这三张图片的5个epoch +把读取的结果重新存到read 文件夹中
  4. Sublime text3 Emmet使用
  5. HDU1568 Fibonacci
  6. IOS 控件 - 去除 tableView 多余的横线
  7. Lesson 31-32 Personal Habits
  8. 基于MVVM的知乎日报应用安卓源码
  9. CRMEB v3.2微信小程序商城前端
  10. perl中shift 和unshift 操作
  11. Java学习——基本数据类型
  12. vagrant 常用的几个命令
  13. 全网最全leafLetAPI中文版
  14. 手机安装 Linux 系统教程
  15. 使用无人机倾斜摄影测量技术采集某县城区地理信息数据并生成实景三维模型的案例
  16. 培训php暑期,西安软件php暑假培训
  17. viper4android+xhifi+音效驱动,【资源】ViPER4Android FX 音效驱动 v2.3.0.1
  18. 一种Ansys安装 “Ans.SceneGraphChart.SceneGraphAddin. The software will exit.“报错解决方案
  19. java-net-php-python-ssm仿猫眼电影计算机毕业设计程序
  20. Android设备实现语音视频通话

热门文章

  1. Java基础学习之画板1
  2. 杰控连接mysql_杰控FameView软件首秦ERP系统L2级中的应用
  3. 用计算机组成原理+唐朔飞的,计算机组成原理(唐朔飞) 课件.ppt
  4. SpringBoot2 结合BeetlSQL开发
  5. Python 高性能编程
  6. mysql 中文本类型有哪些_mysql数据类型有哪些
  7. 最全SolidWorks安装教程(附下载地址)-亲测可用
  8. 高等数学第七版下册 同济大学数学系 编 课后答案 习题解析
  9. 新华三:竞奔不息,永立潮头
  10. Listary 6 插件开发教程:使用 Javascript 开发