FIR滤波器代码最快速实现
时间: 2024-10-10 20:07:16 浏览: 24
FIR (Finite Impulse Response) 滤波器是一种线性相位滤波器,通常用于信号处理中进行低通、高通、带通或带阻等滤波操作。其特点是滤波器的输出仅取决于输入信号当前和过去的状态。在编程中,FIR滤波器的实现通常是通过直接计算滤波系数与输入信号逐点相乘再累加得到。
以下是一个简单的FIR滤波器的Python代码示例,使用了NumPy库:
```python
import numpy as np
def fir_filter(input_signal, filter_coefficients):
# 确保输入信号和滤波系数长度匹配
assert len(input_signal) == len(filter_coefficients)
# 使用卷积运算实现FIR滤波
output_signal = np.convolve(input_signal, [1] + list(filter_coefficients), mode='same')
return output_signal
# 示例:设计一个简单的5点平均滤波器
filter_coefficients = [1 / 6] * 5
input_signal = [1, 2, 3, 4, 5, 6] # 假设这是你要滤波的信号
filtered_output = fir_filter(input_signal, filter_coefficients)
```
在这个例子中,`filter_coefficients`是滤波器的系数数组,决定了滤波特性。`mode='same'`使得输出信号的长度与输入信号一致,避免了边缘效应。
阅读全文