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 对应的频谱变化
热门推荐
江浙红烧鱼:年味里的家常美味
红烧鱼:家庭聚会上的C位担当!
红烧鱼的甜咸之争:你家是哪一派?
危险化学品储存运输安全须知
食品安全知识培训的课程有哪些呢
南京博物馆珍藏:七宝阿育王塔的前世今生
阿育王时期佛塔建造技艺揭秘:以桑吉大佛塔为例
阿育王塔的神秘传说:八万四千塔背后的佛教传奇
代县阿育王塔:千年古韵的文化瑰宝
PCL2启动器全面解析:功能升级与用户体验优化
龙岩出发自驾游路线攻略:路线与旅游指南
超全版可收藏!搞懂SaaS产品定价(附7种定价模式)
电冰箱功率之谜(了解电冰箱功率的重要性)
健康饮食新宠:鸡胸肉12种腌法大揭秘!
减脂新宠!10种鸡胸肉腌制秘籍大公开
健身必备!6种鸡胸肉腌制秘籍大揭秘
《游园不值》中的园林美学:春色满园关不住
科普|科学流言榜:开颅手术真的会改变人格吗?
中药材里的活化石:杜仲的前世今生
杜仲茶养生奥秘:揭秘其保健功效
你家九牧马桶水箱多久没洗了?清洁攻略来了!
秋冬必备:用新会茶枝柑自制陈皮美食
王莽钱背后的惊世改革秘辛
川西自驾游,最经典的5条线路,轿车就能稻城亚丁、色达、九寨沟
8个姿势拍出紧身牛仔裤时尚大片!
“神经病”VS“精神病”,别再傻傻分不清!一篇文章让你搞清楚!
“泻痢停”全面停售!这些止泻药才是更好的选择
停售也是一种“保护”?“泻立停”错在哪里
黄连素提取原理及应用详解
“神经病”VS“精神病”,别再傻傻分不清!一篇文章让你搞清楚!