fir 窗函数低通滤波器设计代码
时间: 2023-07-29 12:07:17 浏览: 90
FIR低通滤波器设计
4星 · 用户满意度95%
下面是使用FIR窗函数设计低通滤波器的代码示例:
```python
import numpy as np
import matplotlib.pyplot as plt
# 设计FIR滤波器函数
def fir_filter(num_taps, cutoff_freq, fs):
# 采样间隔
Ts = 1 / fs
# 截止频率
wc = 2 * np.pi * cutoff_freq * Ts
# 窗口函数
window = np.hamming(num_taps)
# 系数计算
n = np.arange(num_taps)
h = np.sinc(wc / np.pi * (n - (num_taps - 1) / 2)) * window
h /= np.sum(h)
return h
# 参数设置
num_taps = 31 # 系数个数
cutoff_freq = 1000.0 # 截止频率
fs = 8000.0 # 采样频率
# FIR滤波器设计
h = fir_filter(num_taps, cutoff_freq, fs)
# 频率响应绘图
w, h_freq = signal.freqz(h)
f = w / (2 * np.pi) * fs
plt.figure()
plt.plot(f, abs(h_freq))
plt.xlabel('Frequency (Hz)')
plt.ylabel('Amplitude')
plt.title('Frequency Response')
plt.show()
```
在这个例子中,我们使用了Hamming窗口函数,并对系数进行了归一化。然后,我们使用`signal.freqz()`函数计算频率响应,并将其绘制出来。你可以根据需要修改参数,如系数个数、截止频率和采样频率,以满足你的要求。
阅读全文