【问题标题】:Best way to extract neuronal spike times from a noisy signal / voltage meaurement从噪声信号/电压测量中提取神经元尖峰时间的最佳方法
【发布时间】:2013-06-29 05:59:09
【问题描述】:

我是一名神经科学家,并不是一个很好的人。我的同事好心地为我提供了龙虾Stomatogastric Ganglion 的 PY 神经元的噪声电压测量值。

这个神经元的活动的特点是缓慢去极化的平台,顶部有快速的尖峰(爆发)。

here 提供理想化版本和嘈杂版本,供您在闲暇时细读。

我的工作是从嘈杂的信号中提取尖峰时间,但这远远超出了我的经验水平,我不知道从哪里开始。幸运的是,我在 Matlab 上是个十足的忍者。

谁能提供最适合这项任务的程序、过滤器或平滑函数的名称。甚至是适当的论坛来问这样一个愚蠢的问题。

大概是需要提高信噪比吧?这里的问题似乎是确定噪声和真正的尖峰之间的差异,因为两者之间的差距非常小。


更新:2013 年 2 月 7 日

我在 Matlab 中尝试了以下过滤器,结果好坏参半。仍然很难说什么是噪音,什么是尖峰。

低通巴特沃斯滤波器, 中值滤波器, 高斯, 移动加权窗口, 移动平均滤波器, 光滑的, sgolay 过滤器。

【问题讨论】:

  • 如果您没有时间限制,您可以使用小波变换并尝试确定出现尖峰而不是噪声的细节级别。 Matlab 有一个带有图形界面的内置小波包,使用起来非常简单直观,您可以检查它是否足以分离您的尖峰。否则您可以尝试使用 ICA 或 NMF 来估计原始源(去噪信号)。
  • (注意:如果你使用更多的传感器来估计原始来源,ICA和NMF会更好地工作。如果你可以改变你的数据,这样你就可以在人头的不同地方使用更多的仪表您也许可以使用这些技术来分解来源。)
  • 感谢 Werner,您给了我很多思考。我确实使用 FFT 绘制了频谱,没有明显的峰值,就像所有频率上的噪声一样。
  • 哦,好的,谢谢。看来我有一些研究要做。
  • 会的,我正在研究小波...

标签: matlab signals noise


【解决方案1】:

这可能不是对 stackoverflow 的充分响应 - 但在您的情况下增加信噪比的一种方法是平均部分信号。

  1. 低通您的信号以去除噪声(和尖峰),并找到滤波后信号的最小值(从您的图像中,每 600 个数据点最少一个)。保持每个最小值的索引,
  2. 在噪声信号上,对于每个最小索引,选择连续的 700 个数据点。如果你有 50 个最小值,你应该有一个 50 x 700 的矩阵,
  3. 平均矩阵。您应该有一个 1 x 700 的向量。

通过平均信号的各个部分(最小锁定电位),您将利用两个属性:噪声是零均值(应该是),并且感兴趣的信号是重复的。因此,随着潜力的积累,第一个会减少,而第二个会增加。但是,通过此过程,您将丢失每个慢波图形的尖峰时间,但至少在 50 个最小值的块中保留它们。

这种技术在神经科学中被称为事件相关电位 (http://en.wikipedia.org/wiki/Event-related_potential)。它可能不完全适合您的信号,或者结果可能不会给出很好的尖峰,但您可能会提取某些感兴趣时期的尖峰时间(鉴于您的信号的性质,我会说您需要 5 或 10 个电位才能看到一种新兴的平均活动)。

有一些工具箱可以完成部分工作(但考虑到任务的复杂性,我会自己编程)。这些是eeglabfieldtrip。他们也有一堆过滤器/分解选项,以及一些统计功能。

【讨论】:

  • 感谢您的 Magla,我会尽快回复您。
  • 好吧,从噪音中去除信号是不可能的。干扰太多了,所以我们使用了hack。我们记录了神经元的神经输出,并将神经中的峰值与神经元中的峰值相匹配。中提琴!
  • 不错的一个。感谢您的跟进,祝您的项目好运!
猜你喜欢
  • 2018-12-27
  • 1970-01-01
  • 2012-12-28
  • 1970-01-01
  • 1970-01-01
  • 2017-08-14
  • 1970-01-01
  • 2017-04-10
  • 1970-01-01
相关资源
最近更新 更多