python - 如何在python中创建带阻滤波器
问题描述
我有一个 .wav 音频文件,我想做的是过滤某些频率。噪声为 1000Hz,我想创建一个带阻滤波器来过滤 1000Hz 的噪声。我对python很陌生,所以我不知道我是否做得对。我想我做错了,但我不知道使用 signal.butter() 函数的正确方法是什么。
from scipy import signal
b,a = signal.butter(4, [999,1001], 'bandstop', sampling_rate, output='ba')
w, h = signal.freqz(b , a)
plt.plot(w, 20*np.log10(abs(h)))
它生成的图绝对不是带阻滤波器。
解决方案
您正在寻找的是一个陷波滤波器。它在 scipy.signal 库中实现:https ://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.iirnotch.html
来自页面:“陷波滤波器是具有窄带宽(高品质因数)的带阻滤波器。它拒绝窄频带并使其余频谱几乎没有变化。”
推荐阅读
- python - Errno 2 没有这样的文件或目录:“数据集”
- php - 如何避免帖子因条件而被移至垃圾箱?
- javascript - 将道具从 App 类传递给 const 函数 React Typescript
- caching - 如果 package.json 更改,如何使 Bitbucket 的 Pipeline 节点缓存失效
- java - 将 maven 包从 nexus 迁移到 gitlab 包注册表
- conv-neural-network - DenseNet 结果零计划
- node.js - NodeJS Express - TypeError:将循环结构转换为 JSON
- c# - 谁能向我解释如何使用 Func
? validateValue = null) Xamarin 社区工具包 ObservableObject 中的验证? - python-3.x - 从文件中找到 XYZ 坐标的平均值
- c - 将 int 传递给 pthread