Python 实现窗函数

在数字信号处理中,加窗是音频信号预处理重要的一步,以下使用 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})] 0.5[1cos(M12πn)],否则 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}) 0.540.46cos(M12πn),否则 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
    
  • 7
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值