【发布时间】:2014-09-15 23:59:27
【问题描述】:
您可以在左侧以绿色看到的快速上升和指数衰减瞬变“尖峰”代表随时间变化的神经活动。蓝色是基线参考信号。如您所见,蓝色和绿色都有一些超时漂移。
因为我遇到了基线漂移和一般嘈杂的信号,所以我尝试了高通滤波器。我能够通过对它们进行反向低通滤波来对它们进行高通滤波(参见简短教程here)。右边是滤波后的信号。
N=101
Fc=0.001
Fs=1.14 # it's imaging data being acquired at just over 1Hz
h=scipy.signal.firwin(N, Fc, Fs/2)
h=-h
h[N/2] = h[N/2] + 1
#this is filter design output from the tutorial
#mfreqz(h)
#show()
y=scipy.signal.lfilter(h, 1.0, data)
yy=scipy.signal.lfilter(h, 1.0, data2)
尽管它引入了一些伪像,例如在开始时引入了“假峰”,缩小了原始绿色峰,并导致其中一个底部看起来像“下冲”,但它还是有效地消除了漂移。绿色的山峰。
我可能可以容忍其中一些伪影,但它仍然太波涛汹涌,不符合我的喜好。有没有办法消除这里的噪音?
【问题讨论】:
-
如果目标是平滑,您是否不想进行低通滤波(而不是高通)?
-
不确定。实际上,我对过滤引入的所有伪影有点困扰。想知道平滑是否更安全......但是,现在将尝试低通滤波(或完全从带通开始)
-
我知道高通可以消除基线漂移,我记得以前有人告诉我不要这样做(也许是人工制品)。我认为低通可能会更好。我会单独尝试,没有高通,然后两者一起。嗯.. 这里的基线漂移是由“光漂白”引起的,并遵循线性衰减。我敢打赌,如果我能算出斜率,那将很容易纠正。
-
高通会去除直流,但如果你想平滑,也许可以尝试一个短的 MA 滤波器,但要确保你不会平滑你感兴趣的信号。
标签: python numpy scipy signal-processing