Hann 窗的定义
Hann 窗通常定义为:
w ( n ) = 0.5 ( 1 − cos ( 2 π n L − 1 ) ) w(n) = 0.5 \left(1 - \cos\left(\frac{2\pi n}{L - 1}\right)\right) w(n)=0.5(1−cos(L−12πn))
其中:
- n n n 是样本索引,范围为 0 0 0 到 L − 1 L - 1 L−1
- L L L 是窗口长度
计算 ∣ w ( n ) ∣ 2 |w(n)|^2 ∣w(n)∣2 的平均值
我们需要计算:
1 L ∑ n = 0 L − 1 ∣ w ( n ) ∣ 2 = 1 L ∑ n = 0 L − 1 [ 0.5 ( 1 − cos ( 2 π n L − 1 ) ) ] 2 \frac{1}{L} \sum_{n=0}^{L-1} |w(n)|^2 = \frac{1}{L} \sum_{n=0}^{L-1} \left[0.5 \left(1 - \cos\left(\frac{2\pi n}{L - 1}\right)\right)\right]^2 L1n=0∑L−1∣w(n)∣2=L1n=0∑L−1[0.5(1−cos(L−12πn))]2
展开平方:
∣ w ( n ) ∣ 2 = [ 0.5 ( 1 − cos ( 2 π n L − 1 ) ) ] 2 = 0.25 ( 1 − 2 cos ( 2 π n L − 1 ) + cos 2 ( 2 π n L − 1 ) ) |w(n)|^2 = \left[0.5 \left(1 - \cos\left(\frac{2\pi n}{L - 1}\right)\right)\right]^2 = 0.25 \left(1 - 2\cos\left(\frac{2\pi n}{L - 1}\right) + \cos^2\left(\frac{2\pi n}{L - 1}\right)\right) ∣w(n)∣2=[0.5(1−cos(L−12πn))]2=0.25(1−2cos(L−12πn)+cos2(L−12πn))
因此,平均值变为:
1 L ∑ n = 0 L − 1 ∣ w ( n ) ∣ 2 = 0.25 [ 1 L ∑ n = 0 L − 1 1 − 2 ⋅ 1 L ∑ n = 0 L − 1 cos ( 2 π n L − 1 ) + 1 L ∑ n = 0 L − 1 cos 2 ( 2 π n L − 1 ) ] \frac{1}{L} \sum_{n=0}^{L-1} |w(n)|^2 = 0.25 \left[ \frac{1}{L} \sum_{n=0}^{L-1} 1 - 2 \cdot \frac{1}{L} \sum_{n=0}^{L-1} \cos\left(\frac{2\pi n}{L - 1}\right) + \frac{1}{L} \sum_{n=0}^{L-1} \cos^2\left(\frac{2\pi n}{L - 1}\right) \right] L1n=0∑L−1∣w(n)∣2=0.25[L1n=0∑L−11−2⋅L1n=0∑L−1cos(L−12πn)+L1n=0∑L−1cos2(L−12πn)]
逐项计算:
- 第一项:
1 L ∑ n = 0 L − 1 1 = L L = 1 \frac{1}{L} \sum_{n=0}^{L-1} 1 = \frac{L}{L} = 1 L1n=0∑L−11=LL=1
- 第二项:
1 L ∑ n = 0 L − 1 cos ( 2 π n L − 1 ) \frac{1}{L} \sum_{n=0}^{L-1} \cos\left(\frac{2\pi n}{L - 1}\right) L1n=0∑L−1cos(L−12πn)
对于 n n n 从 0 0 0 到 L − 1 L - 1 L−1, 2 π n L − 1 \frac{2\pi n}{L - 1} L−12πn 覆盖了一个完整的周期 0 0 0 到 2 π 2\pi 2π。因此,余弦函数在一个完整周期上的平均值为零:
1 L ∑ n = 0 L − 1 cos ( 2 π n L − 1 ) = 0 \frac{1}{L} \sum_{n=0}^{L-1} \cos\left(\frac{2\pi n}{L - 1}\right) = 0 L1n=0∑L−1cos(L−12πn)=0
- 第三项:
1 L ∑ n = 0 L − 1 cos 2 ( 2 π n L − 1 ) \frac{1}{L} \sum_{n=0}^{L-1} \cos^2\left(\frac{2\pi n}{L - 1}\right) L1n=0∑L−1cos2(L−12πn)
利用三角恒等式 cos 2 ( x ) = 1 + cos ( 2 x ) 2 \cos^2(x) = \frac{1 + \cos(2x)}{2} cos2(x)=21+cos(2x),我们有:
cos 2 ( 2 π n L − 1 ) = 1 + cos ( 4 π n L − 1 ) 2 \cos^2\left(\frac{2\pi n}{L - 1}\right) = \frac{1 + \cos\left(\frac{4\pi n}{L - 1}\right)}{2} cos2(L−12πn)=21+cos(L−14πn)
因此,
1 L ∑ n = 0 L − 1 cos 2 ( 2 π n L − 1 ) = 1 2 [ 1 L ∑ n = 0 L − 1 1 + 1 L ∑ n = 0 L − 1 cos ( 4 π n L − 1 ) ] \frac{1}{L} \sum_{n=0}^{L-1} \cos^2\left(\frac{2\pi n}{L - 1}\right) = \frac{1}{2} \left[ \frac{1}{L} \sum_{n=0}^{L-1} 1 + \frac{1}{L} \sum_{n=0}^{L-1} \cos\left(\frac{4\pi n}{L - 1}\right) \right] L1n=0∑L−1cos2(L−12πn)=21[L1n=0∑L−11+L1n=0∑L−1cos(L−14πn)]
同理, cos ( 4 π n L − 1 ) \cos\left(\frac{4\pi n}{L - 1}\right) cos(L−14πn) 在一个完整周期上的平均值也为零,因此:
1 L ∑ n = 0 L − 1 cos ( 4 π n L − 1 ) = 0 \frac{1}{L} \sum_{n=0}^{L-1} \cos\left(\frac{4\pi n}{L - 1}\right) = 0 L1n=0∑L−1cos(L−14πn)=0
所以,
1 L ∑ n = 0 L − 1 cos 2 ( 2 π n L − 1 ) = 1 2 ⋅ 1 = 0.5 \frac{1}{L} \sum_{n=0}^{L-1} \cos^2\left(\frac{2\pi n}{L - 1}\right) = \frac{1}{2} \cdot 1 = 0.5 L1n=0∑L−1cos2(L−12πn)=21⋅1=0.5
综合所有项
将各项结果代入平均值公式:
1 L ∑ n = 0 L − 1 ∣ w ( n ) ∣ 2 = 0.25 [ 1 − 2 ⋅ 0 + 0.5 ] = 0.25 × 1.5 = 0.375 \frac{1}{L} \sum_{n=0}^{L-1} |w(n)|^2 = 0.25 \left[ 1 - 2 \cdot 0 + 0.5 \right] = 0.25 \times 1.5 = 0.375 L1n=0∑L−1∣w(n)∣2=0.25[1−2⋅0+0.5]=0.25×1.5=0.375
结论
通过上述计算,我们得出:
1 L ∑ n = 0 L − 1 ∣ w ( n ) ∣ 2 = 0.375 \frac{1}{L} \sum_{n=0}^{L-1} |w(n)|^2 = 0.375 L1n=0∑L−1∣w(n)∣2=0.375
这意味着,Hann 窗在窗口长度上的平均值为 0.375。这一结果说明,应用 Hann 窗会导致信号的有效幅度降低,从而引起信噪比(SNR)的降低,这就是所谓的处理损失(Processing Loss)。
直观理解
- 能量衰减:Hann 窗通过对信号的每个样本进行加权(特别是在窗口的边缘部分),减少了信号的整体能量。
- 处理损失:这种能量的减少直接导致了信号的信噪比降低,具体表现为平均能量降低到原来的 37.5%。
补充说明
在实际应用中,为了补偿处理损失,通常会对加窗后的信号进行增益调整。例如,可以将加窗后的信号幅度乘以一个系数,以恢复信号的原始能量水平。