def simu_bimodal_meg(snr=6, white=True, seed=None, freqs=[3, 50], n_cycles=[1, 1.5], phases=[0, 0], offsets=[0, 80]): tmin = -0.1 sfreq = 1000. # Hz tstep = 1. / sfreq n_samples = 600 times = np.linspace(tmin, tmin + n_samples * tstep, n_samples) # Generate times series from 2 Morlet wavelets stc_data = np.zeros((len(labels), len(times))) Ws = morlet(sfreq, freqs, n_cycles=n_cycles) stc_data[0][:len(Ws[0])] = np.real(Ws[0] * np.exp(1j * phases[0])) stc_data[1][:len(Ws[1])] = np.real(Ws[1] * np.exp(1j * phases[1])) stc_data *= 100 * 1e-9 # use nAm as unit # time translation stc_data[0] = np.roll(stc_data[0], offsets[0]) stc_data[1] = np.roll(stc_data[1], offsets[1]) stc = generate_sparse_stc(fwd['src'], labels, stc_data, tmin, tstep, random_state=0) ############################################################################### # Generate noisy evoked data picks = mne.pick_types(raw.info, meg=True, exclude='bads') if white: iir_filter = None # for white noise else: iir_filter = iir_filter_raw(raw, order=5, picks=picks, tmin=60, tmax=180) evoked = generate_evoked(fwd, stc, evoked_template, cov, snr, tmin=0.0, tmax=0.2, iir_filter=iir_filter, random_state=seed) return evoked
times = np.linspace(tmin, tmin + n_samples * tstep, n_samples) # Generate times series from 2 Morlet wavelets stc_data = np.zeros((len(labels), len(times))) Ws = morlet(sfreq, [3, 10], n_cycles=[1, 1.5]) stc_data[0][:len(Ws[0])] = np.real(Ws[0]) stc_data[1][:len(Ws[1])] = np.real(Ws[1]) stc_data *= 100 * 1e-9 # use nAm as unit # time translation stc_data[1] = np.roll(stc_data[1], 80) stc = generate_sparse_stc(fwd['src'], labels, stc_data, tmin, tstep, random_state=0) ############################################################################### # Generate noisy evoked data picks = mne.fiff.pick_types(raw.info, meg=True, exclude='bads') iir_filter = iir_filter_raw(raw, order=5, picks=picks, tmin=60, tmax=180) evoked = generate_evoked(fwd, stc, evoked_template, cov, snr, tmin=0.0, tmax=0.2, iir_filter=iir_filter) ############################################################################### # Plot plot_sparse_source_estimates(fwd['src'], stc, bgcolor=(1, 1, 1), opacity=0.5, high_resolution=True) plt.figure() plt.psd(evoked.data[0]) plot_evoked(evoked)