1. 时域分析基础概念
时域分析是数字信号处理中最直观的分析方法,它直接在时间维度上观察信号的变化规律。就像医生通过心电图直接观察心跳波形一样,时域分析让我们能够"看见"信号随时间变化的原始形态。
在时域中,信号可以表示为x(n),其中n代表离散时间点。这种表示方法最接近我们日常对信号的感知方式——比如声音信号就是空气压力随时间变化的记录。时域分析的核心价值在于:
- 直观展示信号幅度随时间变化的完整历程
- 直接反映信号的动态特性(如突变、趋势等)
- 便于观察信号与噪声的混合情况
- 为频域分析提供原始数据基础
注意:虽然时域分析直观,但单独使用时往往难以揭示信号的深层特征,通常需要结合频域分析才能获得完整认知。
2. 时域分析的核心指标
2.1 基本统计量
均值(DC分量):
python复制mean = np.sum(x) / len(x)
这个简单的计算揭示了信号的直流偏移量。在音频处理中,均值非零通常表示存在设备偏置。
方差与标准差:
python复制variance = np.sum((x - mean)**2) / len(x)
std_dev = np.sqrt(variance)
这两个指标量化了信号的波动强度。在工业振动监测中,标准差突增往往预示设备异常。
峰峰值(Peak-to-Peak):
python复制peak_to_peak = np.max(x) - np.min(x)
这个指标在EEG脑电分析中特别重要,可以反映神经活动的强度变化。
2.2 时域波形特征
过零率(Zero-Crossing Rate):
python复制zero_crossings = np.sum(np.abs(np.diff(np.sign(x)))) / 2
语音识别中常用这个特征区分清音和浊音。清音(如"s"音)的过零率明显高于浊音(如"a"音)。
幅度包络(Envelope):
通过希尔伯特变换提取的包络线,可以反映信号的总体幅度变化趋势。在机械故障诊断中,包络分析能有效提取冲击特征。
2.3 相关性分析
自相关函数:
python复制autocorr = np.correlate(x, x, mode='full')
自相关可以检测信号的周期性。心电图(ECG)分析中就利用自相关来测量心率。
互相关函数:
python复制cross_corr = np.correlate(x, y, mode='full')
在雷达系统中,通过计算发射信号与回波的互相关,可以精确测定目标距离。
3. 典型时域处理方法
3.1 滑动窗口分析
实际处理中常采用滑动窗口技术:
python复制def sliding_window(x, window_size, step):
return [x[i:i+window_size] for i in range(0, len(x)-window_size+1, step)]
窗口大小的选择至关重要:
- 语音处理:20-40ms(兼顾瞬时性和稳定性)
- 振动分析:覆盖至少5个周期
- 金融时序:根据交易频率调整
3.2 数字滤波
移动平均滤波(MA):
python复制def moving_average(x, window):
return np.convolve(x, np.ones(window)/window, 'valid')
适用于平滑高频噪声,但会导致相位延迟。在传感器数据处理中广泛使用。
中值滤波:
python复制def median_filter(x, window):
return [np.median(x[i:i+window]) for i in range(len(x)-window+1)]
特别适合去除脉冲噪声(如图像处理中的椒盐噪声)。
3.3 事件检测
峰值检测算法:
python复制peaks = [i for i in range(1, len(x)-1) if x[i-1] < x[i] > x[i+1]]
在ECG分析中,R波峰值检测是心率计算的关键步骤。
突变点检测:
使用CUSUM(累积和)算法可以检测信号的突变点,在工业过程监控中应用广泛。
4. 时域分析的典型应用场景
4.1 语音信号处理
- 端点检测:结合短时能量和过零率确定语音段起止点
- 基音周期估计:通过自相关函数定位周期性
- 语音激活检测(VAD):实时判断是否有语音输入
4.2 生物医学信号处理
- ECG分析:R波检测、心率变异性(HRV)分析
- EEG特征提取:癫痫发作预测中的瞬态检测
- EMG肌肉活动分析:肌肉收缩时长和强度测量
4.3 工业监测与故障诊断
- 轴承故障诊断:通过振动信号的冲击特征识别损伤类型
- 旋转机械监测:轴心轨迹分析和阶次跟踪
- 管道泄漏检测:压力波传播时间测量
5. 时域分析的局限性与注意事项
5.1 主要局限
- 难以区分频率成分:时域混叠的不同频率信号看起来可能很相似
- 对周期性特征的敏感性不足:微弱周期信号容易被随机噪声淹没
- 分辨率受限:短时瞬态特征可能被平滑处理掩盖
5.2 实操建议
采样率选择:
- 至少是信号最高频率的2倍(满足奈奎斯特准则)
- 对于瞬态分析,需要更高采样率(5-10倍)
数据分段:
- 非平稳信号应分段处理
- 确保每段包含完整特征周期
噪声处理:
- 先进行时域滤波(如中值滤波去脉冲噪声)
- 保留原始数据副本以供回溯分析
可视化技巧:
- 使用双Y轴展示不同量纲的信号
- 对长时间序列采用"概览+细节"的展示方式
- 用不同颜色标注特征区间
6. 从时域到频域的桥梁
虽然本文聚焦时域分析,但要认识到时域和频域是互补的视角。在实际项目中,我通常会遵循这样的工作流程:
- 先在时域观察原始信号,检查数据质量
- 计算基本统计量,了解信号分布特征
- 进行时域预处理(去趋势、滤波等)
- 提取时域特征(如过零率、峰峰值)
- 必要时转换到频域进行进一步分析
- 综合时频域结果做出最终判断
这种多角度分析方法在故障诊断等应用中特别有效。比如在轴承故障检测中,时域分析可以发现冲击信号,而频域分析则可以精确定位故障特征频率,两者结合能显著提高诊断准确率。