摘要

本文主要介绍了常见的窗函数以及窗函数有什么用,以及在实时频谱分析中,该如何选择合适的加窗方式。

随着无线通信的逐步发展,带来的是频谱环境的越发复杂与丰富,高度的信号变化性使得短时间内信号不再是一成不变。低功率、瞬时性、宽频带的特性使得传统的扫频式频谱分析仪有所局限。以目前火热的UWB定位技术来讲,发射能量往往低于-40 dBm/MHz,UWB不使用载波,而是使用短的能量脉冲序列(ns级以下),频域上带宽很宽,因此如果想要观测解析这样的信号,对于扫频仪来讲就分外吃力。

因此,实时频谱分析仪逐渐占据了市场。而实时频谱分析仪需要面对的信号依旧是有挑战性的,为了能够适应不同的信号,实时频谱分析仪在FFT的加窗类型中会给出不同的窗函数,以便在需要的时候为用户提供了扩展分析能力

但是很多时候,多种多样的窗函数会让人感到迷惑,并不知道针对自己需要观测的信号,该如何进行选择,本文将从常见窗函数的角度出发,用尽可能直观的方式解读如何为频谱分析仪选择合适的加窗方式。

为什么使用窗函数?

首先我们要清楚,数字信号处理(DSP)中很重要的一个内容,也是承载数模转换的基础部分是傅立叶变换(Fourier Transform)。从傅里叶实现的机制来看,傅里叶变换都是针对正无穷大和负无穷大的信号,即信号的的长度是无穷大的,但是这对于计算机处理来说是不可能完成的,那么有没有针对长度有限的傅里叶变换呢?没有。因此,为了让计算机实现FFT,就必须将无线信号截取成一段有限长的信号后进行周期延拓,再进行傅立叶变换。

在这个过程中,当截断时间不等于周期或周期的整数倍时,此时截断后再延拓时,幅值不连续,FFT时频转换之后的频带就将出现拖尾,此时我们就可以称为频谱能量泄露,幅度峰值下降,频谱扩散。

很不幸的是,现实世界的操作中,大多数信号在截取时最终都是非周期截取,因此泄露是在计算机执行FFT的过程中很常见的一个现象。

窗函数就是为了解决这个问题而出现的,顾名思义,窗函数就是时域上一个宽度有限的信号起到了对无限信号进行截断的作用,使得FFT过程仅仅能处理截断后“窗户”内的信号。通过合理的窗函数进行截断,可以有效的减少泄露,需要强调的是,只要是进行了截断,就必然会产生泄露,窗函数只是减少了泄露而做不到完全的消除。

有哪些窗函数?

正如上文所说,窗函数实际上就是一个截取工具,用来将时域信号“框”起来一部分,再“展示”给FFT函数来进行处理,下面是一个例子:

因此从这一点来看,所有的窗函数都具有相同的功能。不同的窗函数具有不同的频谱特征,如何来对这些不同的窗函数做对比与定义呢?

上图是几种窗函数在频域的图像,可以看到实际上尽管这些窗函数在时域上有不同的形态,但是从频域的角度来看,我们都认为它具有较清晰的主瓣和旁瓣区别。尽管截取这一过程比较直观的发生在时域,但是泄漏与窗函数的频谱特征相关的,从频谱特征能够更方便的进行解释:

上图是窗函数的典型频谱特征图,我们提取了这样几个频域特征作为衡量不同窗函数之间的性能指标:最高旁瓣、主瓣等效噪声带宽、3dB带宽、旁瓣衰减

实时频谱分析仪应用的窗函数有哪些呢?我们以虹科模块化实时频谱分析仪和D4卫星载波检测频谱分析仪为例,来介绍几种较为常用的窗函数:

  • Rectangular(矩形窗):主瓣比较集中,缺点是旁瓣较高,并有负旁瓣,导致变换中带进了高频干扰和泄漏,甚至出现负谱现象

  • Flattop(平顶窗):主瓣稍宽,幅度的准确性更高

  • Blackman-Harris(布莱克曼窗):是一种类似于汉明窗与汉宁窗的窗函数,但是主瓣宽,旁瓣小,频率识别精度最低,但幅值识别精度最高

  • Hamming(汉明窗):是一种改进的升余弦窗,旁瓣较汉明窗来讲更小,频率分辨率高

  • Hanning(汉宁窗):升余弦窗,汉宁窗可以看作是3个矩形时间窗的频谱之和,它可以使用旁瓣互相抵消,消去高频干扰和漏能。

各种窗的差别主要在于集中于主瓣的能量分散在所有旁瓣的能量之比,而主瓣的集中度与旁瓣的衰减程度决定着频率分辨率与幅值精度,我们对各个窗进行了总结:

为什么使用窗函数?

我们在加窗函数时,最理想的情况是使窗函数频谱的主瓣宽度应尽量窄(频率分辨率高),旁瓣衰减应尽量大(频谱拖尾小)但实际上我们需要做一个选择题。“鱼与熊掌不可兼得”,这两个参数处在跷跷板的两端,我们在加窗时只能更顾及其中一点

因此,对于窗函数的选择,我们应考虑被分析信号的性质与自身的处理需求

如果仅要求精确读出主瓣频率,而不考虑幅值精度,则可选用主瓣宽度比较窄而便于分辨的矩形窗,例如测量物体的自振频率等;

如果分析窄带信号,且有较强的干扰噪声,则应选用旁瓣幅度小的窗函数,如汉宁窗、三角窗等;

对于随时间按指数衰减的函数,可采用指数窗来提高信噪比。

我们总结了各个窗函数的特性与应用场合:

在我们日常使用频谱仪时,窗函数的选择对于最终测试影响不会特别大,因此无须刻意纠结选取哪一种来使用,当我们需要准确的结果时,可以参照上表,根据自身需求进行设置,这在一定程度上会保证测量的精度与准确度。

【来源:虹科卫星通信与无线电技术hongsat.com】

虹科教您 | 实时频谱分析仪中如何选择合适的FFT窗函数相关推荐

  1. 开关电源中如何选择合适的电感

    电感是电路中常见的储能被动元器件,在开关电源的设计中起到滤波,升压,降压等作用.方案设计初期工程师不仅要选择合适的电感值,还要考虑电感可承受的电流,线圈的DCR,机械尺寸,损耗等等.如果对电感的功能不 ...

  2. 弱电系统怎么选择服务器,智能化弱电工程中如何选择合适的机柜?你知道吗?...

    许多人认为机柜是IT设备的机柜.机柜是机柜,但不只是这样. 对于计算机本身来说,机柜在UPS电源中也起着重要的辅助作用.良好的机柜意味着确保计算机能够在良好的环境中运行.机柜系统地解决了高密度散热.大 ...

  3. mysql分窗函数_频谱分析中如何选择合适的窗函数

    加窗是为了减小泄漏! 1.信号截断及能量泄漏效应 数字信号处理的主要数学工具是傅里叶变换.应注意到,傅里叶变换是研究整个时间域和频率域的关系.然而,当运用计算机实现工程测试信号处理时,不可能对无限长的 ...

  4. 数据分析报告中如何选择合适的统计图表

    由于不同的数据分析工具收集到的数据千差万别,基于这些数据生成展示的统计图表也不尽相同:而且数据分析师制作各种报告时,也常常纠结于如何选择合适的图表表达数据诉求,因此我们有必要去理解一些常用数据分析统计 ...

  5. mysql中辅导方式选择_MYSQL中如何选择合适的数据类型

    数值,典型代表为 tinyint,int,bigint 浮点/定点,典型代表为 float,double,decimal 以及相关的同义词 字符串,典型代表为 char,varchar 时间日期,典型 ...

  6. Pytorch-工业应用中如何选取合适的损失函数(MAE、MSE、Huber)

    正文: 无论在机器学习还是深度学习领域中,损失函数都是一个非常重要的知识点.损失函数有许多不同的类型,根据具体模型和应用场景需要选择不同的损失函数,如何选择模型的损失函数,是作为算法工程师实践应用中最 ...

  7. 工业应用中如何选取合适的损失函数(MAE、MSE、Huber)-Pytorch版

    作者丨小可乐大魔王@知乎  编辑丨极市平台 来源丨https://zhuanlan.zhihu.com/p/378822530 直接上结果: 图片截选自本文末尾 正文: 无论在机器学习还是深度学习领域 ...

  8. 虹科教您 | 从零开始认识频谱分析仪

    为什么使用频谱仪? 01 认识频谱 电磁频谱,是指按电磁波波长(或频率)连续排列的电磁波族,是一种看不见摸不着但时刻伴随我们的东西.当我们使用电磁波将一串信息发送出去时,在时域上他是一段强度不同,疏密 ...

  9. 如何进行实时频谱分析仪的二次开发——MATLAB、C++、labview开发环境的部署

    软件无线电 软件无线电,即软件定义的无线电,是利用现代化软件来控制传统硬件电路的一种无线通信技术.传统的硬件无线电通信设备只是作为无线通信的基本平台,而许多的通信功能则是由软件来实现,这使得设备的通信 ...

最新文章

  1. 大数据安全事件警示:海量数据放哪才真正放心
  2. Gartner:企业架构开始更加紧密地向业务看齐
  3. python 获取 程序运行时间
  4. Eclipse:Cannot complete the install because of a conflicting dependency.问题解决
  5. 【编程】二叉树的先序、中序、后序遍历
  6. 2020 年最全 Python 面试题汇总 (五)
  7. 牛客小白9 换个角度思考(离线+树状数组)
  8. 数据科学与大数据排名思考题_排名前5位的数据科学课程
  9. 总结get和post区别
  10. Halcon学习笔记:1D Measuring一维测量_fuse.hdev灯丝测量示例
  11. Python ImportError: No module named Image
  12. Java中的原型设计模式
  13. django基础 第一章 环境搭建
  14. java 万年历_java万年历代码仅供参考
  15. C#中手动引用COM组建的例子
  16. String的intern()方法浅析
  17. html5 observer api,转: HTML5新特性之Mutation Observer
  18. 史上最全的中高级JAVA工程师-面试题汇总
  19. AES128位数据加密算法【直接拷贝可用】
  20. jquery mobile_jQuery Mobile课程1

热门文章

  1. B3U1 Text A Language Focus 共35词
  2. 双12:隐藏在电商之战背后的支付战争
  3. 凤悦酒店及度假村 酒店投资与资产管理峰会圆满落幕
  4. Java使用 PDFBox创建 PDF 文件并将文本写入其中
  5. 三维动画在计算机上的应用,计算机三维动画在工程设计的应用
  6. Android游戏的新功能
  7. Leangoo项目管理软件-传统硬件产品开发全流程
  8. javascript学习-贪吃蛇
  9. 会声会影X5安装与调试记录
  10. linux内核对nsm配置,H3C SecPath系列安全产品 NSQM1NSM 单板手册(V1.02)