<p><span style="padding: 3px 10px; border-radius: 5px; color: #ffffff; font-weight: bold; display: inline-block; background-color: #ff0000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;External Email - Use Caution&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></p><p></p><div>It's hard to know for sure why Epochs are getting dropped because your example code doesn't include the definition of `dataconv1` (nor `event_id`).&nbsp; However, with your given code you are guaranteed to have the first epoch get dropped, because your call to `make_fixed_length_events` starts at zero, but you're trying to make epochs with `tmin=-0.2`.&nbsp; If your first event is at time zero, there isn't any data before that, so the first epoch will always get dropped with error "NO_DATA".&nbsp; If you change the `start` parameter of `make_fixed_length_events` to be &gt;0.2, that won't happen.<br></div><div><br></div><div>Here is a (simplified) version of your code that uses fake data (random numbers); when I run this I see the first epoch dropped because "NO_DATA" and the last epoch dropped because "TOO_SHORT", but the other 8 epochs in the middle are retained.&nbsp; I skipped defining `picks` (your example was picking all channels, which is the default anyway) and I skipped filtering because I'm using fake data so there's no way to know from my code whether filtering is influencing the epoch dropping of your real data.<br></div><div><br></div><div>```<br></div><div>import numpy as np<br></div><div>import mne<br></div><div>rng = np.random.default_rng()<br></div><div>channames = ['Cz','Fz','C3','C4','F3','F4','P7','P8']<br></div><div>ch_types = ['eeg','eeg','eeg','eeg','eeg','eeg','eeg','eeg']<br></div><div>sfreq = 250&nbsp; # Hz for eeg<br></div><div># fake data<br></div><div>dataconv1 = rng.normal(size=(len(channames), 40 * sfreq))&nbsp; # 40 seconds of data<br></div><div># Create the info structure needed by MNE<br></div><div>info = mne.create_info(ch_names=channames, sfreq=sfreq, ch_types=ch_types)<br></div><div>raw = mne.io.RawArray(dataconv1, info)<br></div><div>evenfile = mne.make_fixed_length_events(raw, id=1, start=0, stop=None,<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; duration=4.0, first_samp=True,<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; overlap=0.0)<br></div><div>event_id = dict(foo=1)<br></div><div>epochs = mne.Epochs(raw, evenfile, event_id=event_id, tmin=-0.2, tmax=4,<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; baseline=(-0.2, 0), event_repeated='drop',<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proj=False, preload=True, reject_by_annotation=None)<br></div><div>print(epochs.drop_log)<br></div><div>```<br></div><div><br></div><div class="protonmail_signature_block"><div class="protonmail_signature_block-user"><div>-- dan<br></div><div>Daniel McCloy<br></div><div>https://dan.mccloy.info<br></div><div>Research Scientist<br></div><div>Institute for Learning and Brain Sciences<br></div><div>University of Washington<br></div></div><div class="protonmail_signature_block-proton protonmail_signature_block-empty"><br></div></div><div><br></div><div>‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐<br></div><div> On Friday, July 24, 2020 5:44 AM, Ben Ighoyota Ajenaghughrure &lt;ighoyota@tlu.ee&gt; wrote:<br></div><div> <br></div><blockquote class="protonmail_quote" type="cite"><p><span style="background-color:rgb(255, 0, 0)"><span style="color:rgb(255, 255, 255)"><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;External Email - Use Caution&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b></span></span><br></p><p><br></p><div dir="ltr"><div dir="ltr"><div>Dear All,<br></div><div><br></div><div>The response from epochs.drop_log is&nbsp;[['NO_DATA']], yet i get the message "1 bad epochs dropped"<br></div><div><br></div><div>Is there anyway to&nbsp; figure out why all my epochs are being dropped?<br></div><div><br></div><div><b><u>source code below</u></b><br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; channames = ['Cz','Fz','C3','C4','F3','F4','P7','P8']&nbsp;<br></div><div><div>&nbsp; &nbsp; &nbsp; &nbsp; ch_types = ['eeg','eeg','eeg','eeg','eeg','eeg','eeg','eeg']<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; # Sampling rate of the Nautilus machine<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; sfreq = 250 &nbsp;# Hz for eeg<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp;# Create the info structure needed by MNE<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; info = mne.create_info(ch_names=channames, sfreq=sfreq, ch_types=ch_types)<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; raw = mne.io.RawArray(dataconv1, info)<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; raw.set_annotations(None)<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; raw.del_proj()<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; picks =mne.pick_types(<a href="http://raw.info">raw.info</a>, meg=False, eeg=True, stim=True, eog=False,exclude='bads')<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; raw=raw.filter(0.1, 120, fir_design='firwin')<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; raw=raw.notch_filter(np.arange(50, 120, 50), picks=picks, filter_length='auto', phase='zero')<br></div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;evenfile=mne.make_fixed_length_events(raw, id=1, start=0, stop=None, duration=4.0, first_samp=True, overlap=0.0)<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; epochs = mne.Epochs(raw, evenfile, event_id=event_id, tmin=-0.2, tmax=4, &nbsp;picks=picks, baseline=(-0.2, 0), event_repeated='drop',proj=False, preload=True, reject_by_annotation=None)<br></div><div>&nbsp; &nbsp; &nbsp; &nbsp; print(epochs.drop_log)<br></div></div><div>data = epochs.get_data()<br></div><div><br></div><div><br></div><div><br></div><div><div><div dir="ltr" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div style="font-size:12.8px"><span style="color:rgb(51, 51, 51)"><span style="font-family:&quot;Droid Serif&quot;">A. Ighoyota ben</span></span><br></div><div style="font-size:12.8px"><span style="color:rgb(51, 51, 51)"><span style="font-family:&quot;Droid Serif&quot;">Junior Researcher HCI (PhD in-view)&nbsp;</span></span><br></div><div style="font-size:12.8px"><span style="color:rgb(51, 51, 51)"><span style="font-family:&quot;Droid Serif&quot;"><span style="font-size:12.8px">Tallinn University, Estonia</span></span></span><br></div><div style="font-size:12.8px"><span style="color:rgb(51, 51, 51)"><span style="font-family:&quot;Droid Serif&quot;">School of digital Technologies.</span></span><br></div><div style="font-size:12.8px"><span style="color:rgb(51, 51, 51)"><span style="font-family:&quot;Droid Serif&quot;">mobile:<a href="tel:+372%205832%206393" value="+37258326393" style="color:rgb(17,85,204)" target="_blank">+372582</a>78794</span></span><br></div><div style="font-size:12.8px"><span style="color:rgb(51, 51, 51)"><span style="font-family:&quot;Droid Serif&quot;">skype: ighoyota-ben</span></span><br></div></div></div></div></div></div><div><br></div></div></div><div><br></div><div class="gmail_quote"><div dir="ltr">On Fri, 24 Jul 2020 at 04:58, &lt;<a href="mailto:mne_analysis-request@nmr.mgh.harvard.edu">mne_analysis-request@nmr.mgh.harvard.edu</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>Send Mne_analysis mailing list submissions to<br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; <a href="mailto:mne_analysis@nmr.mgh.harvard.edu" target="_blank">mne_analysis@nmr.mgh.harvard.edu</a><br></div><div> <br></div><div> To subscribe or unsubscribe via the World Wide Web, visit<br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; <a href="https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis" rel="noreferrer" target="_blank">https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis</a><br></div><div> or, via email, send a message with subject or body 'help' to<br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; <a href="mailto:mne_analysis-request@nmr.mgh.harvard.edu" target="_blank">mne_analysis-request@nmr.mgh.harvard.edu</a><br></div><div> <br></div><div> You can reach the person managing the list at<br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; <a href="mailto:mne_analysis-owner@nmr.mgh.harvard.edu" target="_blank">mne_analysis-owner@nmr.mgh.harvard.edu</a><br></div><div> <br></div><div> When replying, please edit your Subject line so it is more specific<br></div><div> than "Re: Contents of Mne_analysis digest..."<br></div><div> <br></div><div> <br></div><div> Today's Topics:<br></div><div> <br></div><div> &nbsp; &nbsp;1. Re: epoch dropped problem (Alexandre Gramfort)<br></div><div> &nbsp; &nbsp;2. Re: loading the subject from BRAINSTORM (Alexandre Gramfort)<br></div><div> &nbsp; &nbsp;3. Re: Mne_analysis Digest, Vol 150, Issue 40 (<a href="mailto:balandongiv@gmail.com" target="_blank">balandongiv@gmail.com</a>)<br></div><div> <br></div><div> <br></div><div> ----------------------------------------------------------------------<br></div><div> <br></div><div> Message: 1<br></div><div> Date: Thu, 23 Jul 2020 22:57:00 +0200<br></div><div> From: Alexandre Gramfort &lt;<a href="mailto:alexandre.gramfort@inria.fr" target="_blank">alexandre.gramfort@inria.fr</a>&gt;<br></div><div> Subject: Re: [Mne_analysis] epoch dropped problem<br></div><div> To: Discussion and support forum for the users of MNE Software<br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; &lt;<a href="mailto:mne_analysis@nmr.mgh.harvard.edu" target="_blank">mne_analysis@nmr.mgh.harvard.edu</a>&gt;<br></div><div> Message-ID:<br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; &lt;CADeotZoS51gPzBn+oLTxCnLTgtpGy=<a href="mailto:1DyWrFEnOhfM8Ouuevjg@mail.gmail.com" target="_blank">1DyWrFEnOhfM8Ouuevjg@mail.gmail.com</a>&gt;<br></div><div> Content-Type: text/plain; charset="utf-8"<br></div><div> <br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; External Email - Use Caution&nbsp; &nbsp; &nbsp; &nbsp; <br></div><div> <br></div><div> What do epochs.drop_log and epochs.plot_drop_log() give you?<br></div><div> <br></div><div> Alex<br></div><div> <br></div><div> <br></div><div> <br></div><div> ------------------------------<br></div><div> <br></div><div> Message: 2<br></div><div> Date: Thu, 23 Jul 2020 22:58:15 +0200<br></div><div> From: Alexandre Gramfort &lt;<a href="mailto:alexandre.gramfort@inria.fr" target="_blank">alexandre.gramfort@inria.fr</a>&gt;<br></div><div> Subject: Re: [Mne_analysis] loading the subject from BRAINSTORM<br></div><div> To: Discussion and support forum for the users of MNE Software<br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; &lt;<a href="mailto:mne_analysis@nmr.mgh.harvard.edu" target="_blank">mne_analysis@nmr.mgh.harvard.edu</a>&gt;<br></div><div> Message-ID:<br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; &lt;<a href="mailto:CADeotZrjoB0oSOmbXpzESX-_39Dwmqr6VNiSobMqg_043nOD9w@mail.gmail.com" target="_blank">CADeotZrjoB0oSOmbXpzESX-_39Dwmqr6VNiSobMqg_043nOD9w@mail.gmail.com</a>&gt;<br></div><div> Content-Type: text/plain; charset="utf-8"<br></div><div> <br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; External Email - Use Caution&nbsp; &nbsp; &nbsp; &nbsp; <br></div><div> <br></div><div> hi,<br></div><div> <br></div><div> no it's not that simple as Brainstorm decimates the cortex while MNE<br></div><div> subsamples the high resolution mesh.<br></div><div> <br></div><div> Alex<br></div><div> <br></div><div> <br></div><div> On Thu, Jul 23, 2020 at 4:06 PM Abdallah Qusaibe<br></div><div> &lt;<a href="mailto:abdallah.qusaibe@gmail.com" target="_blank">abdallah.qusaibe@gmail.com</a>&gt; wrote:<br></div><div> &gt;<br></div><div> &gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;External Email - Use Caution<br></div><div> &gt;<br></div><div> &gt; Hi All,<br></div><div> &gt;<br></div><div> &gt; Can we load in mne the subject (inorder to use the cortex mesh) used in Brainstorm,<br></div><div> &gt;<br></div><div> &gt; Cheers<br></div><div> &gt; Abdallah<br></div><div> &gt; _______________________________________________<br></div><div> &gt; Mne_analysis mailing list<br></div><div> &gt; <a href="mailto:Mne_analysis@nmr.mgh.harvard.edu" target="_blank">Mne_analysis@nmr.mgh.harvard.edu</a><br></div><div> &gt; <a href="https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis" rel="noreferrer" target="_blank">https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis</a><br></div><div> <br></div><div> <br></div><div> <br></div><div> ------------------------------<br></div><div> <br></div><div> Message: 3<br></div><div> Date: Fri, 24 Jul 2020 09:55:33 +0800<br></div><div> From: &lt;<a href="mailto:balandongiv@gmail.com" target="_blank">balandongiv@gmail.com</a>&gt;<br></div><div> Subject: Re: [Mne_analysis] Mne_analysis Digest, Vol 150, Issue 40<br></div><div> To: &lt;<a href="mailto:mne_analysis@nmr.mgh.harvard.edu" target="_blank">mne_analysis@nmr.mgh.harvard.edu</a>&gt;<br></div><div> Message-ID: &lt;004e01d6615d$85632b50$902981f0$@<a href="http://gmail.com" rel="noreferrer" target="_blank">gmail.com</a>&gt;<br></div><div> Content-Type: text/plain;&nbsp; &nbsp; &nbsp; &nbsp;charset="us-ascii"<br></div><div> <br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; External Email - Use Caution&nbsp; &nbsp; &nbsp; &nbsp; <br></div><div> <br></div><div> Dear Clemens, Larson, Phillip,<br></div><div> <br></div><div> Thanks for the detail explanation, really appreciate it.<br></div><div> <br></div><div> Just a suggestion, maybe part of the discussion can be incorporated<br></div><div> somewhere along with mne FAQ or equivalent. This might be helpful,<br></div><div> especially to those new in the field.<br></div><div> <br></div><div> Rodney<br></div><div> <br></div><div> <br></div><div> -----Original Message-----<br></div><div> From: <a href="mailto:mne_analysis-bounces@nmr.mgh.harvard.edu" target="_blank">mne_analysis-bounces@nmr.mgh.harvard.edu</a><br></div><div> &lt;<a href="mailto:mne_analysis-bounces@nmr.mgh.harvard.edu" target="_blank">mne_analysis-bounces@nmr.mgh.harvard.edu</a>&gt; On Behalf Of<br></div><div> <a href="mailto:mne_analysis-request@nmr.mgh.harvard.edu" target="_blank">mne_analysis-request@nmr.mgh.harvard.edu</a><br></div><div> Sent: Thursday, 23 July, 2020 9:10 PM<br></div><div> To: <a href="mailto:mne_analysis@nmr.mgh.harvard.edu" target="_blank">mne_analysis@nmr.mgh.harvard.edu</a><br></div><div> Subject: Mne_analysis Digest, Vol 150, Issue 40<br></div><div> <br></div><div> Send Mne_analysis mailing list submissions to<br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; <a href="mailto:mne_analysis@nmr.mgh.harvard.edu" target="_blank">mne_analysis@nmr.mgh.harvard.edu</a><br></div><div> <br></div><div> To subscribe or unsubscribe via the World Wide Web, visit<br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; <a href="https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis" rel="noreferrer" target="_blank">https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis</a><br></div><div> or, via email, send a message with subject or body 'help' to<br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; <a href="mailto:mne_analysis-request@nmr.mgh.harvard.edu" target="_blank">mne_analysis-request@nmr.mgh.harvard.edu</a><br></div><div> <br></div><div> You can reach the person managing the list at<br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; <a href="mailto:mne_analysis-owner@nmr.mgh.harvard.edu" target="_blank">mne_analysis-owner@nmr.mgh.harvard.edu</a><br></div><div> <br></div><div> When replying, please edit your Subject line so it is more specific than<br></div><div> "Re: Contents of Mne_analysis digest..."<br></div><div> <br></div><div> <br></div><div> Today's Topics:<br></div><div> <br></div><div> &nbsp; &nbsp;1. Re: Why does MNE resample method does not sample the data<br></div><div> &nbsp; &nbsp; &nbsp; point to point? (Eric Larson)<br></div><div> &nbsp; &nbsp;2. Re: Why does MNE resample method does not sample the data<br></div><div> &nbsp; &nbsp; &nbsp; point to point? (Brunner, Clemens (<a href="mailto:clemens.brunner@uni-graz.at" target="_blank">clemens.brunner@uni-graz.at</a>))<br></div><div> &nbsp; &nbsp;3. Re: Why does MNE resample method does not sample the data<br></div><div> &nbsp; &nbsp; &nbsp; point to point? (Phillip Alday)<br></div><div> <br></div><div> <br></div><div> ----------------------------------------------------------------------<br></div><div> <br></div><div> Message: 1<br></div><div> Date: Thu, 23 Jul 2020 08:40:56 -0400<br></div><div> From: Eric Larson &lt;<a href="mailto:larson.eric.d@gmail.com" target="_blank">larson.eric.d@gmail.com</a>&gt;<br></div><div> Subject: Re: [Mne_analysis] Why does MNE resample method does not<br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; sample the data point to point?<br></div><div> To: Discussion and support forum for the users of MNE Software<br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; &lt;<a href="mailto:mne_analysis@nmr.mgh.harvard.edu" target="_blank">mne_analysis@nmr.mgh.harvard.edu</a>&gt;<br></div><div> Message-ID:<br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; &lt;<a href="mailto:CAGu2niVV%2B79nq5Yu17B4VzB3PS71x7sFTy8HKNukDxnaDdi6hQ@mail.gmail.com" target="_blank">CAGu2niVV+79nq5Yu17B4VzB3PS71x7sFTy8HKNukDxnaDdi6hQ@mail.gmail.com</a>&gt;<br></div><div> Content-Type: text/plain; charset="utf-8"<br></div><div> <br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; External Email - Use Caution&nbsp; &nbsp; &nbsp; &nbsp; <br></div><div> <br></div><div> &gt;<br></div><div> &gt; My understanding of downsampling is that it is an operation to <br></div><div> &gt; decrease the sample rate of x by keeping the first sample and then <br></div><div> &gt; every nth sample after the first.<br></div><div> &gt;<br></div><div> <br></div><div> Resampling typically consists of two steps: low-pass filtering to avoid<br></div><div> aliasing, then sample rate reduction (subselecting samples from the<br></div><div> resulting signal). The low-passing actually changes the values, so the<br></div><div> subselection-of-filtered-data step will not necessarily yield points that<br></div><div> were "on" the original signal.<br></div><div> <br></div><div> <br></div><div> &gt; May I know whether this issue is due to the ringing artifacts or due <br></div><div> &gt; to other problems?<br></div><div> &gt;<br></div><div> <br></div><div> In this case it's likely due to the (implicit) low-pass filtering in the<br></div><div> frequency-domain resampling of the signal. It looks pretty reasonable to me.<br></div><div> If you want to play around with it a bit, you can<br></div><div> <br></div><div> 1. Call scipy.signal.resample directly on your data and see how closely it<br></div><div> matches.<br></div><div> 2. Pad your signal, call scipy.signal.resample, and remove the (now<br></div><div> reduced-length) padding -- this is what MNE does internally.<br></div><div> 3. Use scipy.signal.resample_poly directly on your data.<br></div><div> 4. Manually low-pass filter and then directly subselect samples from the<br></div><div> low-passed signal, which is what resample_poly does internally.<br></div><div> <br></div><div> Hopefully these all give similar results for your signal(s).<br></div><div> <br></div><div> Eric<br></div><div> -------------- next part --------------<br></div><div> An HTML attachment was scrubbed...<br></div><div> URL:<br></div><div> <a href="http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20200723/a8812d4e/attachment-0001.html" rel="noreferrer" target="_blank">http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20200723/<br> a8812d4e/attachment-0001.html</a> </div><div> <br></div><div> ------------------------------<br></div><div> <br></div><div> Message: 2<br></div><div> Date: Thu, 23 Jul 2020 12:57:29 +0000<br></div><div> From: "Brunner, Clemens (<a href="mailto:clemens.brunner@uni-graz.at" target="_blank">clemens.brunner@uni-graz.at</a>)"<br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; &lt;<a href="mailto:clemens.brunner@uni-graz.at" target="_blank">clemens.brunner@uni-graz.at</a>&gt;<br></div><div> Subject: Re: [Mne_analysis] Why does MNE resample method does not<br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; sample the data point to point?<br></div><div> To: Discussion and support forum for the users of MNE Software<br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; &lt;<a href="mailto:mne_analysis@nmr.mgh.harvard.edu" target="_blank">mne_analysis@nmr.mgh.harvard.edu</a>&gt;<br></div><div> Message-ID: &lt;<a href="mailto:21199B34-7BD6-4C1B-81CC-749DFB86E3FC@uni-graz.at" target="_blank">21199B34-7BD6-4C1B-81CC-749DFB86E3FC@uni-graz.at</a>&gt;<br></div><div> Content-Type: text/plain; charset="us-ascii"<br></div><div> <br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; External Email - Use Caution&nbsp; &nbsp; &nbsp; &nbsp; <br></div><div> <br></div><div> Also note that the resample example<br></div><div> (<a href="https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.resample.html" rel="noreferrer" target="_blank">https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.resample.<br> html</a>) shows upsampling, i.e. the data has a lower sampling rate than the</div><div> resampled result. However, in the case of downsampling it is usually<br></div><div> necessary to avoid aliasing of frequencies above the resampled Nyquist<br></div><div> frequency. Therefore, the signal is typically low-pass filtered before the<br></div><div> resampling step. As Eric mentioned, this anti-aliasing filter is what<br></div><div> actually changes the signal values, but it is necessary to avoid aliasing<br></div><div> artifacts.<br></div><div> <br></div><div> AFAIK, scipy.signal.resample doesn't include an anti-aliasing filter, but<br></div><div> both scipy.signal.resample_poly as well as scipy.signal.decimate apply such<br></div><div> a low-pass filter before resampling. That's also what MNE does.<br></div><div> <br></div><div> Clemens<br></div><div> <br></div><div> <br></div><div> &gt; On 23.07.2020, at 14:40, Eric Larson &lt;<a href="mailto:larson.eric.d@gmail.com" target="_blank">larson.eric.d@gmail.com</a>&gt; wrote:<br></div><div> &gt; <br></div><div> &gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;External Email - Use Caution&nbsp; &nbsp; &nbsp; &nbsp; <br></div><div> &gt; <br></div><div> &gt; <br></div><div> &gt; My understanding of downsampling is that it is an operation to decrease<br></div><div> the sample rate of x by keeping the first sample and then every nth sample<br></div><div> after the first.<br></div><div> &gt; <br></div><div> &gt; Resampling typically consists of two steps: low-pass filtering to avoid<br></div><div> aliasing, then sample rate reduction (subselecting samples from the<br></div><div> resulting signal). The low-passing actually changes the values, so the<br></div><div> subselection-of-filtered-data step will not necessarily yield points that<br></div><div> were "on" the original signal.<br></div><div> &gt;&nbsp; <br></div><div> &gt; May I know whether this issue is due to the ringing artifacts or due to<br></div><div> other problems?<br></div><div> &gt; <br></div><div> &gt; In this case it's likely due to the (implicit) low-pass filtering in <br></div><div> &gt; the frequency-domain resampling of the signal. It looks pretty <br></div><div> &gt; reasonable to me. If you want to play around with it a bit, you can<br></div><div> &gt; <br></div><div> &gt; 1. Call scipy.signal.resample directly on your data and see how closely it<br></div><div> matches.<br></div><div> &gt; 2. Pad your signal, call scipy.signal.resample, and remove the (now<br></div><div> reduced-length) padding -- this is what MNE does internally.<br></div><div> &gt; 3. Use scipy.signal.resample_poly directly on your data.<br></div><div> &gt; 4. Manually low-pass filter and then directly subselect samples from the<br></div><div> low-passed signal, which is what resample_poly does internally.<br></div><div> &gt; <br></div><div> &gt; Hopefully these all give similar results for your signal(s).<br></div><div> &gt; <br></div><div> &gt; Eric<br></div><div> &gt; <br></div><div> &gt; _______________________________________________<br></div><div> &gt; Mne_analysis mailing list<br></div><div> &gt; <a href="mailto:Mne_analysis@nmr.mgh.harvard.edu" target="_blank">Mne_analysis@nmr.mgh.harvard.edu</a><br></div><div> &gt; <a href="https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis" rel="noreferrer" target="_blank">https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis</a><br></div><div> <br></div><div> <br></div><div> <br></div><div> <br></div><div> <br></div><div> ------------------------------<br></div><div> <br></div><div> Message: 3<br></div><div> Date: Thu, 23 Jul 2020 15:09:44 +0200<br></div><div> From: Phillip Alday &lt;<a href="mailto:phillip.alday@mpi.nl" target="_blank">phillip.alday@mpi.nl</a>&gt;<br></div><div> Subject: Re: [Mne_analysis] Why does MNE resample method does not<br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; sample the data point to point?<br></div><div> To: Discussion and support forum for the users of MNE Software<br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; &lt;<a href="mailto:mne_analysis@nmr.mgh.harvard.edu" target="_blank">mne_analysis@nmr.mgh.harvard.edu</a>&gt;, "Brunner, Clemens<br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; (<a href="mailto:clemens.brunner@uni-graz.at" target="_blank">clemens.brunner@uni-graz.at</a>)" &lt;<a href="mailto:clemens.brunner@uni-graz.at" target="_blank">clemens.brunner@uni-graz.at</a>&gt;<br></div><div> Message-ID: &lt;<a href="mailto:16e39842-34bd-465d-9491-b5651302add4@mpi.nl" target="_blank">16e39842-34bd-465d-9491-b5651302add4@mpi.nl</a>&gt;<br></div><div> Content-Type: text/plain; charset="utf-8"<br></div><div> <br></div><div> &nbsp; &nbsp; &nbsp; &nbsp; External Email - Use Caution&nbsp; &nbsp; &nbsp; &nbsp; <br></div><div> <br></div><div> I think the up- vs. downsampling distinction is also really important for<br></div><div> expectations here, as is the distinction between decimating and resampling<br></div><div> (I recall there was a thread about that a few years back with similar<br></div><div> confusion, if somebody wants to do the effort of searching for it)<br></div><div> <br></div><div> Phillip<br></div><div> <br></div><div> On 23/7/20 2:57 pm, Brunner, Clemens (<a href="mailto:clemens.brunner@uni-graz.at" target="_blank">clemens.brunner@uni-graz.at</a>) wrote:<br></div><div> &gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;External Email - Use Caution&nbsp; &nbsp; &nbsp; &nbsp; <br></div><div> &gt;<br></div><div> &gt; Also note that the resample example<br></div><div> (<a href="https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.resample.html" rel="noreferrer" target="_blank">https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.resample.<br> html</a>) shows upsampling, i.e. the data has a lower sampling rate than the</div><div> resampled result. However, in the case of downsampling it is usually<br></div><div> necessary to avoid aliasing of frequencies above the resampled Nyquist<br></div><div> frequency. Therefore, the signal is typically low-pass filtered before the<br></div><div> resampling step. As Eric mentioned, this anti-aliasing filter is what<br></div><div> actually changes the signal values, but it is necessary to avoid aliasing<br></div><div> artifacts.<br></div><div> &gt;<br></div><div> &gt; AFAIK, scipy.signal.resample doesn't include an anti-aliasing filter, but<br></div><div> both scipy.signal.resample_poly as well as scipy.signal.decimate apply such<br></div><div> a low-pass filter before resampling. That's also what MNE does.<br></div><div> &gt;<br></div><div> &gt; Clemens<br></div><div> &gt;<br></div><div> &gt;<br></div><div> &gt;&gt; On 23.07.2020, at 14:40, Eric Larson &lt;<a href="mailto:larson.eric.d@gmail.com" target="_blank">larson.eric.d@gmail.com</a>&gt; wrote:<br></div><div> &gt;&gt;<br></div><div> &gt;&gt;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;External Email - Use Caution&nbsp; &nbsp; &nbsp; &nbsp; <br></div><div> &gt;&gt;<br></div><div> &gt;&gt;<br></div><div> &gt;&gt; My understanding of downsampling is that it is an operation to decrease<br></div><div> the sample rate of x by keeping the first sample and then every nth sample<br></div><div> after the first.<br></div><div> &gt;&gt;<br></div><div> &gt;&gt; Resampling typically consists of two steps: low-pass filtering to avoid<br></div><div> aliasing, then sample rate reduction (subselecting samples from the<br></div><div> resulting signal). The low-passing actually changes the values, so the<br></div><div> subselection-of-filtered-data step will not necessarily yield points that<br></div><div> were "on" the original signal.<br></div><div> &gt;&gt;&nbsp; <br></div><div> &gt;&gt; May I know whether this issue is due to the ringing artifacts or due to<br></div><div> other problems?<br></div><div> &gt;&gt;<br></div><div> &gt;&gt; In this case it's likely due to the (implicit) low-pass filtering in <br></div><div> &gt;&gt; the frequency-domain resampling of the signal. It looks pretty <br></div><div> &gt;&gt; reasonable to me. If you want to play around with it a bit, you can<br></div><div> &gt;&gt;<br></div><div> &gt;&gt; 1. Call scipy.signal.resample directly on your data and see how closely<br></div><div> it matches.<br></div><div> &gt;&gt; 2. Pad your signal, call scipy.signal.resample, and remove the (now<br></div><div> reduced-length) padding -- this is what MNE does internally.<br></div><div> &gt;&gt; 3. Use scipy.signal.resample_poly directly on your data.<br></div><div> &gt;&gt; 4. Manually low-pass filter and then directly subselect samples from the<br></div><div> low-passed signal, which is what resample_poly does internally.<br></div><div> &gt;&gt;<br></div><div> &gt;&gt; Hopefully these all give similar results for your signal(s).<br></div><div> &gt;&gt;<br></div><div> &gt;&gt; Eric<br></div><div> &gt;&gt;<br></div><div> &gt;&gt; _______________________________________________<br></div><div> &gt;&gt; Mne_analysis mailing list<br></div><div> &gt;&gt; <a href="mailto:Mne_analysis@nmr.mgh.harvard.edu" target="_blank">Mne_analysis@nmr.mgh.harvard.edu</a><br></div><div> &gt;&gt; <a href="https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis" rel="noreferrer" target="_blank">https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis</a><br></div><div> &gt;<br></div><div> &gt;<br></div><div> &gt; _______________________________________________<br></div><div> &gt; Mne_analysis mailing list<br></div><div> &gt; <a href="mailto:Mne_analysis@nmr.mgh.harvard.edu" target="_blank">Mne_analysis@nmr.mgh.harvard.edu</a><br></div><div> &gt; <a href="https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis" rel="noreferrer" target="_blank">https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis</a><br></div><div> <br></div><div> <br></div><div> <br></div><div> ------------------------------<br></div><div> <br></div><div> _______________________________________________<br></div><div> Mne_analysis mailing list<br></div><div> <a href="mailto:Mne_analysis@nmr.mgh.harvard.edu" target="_blank">Mne_analysis@nmr.mgh.harvard.edu</a><br></div><div> <a href="https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis" rel="noreferrer" target="_blank">https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis</a><br></div><div> <br></div><div> End of Mne_analysis Digest, Vol 150, Issue 40<br></div><div> *********************************************<br></div><div> <br></div><div> <br></div><div> <br></div><div> <br></div><div> ------------------------------<br></div><div> <br></div><div> _______________________________________________<br></div><div> Mne_analysis mailing list<br></div><div> <a href="mailto:Mne_analysis@nmr.mgh.harvard.edu" target="_blank">Mne_analysis@nmr.mgh.harvard.edu</a><br></div><div> <a href="https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis" rel="noreferrer" target="_blank">https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis</a><br></div><div> <br></div><div> End of Mne_analysis Digest, Vol 150, Issue 44<br></div><div> *********************************************<br></div></blockquote></div></div></blockquote><div><br></div>