4. 时域特征提取:均值、方差、过零率、Hjorth参数、波形长度、能量特征

好,咱们进入正题。时域特征提取,说白了就是直接从信号波形上“薅”信息。你想想看,脑电信号、肌电信号,这些神经信号本质上就是电压随时间变化的曲线。我们不去做傅里叶变换,不去看频域,就盯着这条曲线本身,能挖出什么宝贝?

我个人习惯,做神经信号处理时,时域特征是第一步。为什么?因为它计算快,物理意义明确,而且很多场景下,时域特征已经足够用了。我记得刚入行那会儿,总想着上复杂算法,结果被导师一句话点醒:“你先看看均值方差能不能解决问题。”

4.1 均值(Mean)——信号的“直流分量”

均值,就是信号在一段时间内的平均值。公式很简单:

μ = (1/N) * Σ x[i]

其中 N 是采样点数,x[i] 是第 i 个采样点的幅值。

嗯,这里要注意:均值反映的是信号的基线漂移。我在项目中遇到过,受试者稍微动一下,脑电信号的均值就飘了。所以很多时候,我们做预处理的第一步就是去均值,把信号拉到零基线。

实用技巧: 如果你发现某个通道的均值突然跳变,大概率是电极接触不良或者运动伪迹。别急着往下分析,先检查数据质量。

4.2 方差(Variance)——信号的“波动程度”

方差衡量的是信号偏离均值的程度。公式:

σ² = (1/N) * Σ (x[i] - μ)²

方差越大,说明信号波动越剧烈。在运动想象脑电中,想象手部运动时,对侧运动皮层的mu节律会去同步化,方差就会增大。这个现象我验证过很多次,挺靠谱的。

避坑指南: 我曾经被方差坑过一次——数据里有个尖峰噪声,方差直接爆表。所以计算方差前,一定要做滤波或去伪迹处理,否则方差这个特征就废了。

4.3 过零率(Zero Crossing Rate, ZCR)

过零率,就是信号穿过零点的次数。说白了,数一数信号波形在单位时间内上下穿越零轴多少次。

ZCR = (1/T) * Σ |sign(x[i]) - sign(x[i-1])| / 2

这个特征对高频成分很敏感。肌电信号比脑电信号的过零率高得多,因为肌电频率高、振荡快。我做手势识别时,过零率是区分“动”和“不动”的关键特征之一。

核心要点: 过零率对噪声敏感,建议先做带通滤波。比如分析脑电时,先滤掉50Hz工频干扰,否则过零率会被工频噪声主导。

4.4 Hjorth参数——活动性、移动性、复杂度

Hjorth参数是三个指标的统称,由瑞典神经生理学家Hjorth在1970年提出。我个人觉得,这是时域特征里最优雅的一组。

参数 公式 物理意义
活动性(Activity) var(x) 信号功率的方差表示
移动性(Mobility) √(var(x') / var(x)) 信号的平均频率估计
复杂度(Complexity) Mobility(x') / Mobility(x) 信号形状与纯正弦波的偏离程度

你想想看,三个参数就把信号的幅值、频率、波形复杂度都概括了。我在做睡眠分期时,Hjorth参数帮我区分了深睡和浅睡阶段,效果比单纯用频域功率还好。

我的经验: 计算Hjorth参数时,一阶导数x'和二阶导数x''要用中心差分,别用前向差分,否则边界效应会让你头疼。

4.5 波形长度(Waveform Length, WL)

波形长度,就是信号波形曲线的总长度。公式:

WL = Σ |x[i] - x[i-1]|

这个特征对信号的幅值和频率变化都很敏感。肌电信号发力时,波形长度会显著增加。我做假肢控制时,波形长度是控制信号的主要特征之一,因为它计算简单,实时性好。

注意: 波形长度受采样率影响。不同采样率下,波形长度的绝对值没有可比性。我建议做归一化处理,或者统一采样率再比较。

4.6 能量特征(Energy)

能量特征,就是信号幅值的平方和:

Energy = Σ x[i]²

说白了,就是信号的能量。脑电信号在事件相关电位(ERP)出现时,能量会局部增大。我在做P300拼写器时,就用能量特征来检测目标字符。

关键区别: 能量和方差不一样。方差是去均值后的能量,能量是原始信号的能量。如果信号有直流分量,能量会包含直流成分,而方差不会。

知识体系总览

下面这张图,是我自己梳理的时域特征提取框架,你看一眼就能明白这些特征之间的关系:

时域特征提取知识体系 神经信号时域特征 统计特征 波形形态特征 能量特征 均值 方差 Hjorth参数 过零率 波形长度 能量 基线校正 运动检测 睡眠分期 活动检测 假肢控制 ERP检测 计算简单 · 物理意义明确 · 实时性好 适合作为神经信号分类的基线特征

这张图把六个特征分成了三类:统计特征(均值、方差、Hjorth参数)、波形形态特征(过零率、波形长度)和能量特征。每个特征都有其独特的物理意义和应用场景。

我的建议: 做实际项目时,别一上来就把六个特征全用上。先根据你的任务选2-3个,比如运动检测用方差+过零率,睡眠分期用Hjorth参数+能量。特征不是越多越好,关键是有效。

好了,时域特征这块就讲到这里。这些特征虽然基础,但用好了威力不小。我见过不少顶会论文,就是用这几个简单特征加上一个分类器,做出了很漂亮的结果。记住,在神经工程领域,有时候最简单的方案反而是最可靠的。


公众号:蓝海资料掘金营,微信deep3321