numpy - 在频域中将高频归零而不是与低通滤波器进行卷积是否正确?

标签 numpy scipy signal-processing fft lowpass-filter

我有一个 3M 样本长的信号。我想对其进行二次采样。我知道为了避免混叠,我需要滤除高于奈奎斯特频率的频率。我知道我可以通过与某些滤波器(例如巴特沃斯)进行卷积来做到这一点,但我知道这样可以保留一些高频。

我想知道是否可以将频域中不需要的频率归零并使用逆 FFT 返回到时域。这种方法在数字上正确吗?我知道某些库通过使用 FFT 来加速卷积。

最佳答案

这并不完全正确。将 FFT 中的最高频率清零只会将波长除以 FFT 长度的频率清零。如果您将信号频移半个 bin 并进行另一次 FFT,您会发现存在一些泄漏,并且较高频率并不全为零。

结果将非常接近,但是对整个信号进行 FFT 是一种非常昂贵的方法来获得非常接近的结果。

您应该只使用普通的过滤器。只要在滤波器截止频率和奈奎斯特频率之间留出合理的空间,就很容易确保任何混叠误差都比量化误差和其他噪声小得多。

关于numpy - 在频域中将高频归零而不是与低通滤波器进行卷积是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70405971/

相关文章:

python - Panda如何将行分组到不同的时间桶中?

python - 检查正定性或半正定性

android - "Frequency Shift Keying"安卓解码器

numpy - 使用python将图像转换为rgb数组并将其转换为CMYK数组

python - 你如何找到低于某个值的最大 float ?

python - scipy.optimize + kmeans 聚类

python - 删除时间序列中的峰值和步骤等跳跃

android - 适用于 Android 的 TARSOS DSP : retrieving SpectralPeaks

python - 数据 View 不显示 DataFrame 的索引,也不显示 numpy 数组中的行号

python - Numpy 2D 数组沿特定轴由其他 2D 索引