matlab - 从噪声信号/电压测量中提取神经元尖峰时间的最佳方法

标签 matlab signals noise

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

该神经元的事件的特点是缓慢的去极化平台,顶部有快速的尖峰(爆发)。

提供了理想化版本和噪声版本 here供您闲暇时细读。

我的工作是从噪声信号中提取尖峰时间,但这远远超出了我的经验水平,我不知道从哪里开始。幸运的是,我是 Matlab 的彻底忍者。

有人可以向我提供最适合此任务的过程、过滤器或平滑函数的名称吗?或者甚至是合适的论坛来问这样一个愚蠢的问题。

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

<小时/>

更新:2013 年 2 月 7 日

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

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

最佳答案

这可能不是 stackoverflow 的充分响应 - 但在您的情况下提高信噪比的一种方法是对信号的各个部分进行平均。

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

通过对部分信号(最小锁定电位)进行平均,您将利用两个属性:噪声是零均值的(嗯,它应该是),并且感兴趣的信号是重复的。因此,当你积累潜力时,第一个会减少,而第二个会增加。然而,通过此过程,您将失去每个慢波图形的尖峰时间,但至少具有 50 个最小值的 block 。

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

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

关于matlab - 从噪声信号/电压测量中提取神经元尖峰时间的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17415910/

相关文章:

arrays - 单元格数组中的 strcmp 函数问题

c++ - C/C++ 处理程序 SIGFPE 是什么?

c - 使用信号同步

c - Matlab:帮助理解正弦曲线拟合

matlab - 如何在 MATLAB 中正确执行此 if 语句

matlab - 制作静态图例,独立于实际剧情

linux - 信号处理程序后信号无法生成核心转储

image - MATLAB:对高斯噪声使用 imnoise 和 randn 有什么区别

c++ - 写了一些柏林噪音类型的代码,它看起来很 block 状

android - 快门声停止