为什么mne重采样方法不逐点采样数据?

2024-05-13 18:56:25 发布

您现在位置:Python中文网/ 问答频道 /正文

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

enter image description here

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

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

enter image description here

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

我可以知道这个问题是由于振铃伪影还是由于其他问题吗

此外,是否有补救措施来缓解这一问题

谢谢你的洞察力。感激

在跨国公司讨论回购协议中也提出了同样的问题,但截至撰写本文时仍未得到回答


Tags: 方法httpsorg示例docsdoc链接html
1条回答
网友
1楼 · 发布于 2024-05-13 18:56:25

My understanding of downsampling is that it is an operation to decrease the sample rate of x by keeping the first sample and then every nth sample after the first.

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

May I know whether this issue is due to the ringing artifacts or due to other problems?

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

  1. 直接对数据调用scipy.signal.resample,查看其匹配程度
  2. 填充信号,调用scipy.signal.resample,然后移除(现在) 缩短长度)填充这是MNE内部所做的
  3. 直接在数据上使用scipy.signal.resample\u poly
  4. 手动进行低通滤波,然后直接从低通信号中再选择样本,这就是“重采样多边形”在内部所做的

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

另外,提供的答案摘自与mne员工的讨论,即Eric Larson、Brunner Clemens、Phillip Alday。应该赞扬他们

相关问题 更多 >