我最近一直在用高采样率(100万或更高)取样的数据工作。
我正在尝试编写一个高效的多相滤波器,(基于看到的这里代码)
我的抽取率接近10000,所以奈奎斯特滤波器的频率是~100赫兹。
经过一些调试后,我意识到当使用scipy.signal.freqz表示我的过滤器水龙头时,分辨率被限制在大约1000 Hz,当增加冷杉过滤顺序时,这种情况不会改变。
我找不到任何关于这个问题的文档,我怎么能以更高的分辨率观察我的过滤器?
发布于 2022-05-12 03:03:44
scipy.signal.freqz
的分辨率受worN
通过半频谱的fs/2/worN
公式(或全频谱的fs/worN
)的频率点数目的限制。由于worN
在默认情况下是512,如果您的信号采样在1 1MHz,您将获得大约1000000‘d/2/512~ 1000的分辨率。
要提高freqz
在filterCoefficients
上的分辨率(在您的情况下由firwin
获得),只需增加worN
即可。例如,如下所示:
w,h = freqz(filterCoefficients, worN=2048, fs=fs)
https://stackoverflow.com/questions/72201989
复制相似问题