各类滤波器特性展示 用python
时间: 2023-07-29 18:03:41 浏览: 158
Python各种滤波器代码
4星 · 用户满意度95%
在Python中,我们可以使用SciPy库来展示各类滤波器特性。下面是展示4个常见滤波器特性的代码示例:
1. 低通滤波器特性展示
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
frequencies, response = signal.freqz(signal.butter(4, 0.2), fs=2*np.pi)
plt.plot(frequencies, abs(response))
plt.title("低通滤波器特性")
plt.xlabel("频率")
plt.ylabel("响应")
plt.show()
```
2. 高通滤波器特性展示
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
frequencies, response = signal.freqz(signal.butter(4, 0.2, btype='highpass'), fs=2*np.pi)
plt.plot(frequencies, abs(response))
plt.title("高通滤波器特性")
plt.xlabel("频率")
plt.ylabel("响应")
plt.show()
```
3. 带通滤波器特性展示
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
frequencies, response = signal.freqz(signal.butter(4, [0.2, 0.5], btype='bandpass'), fs=2*np.pi)
plt.plot(frequencies, abs(response))
plt.title("带通滤波器特性")
plt.xlabel("频率")
plt.ylabel("响应")
plt.show()
```
4. 带阻滤波器特性展示
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
frequencies, response = signal.freqz(signal.butter(4, [0.2, 0.5], btype='bandstop'), fs=2*np.pi)
plt.plot(frequencies, abs(response))
plt.title("带阻滤波器特性")
plt.xlabel("频率")
plt.ylabel("响应")
plt.show()
```
在上述示例中,我们使用了Butterworth滤波器函数来生成相应类型的滤波器,并使用`signal.freqz`函数获取频率响应。最后,我们使用Matplotlib库来绘制滤波器的特性曲线。
阅读全文