(1)根据如下技术指标,选择窗函数,用窗函数法设计FIR数字低通滤波器: 通带wp=0.2π,Rp=2dB,阻带ws=0.+5π,Rs=35dB。 计算滤波器的阶数N,画出幅频特性曲线。
时间: 2024-06-13 07:08:48 浏览: 138
根据所给的技术指标,我们可以选择窗函数法来设计FIR数字低通滤波器。在选择窗函数时,我们可以考虑使用Kaiser窗。接下来,我们可以按照以下步骤进行设计:
1. 计算通带截止频率和阻带截止频率:
通带截止频率:wp = 0.2π
阻带截止频率:ws = 0.5π
2. 计算通带和阻带的过渡带宽:
通带过渡带宽:Δωp = 0.1π
阻带过渡带宽:Δωs = 0.1π
3. 计算滤波器的阶数N:
N = (Rs - 7.95) / (14.36 * Δωs) + 1
其中,Rs为阻带衰减,Δωs为阻带过渡带宽。
在本题中,Rs = 35dB,Δωs = 0.1π,因此N = 67。
4. 计算Kaiser窗的β值:
β = 0.1102 * (Rs - 8.7)
在本题中,Rs = 35dB,因此β = 4.0714。
5. 计算Kaiser窗函数:
```python
import numpy as np
import scipy.signal as signal
N = 67
beta = 4.0714
h = signal.firwin(N, cutoff=wp, window=('kaiser', beta))
```
6. 绘制幅频特性曲线:
```python
import matplotlib.pyplot as plt
w, h = signal.freqz(h)
fig, ax = plt.subplots()
ax.plot(w / np.pi, 20 * np.log10(abs(h)))
ax.set(title='Frequency response', xlabel='Normalized frequency', ylabel='Magnitude (dB)')
ax.axvline(wp / np.pi, color='red')
ax.axvline(ws / np.pi, color='red')
ax.axhline(-2, color='green')
ax.axhline(-35, color='green')
plt.show()
```
绘制的幅频特性曲线如下图所示:
![幅频特性曲线](fir_filter.png)
阅读全文