0

我对下采样的理解是,它是一种通过保留第一个样本然后在第一个样本之后的每第 n 个样本来降低 x 的采样率的操作。从 scipy 包的 resample 方法提供的示例清楚地说明了此操作,如可从链接访问的图片(https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.resample。 html ) 或如下提取

在此处输入图像描述

在放大的视图中,很明显原始数据点是逐点重新采样的。

但是,使用可通过链接访问的 mne 下采样示例:https ://mne.tools/dev/auto_examples/preprocessing/plot_resample.html ,我注意到数据点没有逐点重新采样,如下图所示

在此处输入图像描述

鉴于此,mne resample 是基于 scipy 包的 resample 方法,如 mne resample 函数所示: https ://github.com/mne-tools/mne-python/blob/607fb4613fb5a80dd225132a4a53fe43b8fde0fb/mne/filter.py# L1342

我可以知道这个问题是由于振铃伪影还是由于其他问题造成的?

此外,是否有缓解此问题的补救措施。

感谢您的任何见解。欣赏它

在 mne 讨论回购中提出了相同的问题,但截至撰写本文时尚未得到答复

4

1 回答 1

1

我对下采样的理解是,它是一种通过保留第一个样本然后在第一个样本之后的每第 n 个样本来降低 x 的采样率的操作。

重采样通常包括两个步骤:低通滤波以避免混叠,然后降低采样率(从结果信号中选择样本)。低通实际上改变了值,因此过滤数据的子选择步骤不一定会产生“在”原始信号上的点。

我可以知道这个问题是由于振铃伪影还是由于其他问题造成的?

在这种情况下,这可能是由于信号频域重采样中的(隐式)低通滤波造成的。在我看来这很合理。如果你想玩一下它,你可以

  1. 直接在您的数据上调用 scipy.signal.resample 并查看它的匹配程度。
  2. 填充您的信号,调用 scipy.signal.resample,并删除(现在减少长度)填充 - 这是 MNE 在内部所做的。
  3. 直接在您的数据上使用 scipy.signal.resample_poly。
  4. 手动低通滤波,然后直接从低通信号中选择样本,这就是 resample_poly 内部所做的。

此外,scipy.signal.resample是否进行频域重采样,因此在下采样时隐式使用 Nyquist 的砖墙滤波器(除非您为window参数指定某些内容,除了有效的砖墙滤波器外,它还应用于频域)。

ps 提供的答案是与 mne 的人们讨论的摘录,即 Eric Larson、Brunner Clemens、Phillip Alday。应该给予他们信任

于 2020-07-24T02:09:25.690 回答