You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

离散信号重采样时的不确定度传递问题

离散信号重采样时的不确定度传递问题

嘿,你的重采样思路完全没问题——用其中一个信号的x坐标作为基准,对另一个信号插值得到对应y值,这是信号对齐里很常用的操作。现在关键是怎么处理插值后的不确定度,我给你拆解一下:

  • 先明确核心原理:不确定度传递本质是误差的加权传播,因为插值后的y值其实是原信号若干个相邻y值的加权组合,每个原y值的不确定度会按权重比例贡献到新y值的不确定度里。

  • 针对最常用的线性插值(如果你的数据没有特别强的非线性趋势,线性插值足够用):
    假设你要在原信号的两个相邻点(x₀,y₀)和(x₁,y₁)之间插值得到x_target对应的y_target,线性插值的公式是:
    y_target = y₀*(x₁ - x_target)/(x₁ - x₀) + y₁*(x_target - x₀)/(x₁ - x₀)
    这里的权重分别是w₀=(x₁ - x_target)/(x₁ - x₀)w₁=(x_target - x₀)/(x₁ - x₀)
    不确定度传递的话,因为y₀和y₁的不确定度是独立的(假设你的原信号点之间的误差不相关),那么y_target的不确定度σ_target满足:
    σ_target² = w₀²*σ₀² + w₁²*σ₁²
    直接把权重平方乘以各自的不确定度平方,相加再开根号就行。

  • 如果用高阶插值(比如三次样条插值):
    三次样条的插值公式会用到更多相邻点(通常是4个),每个点的权重是由样条的系数决定的。这时候你需要先推导或者从插值算法里提取出每个原y值对应的权重w_i,然后同样用平方和的方式计算:
    σ_target² = Σ(w_i² * σ_i²)
    这里要注意,有些插值方法可能会引入点之间的相关性,但如果原信号的不确定度是独立的,这个公式依然适用;如果原信号的误差有相关性,那还要加上交叉项2*w_i*w_j*cov(i,j),不过大多数情况下我们假设误差独立,交叉项可以忽略。

  • 额外实用提醒:

    • 如果你的原信号不确定度不是对称的(比如上下误差不一样),那插值后的不确定度也需要分别计算上下限,方法是把y₀和y₁的上下误差分别代入插值公式,得到y_target的上下误差范围。
    • 要是你用Python或者MATLAB这类工具实现,很多插值库本身不会直接输出不确定度,你需要自己在插值的同时,手动计算每个目标点对应的相邻原x索引,然后算出权重,再按上面的公式计算不确定度。比如在Python里用scipy.interpolate.interp1d做线性插值时,可以先通过搜索找到每个x_target对应的左右邻点,再计算权重进行误差传播。

备注:内容来源于stack exchange,提问作者Philoner

火山引擎 最新活动