Hamming与Hanning窗口:原理介绍及实例解析
创作时间:
作者:
@小白创作中心
Hamming与Hanning窗口:原理介绍及实例解析
引用
CSDN
1.
https://blog.csdn.net/zhuoqingjoking97298/article/details/145450955
在信号处理和数字通信领域,窗口函数是处理频谱泄漏和旁瓣抑制的重要工具。本文将详细介绍Hamming窗口和Hanning窗口的原理及其应用,通过实例解析不同窗口函数的频谱特性,帮助读者理解如何选择合适的窗口函数以优化信号处理效果。
01 数据窗口
一、矩形窗口
对于方波信号,它的频谱外包络随着频率的倒数规律下降。使用对数纵坐标绘制频率,可以显示更多的小的频谱细节。
图1.1.1 矩形窗口
图1.1.2 矩形窗口的FFT(前面一段)
图1.1.3 对数幅度坐标对应的频谱
二、三角波形
对于三角窗口,这是一个连续的信号,对应的频率衰减更快。但对应的频谱宽度更大。
图1.2.1 三角波形
图1.2.2 三角波形的频谱
图1.2.3 对数频谱
三、Hanning窗口
汉宁窗口具有更加光滑的外表,频谱衰减随着频率的三次方分之一进行衰减。在对数频谱中,可以更加明显的看到衰减快的趋势。
图1.3.1 Hanning窗口
图1.3.2 Hanning窗口的频谱
图1.3.3 对数频谱
一个神奇的情况,就是将前面的升余弦窗口进行改造,将它往上移动了大约7%左右,虽然现在信号出现了比较小的突破,但是所带来的一个巨大的好处,那就是频谱的第一个旁瓣的幅度更小了。这一点在对数频谱中可以看的很清楚。也就是它的第一个旁瓣变的很小,后面的频谱波动随着频率的倒数进行衰减。
图1.3.4 Hamming窗口
图1.3.5 Hamming窗口的频谱
对数频谱
改变升余弦跳跃的比例,可以看到频谱的第一个旁瓣的高度,会在某一个跳跃比例下,达到最小。
图1.3.7 不同比例的Hamming窗口
图1.3.8 对应的频谱变化
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY -- by Dr. ZhuoQing 2025-02-05
#
# Note:
#============================================================
from headm import *
N = 10000
data = zeros(N)
for ii in range(100):
i = 2
n = N//(i+2)
startn = N//2-n//2
endn = startn + n
data = zeros(N)
data[startn:endn] = 1
#------------------------------------------------------------
# for j in range(startn, endn):
# m = (startn + endn) // 2
# if j <= m:
# jj = m-j
# else: jj = j-m
# jjj = (0.5 - jj/n)*2
# data[j] = data[j]*jjj
for j in range(startn, endn):
a0 = 0.5+(ii/250)
a1 = 1 - a0
n = j - startn
w = a0-a1*cos(2*pi*n/(endn-startn-1))
data[j] = data[j]*w
#------------------------------------------------------------
# plt.clf()
# plt.plot(data, lw=3)
# plt.xlabel("N", color="steelblue", fontsize=16)
# plt.ylabel("Value", color="steelblue", fontsize=16)
# plt.grid(True)
# plt.tight_layout()
# plt.draw()
# plt.pause(.1)
# pltgif.append(plt)
# printf(i)
#------------------------------------------------------------
fftd = fft.fft(data)
fftda = abs(fftd)
nfft = N//50
plt.clf()
# plt.plot(fftda[:nfft], lw=3)
plt.semilogy(fftda[:nfft], lw=3)
plt.xlabel("Frequency", color="steelblue", fontsize=16)
plt.ylabel("Spectrum", color="steelblue", fontsize=16)
plt.grid(True)
plt.tight_layout()
plt.draw()
plt.pause(.1)
pltgif.append(plt)
#------------------------------------------------------------
pltgif.save()
printf("\a")
#------------------------------------------------------------
# END OF FILE : TEST1.PY
#============================================================
总结
本文显示了不同数据加窗的频谱。如果希望第一个频谱旁瓣打到最小,可以使用具有特定跳跃参数的Hamming窗口。
相关文献链接:
- Hamming(汉明)窗的原理介绍及实例解析
相关图表链接:
- 图1.1.1 矩形窗口
- 图1.1.2 矩形窗口的FFT(前面一段)
- 图1.1.3 对数幅度坐标对应的频谱
- 图1.2.1 三角波形
- 图1.2.2 三角波形的频谱
- 图1.2.3 对数频谱
- 图1.3.1 Hanning窗口
- 图1.3.2 Hanning窗口的频谱
- 图1.3.3 对数频谱
- 图1.3.4 Hamming窗口
- 图1.3.5 Hamming窗口的频谱
- 对数频谱
- 图1.3.7 不同比例的Hamming窗口
- 图1.3.8 对应的频谱变化
热门推荐
续写跨越八百年铁与火的传奇 一起看保安族刀尖上的非遗
确认!最新在世最长寿纪录保持者!
如何构建高效且可扩展的软件模型以应对复杂业务需求?
永远的“斯内普教授”,真实的艾伦·里克曼
新书|“斯内普教授”的另一面,艾伦·里克曼私人日记带读者走进他的传奇光影世界
康复有黄金时期 越早介入越好
研究生标准论文格式规范
《圣斗士星矢(腾讯)》水瓶座-卡妙角色攻略
床方向是东西好还是南北好?家居风水布局揭秘
五级三晋制是什么意思
如何选择保值率高的汽车?关键因素分析与建议
《隔离区-丧尸末日生存》:末日求生,智斗丧尸
德国选择党势焰直逼“防火墙”,欧盟也难免池鱼之殃?
蓝莓的营养价值和禁忌人群
古汉语中的“苟”字义项详解,从成语和例句轻松掌握
粘液性肿瘤是什么病,能治愈吗
腹膜假黏液瘤具备三大典型特征!早期有预警信号吗?
社交恐惧症
火锅鸡怎么做简单又好吃,大雪节气最应景,麻辣鲜香浑身冒汗
出汗对人体有益吗?“小汗常出”有些什么注意事项?
哲学家论死亡与来世:灵魂不朽
2025年新赛季更新揭秘,LOL25.s1.1传送机制调整一览
金沙与马丘比丘,我们都崇拜那金色的太阳
前台接待礼仪及话术
买二手房如何查是否可落户
冲正是什么意思?
狗狗为什么不能喝牛奶?揭示牛奶对狗狗健康的潜在危害
纯牛奶升血糖吗?专家解读其对血糖的影响
读懂古汉字中的蛇文化
消息队列的6种经典使用场景和Kafka架构设计原理详细解析