我有以 128Hz 采样率记录的 EEG 数据。由于我的目标是减少数据量(可能还有噪声),我想将数据下采样到 64Hz(我只对 0.5 - 30Hz 的范围感兴趣)。
我会执行下采样(64Hz)并使用带通滤波器(0.5 - 30Hz)。
现在我的问题是,执行这两个步骤的最佳顺序是什么?为什么?这些方法会对我的数据质量产生哪些影响?
我有以 128Hz 采样率记录的 EEG 数据。由于我的目标是减少数据量(可能还有噪声),我想将数据下采样到 64Hz(我只对 0.5 - 30Hz 的范围感兴趣)。
我会执行下采样(64Hz)并使用带通滤波器(0.5 - 30Hz)。
现在我的问题是,执行这两个步骤的最佳顺序是什么?为什么?这些方法会对我的数据质量产生哪些影响?
您需要先过滤,然后再进行下采样。否则,您将遇到混叠问题。即高于 30 Hz 的频率将在您感兴趣的频率范围内创建图像。您可以考虑下面的小脚本来比较两种方法:
Fs = 128.0
t = np.arange(0, 10, 1/Fs)
signal = np.sin(2*np.pi*10*t) + np.sin(2*np.pi*50*t)
sigma2 = 0.5
rx = signal + np.sqrt(sigma2) * np.random.randn(len(signal))
downsampled = rx[::2]
(b1, a1) = scipy.signal.butter(6, 30/(Fs/4))
down_and_filtered = scipy.signal.lfilter(b1, a1, downsampled)
(b2, a2) = scipy.signal.butter(6, 30/(Fs/2))
filtered_and_down = scipy.signal.lfilter(b2, a2, rx)[::2]
t2 = t[::2]
plt.figure(figsize=(20,20))
plt.subplot(221)
plt.plot(t, rx)
plt.plot(t, signal)
plt.xlim((1, 1.3))
plt.title('Received signal')
plt.subplot(222)
plt.plot(t2, down_and_filtered)
plt.plot(t2, filtered_and_down)
plt.title('Compare of both methods in time domain')
plt.xlim((1,1.3))
f = np.linspace(-Fs/2, Fs/2, 4*len(t))
plt.subplot(223)
plt.plot(f, np.fft.fftshift(abs(np.fft.fft(rx, 4*len(t)))))
plt.title('RX spectrum. Note the two peaks, one is interference, having frequency over 30Hz')
f2 = np.linspace(-Fs/4, Fs/4, 4*len(t2))
plt.subplot(224)
plt.plot(f2, np.fft.fftshift(abs(np.fft.fft(down_and_filtered, 4*len(t2)))), '-o')
plt.plot(f2, np.fft.fftshift(abs(np.fft.fft(filtered_and_down, 4*len(t2)))))
plt.title('Spectrum of both alternatives. NOte the blue curve has a wrong component')
在此脚本中,您有一个由频率为 10 和 50Hz 的两个正弦信号加上一些噪声组成的信号。在全信号的 FFT 中,两条谱线都清晰地出现。现在,您在信号处理后想要的只是一条 10Hz 的谱线(因为应该滤除 50Hz 的信号)。但是,如果您先进行下采样,则 50Hz 波会镜像到并且随后无法过滤掉。因此,您需要先进行滤波,然后再对信号进行下采样。
由于我不能对这个特定的网站发表评论,我会这么说,在你做你想做的事情之前考虑以下几点。
由于奈奎斯特定律,您希望您的采样频率是模拟信号最大频率的两倍。如果您将采样率降低到 64 赫兹,这意味着您将只能看到高达 32 赫兹的信号数据。EEG 在 30~50 范围内包含高于该频率的伽马带,这就是为什么它以 128 Hz 开始采样的原因。您至少需要 100 Hz 才能获得所有 EEG。当然,除非你想摆脱伽马波段。
示例:http: //journal.frontiersin.org/article/10.3389/fnhum.2013.00056/full
站点管理员:随意将其移至原始问题或给定答案中的评论。谢谢!