Matlab下如何基于给定测量轨迹估计随机高斯噪声幅值
随机高斯噪声叠加轨迹的噪声幅值估算方法
针对实际测量得到的轨迹(或一维时序信号),在确认叠加噪声为零均值随机高斯噪声的前提下,可通过适配场景的方法准确估算噪声幅值,以下为平滑前后的两组轨迹参考示例:

常用估算方法
- 一阶差分法(无需提前平滑,适合采样率足够高、相邻采样点间真实信号波动远小于噪声幅度的场景)
高斯白噪声相邻采样点的值不存在相关性,而真实轨迹在高采样率下相邻点的差值远小于噪声波动,因此对原始轨迹计算相邻点的一阶差分序列,将该序列的样本标准差除以√2,即可得到高斯噪声的标准差(即高斯噪声的核心幅值表征参数),对应计算代码如下:import numpy as np # raw_signal为输入的原始带噪一维轨迹数组 noise_amplitude_std = np.std(np.diff(raw_signal), ddof=1) / np.sqrt(2) - 平滑残差法(适配已有平滑后基准轨迹的场景,即当前提供了平滑前后两组数据的情况)
直接逐点计算原始带噪轨迹与平滑后轨迹的差值,得到的残差序列就是分离出的噪声分量,直接计算残差序列的样本标准差即可得到噪声幅值,计算逻辑如下:# raw_signal为原始带噪轨迹,smoothed_signal为平滑后的基准轨迹 noise_component = raw_signal - smoothed_signal noise_amplitude_std = np.std(noise_component, ddof=1)注意:使用该方法需确认平滑操作完全滤除了随机噪声,同时没有出现过平滑导致真实信号的细节被抹除,否则残差中会混入信号分量,导致噪声幅值估计结果偏大。
- 功率谱估计法(适合信号与噪声频带区分明显的场景)
对原始轨迹做功率谱密度分析,高斯白噪声的功率谱在全频段为恒定值,提取信号有效带宽外的平坦功率谱区段,换算得到噪声功率后开方,即可得到噪声的幅值参数。
内容的提问来源于stack exchange,提问作者jarhead
相关产品推荐
相关产品推荐

