1. 数字信号处理为什么要加窗?

防止频谱泄漏现象
快速傅里叶变换(FFT)实现了时域到频域的转换,是信号分析中最常用的基本功能之一。FFT变换时,总是从离散数据中选取一部分处理,将其称为一帧数据。而且FFT是在一定假设下完成的,即认为被处理的信号是周期信号。因此,FFT之前会对这一帧数据进行周期扩展。
以CW信号为例,如果选取的这一帧数据不是信号周期的整数倍,则在周期扩展时会存在样点的不连续性,如下图所示。这将导致FFT之后得到的频谱失真,主要体现在频率成分上。理论上,频谱中只包含待测信号的频率,但实际上此时的频谱包含众多的频率分量。通常将这种现象称为频谱泄露效应。

在很多情况下,并不能测量到整数个周期。 因此,测量到的信号就会被从周期中间切断,与时间连续的原信号显示出不同的特征。有限数据采样会使测量信号产生剧烈的变化。 这种剧烈的变化称为不连续性。
采集到的周期为非整数时,端点是不连续的。 这些不连续片段在FFT中显示为高频成分。这些高频成分不存在于原信号中。 这些频率可能远高于奈奎斯特频率,在0~ 采样率的一半的频率区间内产生混叠。 使用FFT获得的频率,不是原信号的实际频率,而是一个改变过的频率。 类似于某个频率的能量泄漏至其他频率。 这种现象叫做 频谱泄漏。频率泄漏使好的频谱线扩散到更宽的信号范围中。
为了抑制频谱泄露效应,可以采用诸如Hanning、Kaiser等多种时间窗。还有一种特殊的时间窗——矩形窗,其实就是不加时间窗,直接对原始样点做FFT变换,上述例子就是采用矩形窗的情况。只有采用矩形窗,而且窗宽度不是信号周期的整数倍时,才会发生明显的频谱泄露效应。
语音信号一般在10ms到30ms之间,我们可以把它看成是平稳的。为了处理语音信号,我们要对语音信号进行加窗,也就是一次仅处理窗中的数据。因为实际的语音信号是很长的,我们不能也不必对非常长的数据进行一次性处理。明智的解决办法就是每次取一段数据,进行分析,然后再取下一段数据,再进行分析。

2. 怎样截取一段数据

一种方式就是构造一个函数。这个函数在某一区间有非零值,而在其余区间皆为0.汉明窗就是这样的一种函数。它主要部分的形状像sin(x)在0到pi区间的形状,而其余部分都是0.这样的函数乘上其他任何一个函数f,f只有一部分有非零值。

3. 为什么汉明窗这样取呢?

因为之后我们会对汉明窗中的数据进行FFT,它假设一个窗内的信号是代表一个周期的信号。(也就是说窗的左端和右端应该大致能连在一起)而通常一小段音频数据没有明显的周期性,加上汉明窗后,数据形状就有点周期的感觉了。
因为加上汉明窗,只有中间的数据体现出来了,两边的数据信息丢失了,所以等会移窗的时候,只会移1/3或1/2窗,这样被前一帧或二帧丢失的数据又重新得到了体现。简单的说汉明窗就是个函数,它的形状像窗,所以类似的函数都叫做窗函数。
下图便是加窗之后的效果图(实现时频局域化)

4. 这里需要注意的点
1、加窗并不是为了截取信号的某一节,
因为FFT算法是认为你采样的信号是无限长的周期的信号,也就是你32k的数据会被认为是不断重复的,32k最后一个点之后又连到第一个点,这样不断重复,这样就有可能出现波形突然不连续的情况,这个不连续会导致FFT结果出现频谱泄漏现象,
但是你的实际信号是连续的,所以加窗的目的就是让不太连续的地方(最后一个点和第一个的连接处)看上去平滑了,没有原来那么明显的突变了,
2、原始数据*窗函数,数据都变样了,FFT后的频谱为什么还能作为参考依据?
加窗以后数据变样了就是加窗的目的,如果你关心的频率范围与窗函数本身的频率范围没有交集,那么加窗FFT后的频谱是有参考价值的,不过你要自己加入幅值修正,

3、窗函数的频谱里也会有频率能量较大的成分,那么加入窗函数后,FFT后频谱会不会由于窗函数相乘了以后导致出现本来没有谐波或毛刺的位置出现了毛刺呢?

有一种情况,比如:32k的点数,前面一段是1kHz,中间一段是2kHz,后面一段是3kHz,这样的信号就不适合加窗,加窗FFT后的结果肯定是有问题的,
这样的信号要么不能加窗FFT,要加窗就应该以更加精细的尺度进行分析,换句话说加窗只适用于关注的频率在各时间点上分布比较均匀的信号。

解答1:加窗和直接采样不一样,一方面,加窗一般是滤波器,通带内的系统函数不一定是常数值,加窗在时域进行,窗函数的频域形状是一个窗,把带外的分量滤除,相当于低通滤波器,若是矩形滤波器,相当于低通滤波,把带外高频分量直接滤除,另一方面,采样在不同的采样采样率下对信号的近似程度不一样,但是加窗是直接截取一段。

解答2:当窗是矩形窗的时候,采样区间为0–5s,此时加窗的效果和采样是相同的,但针对其他窗的时候不成立。
5.几种窗函数特性
https://baike.sogou.com/v8906031.htm?ch=ww.xqy.xgbk

6. 选窗原则

https://wenku.baidu.com/view/a3821a126c175f0e7cd13717.html
注:参考资料
(1)https://mp.weixin.qq.com/s?src=11&timestamp=1599555080&ver=2571&signature=sPpLnspO3-x7oakFMTN6BGcRAbcXoRe4laERrvOh-NPCRjozAspIjKITMwKER4CMM2wiAc1Lqi8FdG7PRc6m1A9GoPyJJp0FgEA1RCKelEKlKfixT4Z6WrfbTJTj6wZj&new=1
(2)https://blog.csdn.net/weixin_40162095/article/details/106410076?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param
(3)https://blog.csdn.net/weixin_38313518/article/details/78106150?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
(4)https://blog.csdn.net/wordwarwordwar/article/details/72590859?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
(5)https://wenwen.sogou.com/z/q824226941.htm?ch=ww.xqy.xgzs&pid=ww.xqy.xgzs

数字信号处理--加窗相关推荐

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

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

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

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

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

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

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

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

  5. matlab如何进行数字信号处理,数字信号处理基础及MATLAB实现(第2版)

    [内容简介] 本书系统地介绍了数字信号处理基本理论.设计方法和实现等方面的内容.全书共分9章,第1章介绍数字信号处理的研究对象.学科概貌.系统基本组成.特点.发展及应用等内容:第2章介绍离散时间信号与 ...

  6. 经典数字信号处理图书的个人评述【转】

    在一网站上得到如下的很好的内容,故存放在此,以方便以后查看... http://emuch.net/html/201206/4595181.html 经典数字信号处理图书的个人评述         数 ...

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

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

  8. rbw数字信号处理_数字信号处理与模拟IC设计

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区. 您需要 登录 才可以下载或查看,没有帐号?注册 x 本帖最后由 血荐轩辕HIT 于 2019-12-15 23:38 编辑 信号与系统.数字信 ...

  9. 数字信号处理5:FIR滤波器设计

    文章目录 1. 滤波器初识 2. 最直观的滤波方式:频域滤波 3. 傅里叶变换中的加窗 4. FIR滤波器设计 5. 总结 之前的一系列博客中,详细分解了从卷积到FFT的相关知识,不过那些属于理论,是 ...

最新文章

  1. IBM Watson 的中国生意
  2. 【S操作】综合利用腾讯文档、OneDrive、印象笔记evernote、有道云笔记等各种云工具,轻松实现数据云存储及多重备份...
  3. Python入门学习---第二天
  4. mysql数据库入门教程(13):存储过程
  5. [BZOJ2326] [HNOI2011] 数学作业 (矩阵乘法)
  6. 基于CSRF的XSS攻击
  7. 谷歌修复已遭利用的 0day
  8. 获取android型号代码,Android应用开发之Android获取手机品牌、手机型号、手机唯一序列号的代码教程...
  9. java浏览器渲染_优化浏览器渲染
  10. 数码管动态显示从0显示到999999,每隔0.1s增加1个数
  11. 上海计算机在职专业硕士学校,专业硕士计算机类可以报考上海哪些学校?
  12. 带蓝色的紫罗兰色——三色配色篇
  13. 手游运营数据监控指标浅谈
  14. Ruby学习-Ruby语言的一些特点
  15. ECMAScript6词法
  16. 读文献--《U-Net: Convolution Networks for Biomedical Image Segmentation 》
  17. Linux中如何安装特定的gcc版本
  18. ArrayList扩容机制源码分析
  19. 跑步蓝牙耳机推荐,适合跑步的蓝牙运动耳机
  20. vi 撤销上一步操作

热门文章

  1. 软件测试全网最全复习总结-别杠,杠就是你对
  2. Matlab机器人工具箱(3-3):五自由度机械臂(动力学)
  3. 根据词云寻找对应文章的Web开发
  4. 遗传算法解整数规划IntCon
  5. Console线连接交换机路由器等设备
  6. JAVA8线程池THREADPOOLEXECUTOR底层原理及其源码解析
  7. oracle中的modify,数据库Oracle modify
  8. Unity 报错TLS Allocator ALLOC_TEMP_THREAD, underlying allocator ALLOC_TEMP_THREAD
  9. java 数学测试_自动生成不同难度的数学试卷系统,并输出到txt文件中,命名为当前时间(java)...
  10. lg分屏软件支持linux吗,LG显示器分屏软件-OnScreen Control(快速分屏)下载v2.95-领航下载站...