[Mne_analysis] Why does MNE resample method does not sample the data point to point?

Eric Larson larson.eric.d at gmail.com
Thu Jul 23 08:40:56 EDT 2020
Search archives:

        External Email - Use Caution        

>
> 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.
>

Resampling typically consists of two steps: low-pass filtering to avoid
aliasing, then sample rate reduction (subselecting samples from the
resulting signal). The low-passing actually changes the values, so the
subselection-of-filtered-data step will not necessarily yield points that
were "on" the original signal.


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

In this case it's likely due to the (implicit) low-pass filtering in the
frequency-domain resampling of the signal. It looks pretty reasonable to
me. If you want to play around with it a bit, you can

1. Call scipy.signal.resample directly on your data and see how closely it
matches.
2. Pad your signal, call scipy.signal.resample, and remove the (now
reduced-length) padding -- this is what MNE does internally.
3. Use scipy.signal.resample_poly directly on your data.
4. Manually low-pass filter and then directly subselect samples from the
low-passed signal, which is what resample_poly does internally.

Hopefully these all give similar results for your signal(s).

Eric
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20200723/a8812d4e/attachment.html 


More information about the Mne_analysis mailing list