编程实现8阶FIR滤波器。 其中,b0~b7分别为: 0.04,0.02,0.15,-0.08,0.21,-0.09,-0.21,0.07
时间: 2024-03-12 20:43:14 浏览: 79
巴特沃斯IIR滤波器,Kaiser窗FIR滤波器,Parks-McClellan等波纹FIR滤波器的matlab仿真
好的,以下是一种实现8阶FIR滤波器的方法,使用的编程语言是Python:
```python
import numpy as np
def fir_filter(x):
# coefficients
b = [0.04, 0.02, 0.15, -0.08, 0.21, -0.09, -0.21, 0.07]
# buffer
buf = np.zeros(len(b))
# filtered signal
y = np.zeros(len(x))
# apply filter
for i in range(len(x)):
# add new sample to buffer
buf[1:] = buf[:-1]
buf[0] = x[i]
# compute filtered output
y[i] = np.sum(b * buf)
return y
```
这个函数`fir_filter`接收一个输入信号`x`,然后使用给定的FIR滤波器系数进行滤波操作,并返回滤波后的输出信号`y`。在函数内部,我们定义了一个长度为8的系数向量`b`,一个长度为8的缓冲区`buf`,以及一个长度与输入信号相同的输出信号`y`。然后,我们遍历输入信号的每个样本,将其添加到缓冲区中,并计算当前的输出信号。最后,返回输出信号`y`。
阅读全文