数字信号处理是处理离散时间信号的关键技术之一。在实际应用中,常常需要对信号进行滤波以去除噪声或者提取感兴趣的频率分量。其中,FIR(有限脉冲响应)数字滤波器是一种常用的滤波器类型。本文将介绍如何设计和实现 FIR 数字滤波器,并提供相应的源代码供参考。
FIR 数字滤波器的设计主要涉及两个方面:滤波器的系数设计和滤波器的实现。滤波器的系数设计决定了滤波器的频率响应特性,而滤波器的实现决定了如何将滤波器应用于输入信号。
一、滤波器系数设计
FIR 数字滤波器的频率响应通过其冲击响应的系数确定。常用的设计方法包括窗函数法、频率采样法和最小均方误差法等。下面以窗函数法为例进行说明。
窗函数法是一种简单有效的 FIR 滤波器设计方法。首先选择一个合适的窗函数,例如矩形窗、汉宁窗或者 Hamming 窗等。然后根据滤波器的截止频率和带宽要求,确定滤波器的长度 N。接下来,在频域上设计滤波器的理想频率响应,通常使用低通滤波器作为例子。
以下是一个使用矩形窗设计低通 FIR 数字滤波器的示例代码:
import numpy as np
def design_fir_filter