Python 实现窗函数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_43773093/article/details/87897876

在数字信号处理中,加窗是音频信号预处理重要的一步,以下使用 Python 实现三种常见的窗函数:
矩形窗的定义为:
如果 0 \leq n \leq M - 1, W(n) = 1,否则 W(n) = 0。
汉宁窗(Hanning)的定义为:
如果 0 \leq n \leq M - 1, W(n) = 0.5 [ 1 c o s ( 2 π n M 1 ) ] 0.5[1-cos(\frac{2\pi n}{M-1})] ,否则 W(n) = 0。
Python高效编程
汉明窗(Hamming):
如果 0 \leq n \leq M - 1, W(n) = 0.54 0.46 c o s ( 2 π n M 1 ) 0.54-0.46cos(\frac{2\pi n}{M-1}) ,否则 W(n) = 0。
Python高效编程

import numpy as np

def choose_windows(name='Hamming', N=20):
    # Rect/Hanning/Hamming
    if name == 'Hamming':
        window = np.array([0.54 - 0.46 * np.cos(2 * np.pi * n / (N - 1)) for n in range(N)])
    elif name == 'Hanning':
        window = np.array([0.5 - 0.5 * np.cos(2 * np.pi * n / (N - 1)) for n in range(N)])
    elif name == 'Rect':
        window = np.ones(N)
    return window
    

猜你喜欢

转载自blog.csdn.net/weixin_43773093/article/details/87897876