基于 Sigma 点的高斯假设密度平滑器中线性子结构的拉奥 - 布莱克韦尔化研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
🎁完整资源、论文复现、期刊合作、论文辅导及科研仿真定制事宜点击:
👉👉👉本文完整资源下载
⛳️座右铭:行百里者,半于九十。
⛳️赠与读者
👨💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能解答你胸中升起的一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。
或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎
💥第一部分——内容介绍
摘要
针对非线性状态空间系统的高精度状态估计需求,高斯假设密度平滑算法凭借稳定的估计性能,成为非线性贝叶斯平滑的主流方法。传统基于Sigma点的高斯平滑算法需对全维度状态空间开展数值积分运算,当系统存在线性子结构时,可解析求解的线性子空间仍会占用大量算力资源,导致算法计算冗余、运行效率低下,难以适配高维线性子空间系统的实时估计场景。为解决这一问题,本文将拉奥-布莱克韦尔降维优化思想引入高斯平滑框架,对两类通用的线性-非线性混合状态空间模型开展针对性研究。通过重构条件仿射变换的统计线性回归逻辑,分别推导常规高斯平滑与迭代后验线性化高斯平滑的边缘化预测、状态更新与反向平滑迭代流程,构建了全新的拉奥-布莱克韦尔化高斯平滑算法体系。该方法充分挖掘状态空间的线性可解析特性,仅对非线性子空间开展数值积分运算,线性子空间通过解析方式直接求解,从根源上削减无效计算量。多组数值仿真实验结果表明,相较于未优化的传统高斯平滑算法,本文所提方法在完全保留状态估计精度的前提下,大幅降低高维线性子空间系统的计算复杂度,有效提升非线性状态估计的运算效率,同时兼容各类主流Sigma点数值求解策略,具备极强的通用性与工程适配性。
关键词:高斯假设密度平滑;拉奥-布莱克韦尔化;非线性平滑;非线性状态估计;Sigma点方法;贝叶斯估计
一、引言
非线性状态空间系统的状态估计是自动控制、目标跟踪、信号处理等领域的核心基础技术,其核心目标是依托有限的观测数据,精准求解系统隐状态的后验分布。在众多非线性贝叶斯估计方法中,高斯假设密度滤波与平滑算法凭借简洁的运算逻辑、稳定的估计性能,成为工程应用中最广泛的近似贝叶斯求解方案。该类算法的核心假设为:将非线性系统的滤波后验分布与平滑后验分布近似为高斯分布,仅需通过求解后验分布的一阶均值矩与二阶协方差矩,即可完成状态估计,继承了卡尔曼滤波、RTS平滑算法的轻量化运算优势。
为适配系统的非线性特性,高斯假设密度估计算法通常采用Sigma点数值积分策略求解矩匹配方程,常见方案包括无迹变换、高斯-厄米特积分、球面容积规则等。相较于传统基于泰勒级数展开的线性化方法,Sigma点方法有效规避了高阶截断误差问题,能够更好地拟合非线性系统的分布特性,估计精度显著提升。但该类算法存在固有缺陷:无论状态空间是否存在可解析求解的线性子结构,均对完整维度的状态空间执行Sigma点采样与数值积分运算。对于大量实际工程系统,状态空间往往可拆分为非线性子空间与线性子空间,其中线性子空间的状态演化与观测映射具备严格的解析求解条件,无需数值近似。传统算法对全空间统一数值求解的模式,会造成大量冗余运算,尤其在线性子空间维度较高时,计算复杂度会急剧攀升,严重限制算法的实时应用能力。
拉奥-布莱克韦尔化是一种经典的概率降维优化思想,核心原理是利用系统的条件解析子结构,将复杂的高维概率求解问题拆解为低维数值求解与高维解析求解的组合形式,最大限度削减数值运算规模。目前该思想已在序贯蒙特卡洛方法(粒子滤波、粒子平滑)中得到成熟应用,能够有效减少粒子采样数量、降低粒子退化风险,大幅提升蒙特卡洛估计方法的运算效率。在高斯滤波领域,现有研究已针对简单线性-非线性混合模型,实现了拉奥-布莱克韦尔化的滤波优化,覆盖了非混合、全混合条件线性高斯模型、含状态变量分区观测的模型等多种场景,形成了较为完善的轻量化高斯滤波体系。
但在高斯平滑领域,现有研究仍存在明显短板。一方面,现有拉奥-布莱克韦尔优化方案仅适配简单模型,无法覆盖通用的混合线性-非线性模型与分层状态模型;另一方面,尚未形成针对迭代后验线性化平滑的拉奥-布莱克韦尔优化框架,无法兼顾高精度迭代平滑的效率优化需求。同时,现有研究缺乏对优化算法计算复杂度的系统性解析,也未完成与传统高斯平滑、粒子平滑方法的全面性能对比,理论支撑与实验验证均不完善。
基于上述研究现状,本文开展系统性研究,核心创新与贡献主要体现在四个方面:第一,推导高斯随机变量条件仿射变换的拉奥-布莱克韦尔化统计线性回归方法,构建降维线性化的基础理论框架;第二,针对工程中最常用的全混合线性-非线性状态模型与分层状态模型,分别设计常规高斯平滑与迭代后验线性化高斯平滑的拉奥-布莱克韦尔优化算法,拓展了现有高斯平滑算法的适用场景;第三,从理论层面解析优化算法的计算复杂度衰减规律,明确线性子空间维度对算法效率的影响机制;第四,通过多组蒙特卡洛数值实验,将所提算法与传统高斯平滑、未优化拉奥-布莱克韦尔算法、序贯蒙特卡洛平滑算法开展全面对比,验证算法的精度稳定性与效率优势。
二、问题建模
本文研究离散时间域下的通用非线性高斯状态空间系统,系统状态随时间迭代演化,观测值由当前状态映射生成,同时叠加高斯随机噪声干扰,符合绝大多数非线性工程系统的建模特征。系统初始状态服从高斯分布,过程噪声与观测噪声均为互不相关的零均值高斯白噪声,保证系统的随机特性可控可解。
高斯平滑的核心任务是依托全部时刻的历史观测数据,对每一时刻的系统隐状态进行后验估计,通过高斯分布近似拟合真实的状态后验分布,最终输出状态均值与协方差矩阵,完成最优状态求解。相较于仅依托历史观测的滤波算法,平滑算法能够利用未来观测信息修正历史状态估计,有效降低估计误差,具备更高的估计精度。
为贴合实际工程系统的结构特征,本文将全维度系统状态拆分为相互独立的非线性子状态与线性子状态,对应构建两类通用的线性-非线性混合状态空间模型,覆盖绝大多数含结构化子空间的非线性系统。
第一类为混合线性/非线性高斯状态空间模型,也是工程应用中最普遍的模型形式。该模型中,非线性子状态与线性子状态存在双向耦合关系,两类状态的时序演化过程相互影响,观测方程同时包含非线性状态映射与线性状态映射。典型应用场景为机动目标跟踪系统,其中目标位置为非线性观测状态,速度为线性演化状态,二者相互耦合,完全契合该模型结构。同时,模型允许噪声协方差随非线性状态动态变化,适配时变噪声的复杂工况。
第二类为分层状态模型,可视为广义跳变马尔可夫模型。该模型具备单向耦合特性,仅非线性子状态会对线性子状态的演化过程产生影响,线性子状态无法反向作用于非线性子状态,两类状态的耦合关系更简洁。相较于第一类模型,分层模型的状态演化独立性更强,适用于状态层级分化明显的非线性系统,在故障诊断、动态系统辨识等领域应用广泛。两类模型相互独立,不存在包含关系,能够完整覆盖结构化非线性系统的主流建模形式,保证本文算法的通用性。
三、高斯平滑基础理论
高斯平滑算法的核心框架为RTS反向平滑迭代机制,整体采用“前向滤波+反向平滑”的两段式运算逻辑。前向滤波环节逐时刻利用实时观测数据更新状态先验分布,得到每一时刻的滤波后验状态与协方差;反向平滑环节依托全部时刻的滤波结果与观测数据,从最后时刻向前迭代,修正历史时刻的状态估计,实现全局最优平滑。
前向滤波环节沿用经典高斯滤波的更新逻辑,通过状态预测、观测匹配、误差修正三个步骤完成迭代。首先基于上一时刻的状态估计,预测当前时刻的先验状态分布;随后匹配当前时刻的观测数据,求解观测残差与协方差矩阵;最后通过卡尔曼增益完成状态修正,得到当前时刻的滤波后验结果。该过程需要求解状态与观测的联合矩、互协方差等关键参数,为后续平滑迭代提供基础数据支撑。
反向平滑环节的核心是构建相邻时刻状态的联合高斯分布,通过边缘化求解历史状态的全局后验分布。平滑迭代过程需要依托前向滤波得到的状态均值、协方差以及跨时刻互协方差参数,计算平滑增益矩阵,逐步修正每一时刻的状态均值与协方差,最终得到融合全部观测信息的平滑估计结果。相较于滤波算法,平滑算法需要额外计算跨时刻状态互协方差参数,这也是平滑算法精度更高、运算量更大的核心原因。
所有高斯平滑算法的矩求解均依赖统计线性回归技术,通过对非线性状态演化方程与观测方程进行线性近似,实现高斯矩的数值求解。传统常规平滑算法基于状态先验分布完成线性化操作,线性化基准固定,当先验分布与真实后验分布偏差较大时,线性近似误差会显著增大,导致估计精度下降。为解决这一问题,后验线性化平滑算法被提出,其核心思路是直接针对全局平滑后验分布开展线性化迭代,通过多次迭代优化线性近似精度,大幅降低先验-后验分布偏差带来的估计误差,适配强非线性系统的高精度估计场景。
四、拉奥-布莱克韦尔化高斯平滑算法设计
基于两类结构化状态空间模型,本文结合拉奥-布莱克韦尔降维思想,重构统计线性回归、状态预测、观测更新与反向平滑全流程,通过状态协方差分块处理,分离线性子空间与非线性子空间的求解逻辑,实现算法轻量化优化。整体思路为:仅对无法解析求解的非线性子状态开展Sigma点数值积分,对条件可解的线性子状态采用解析公式直接求解,规避全空间数值运算的冗余开销。
4.1 拉奥-布莱克韦尔化统计线性回归
统计线性回归是非线性高斯平滑的核心基础,传统线性回归需对全维度状态空间开展数值积分,运算量大。本文针对含条件仿射子结构的非线性变换,构建拉奥-布莱克韦尔化统计线性回归方法。该方法依托高斯分布的条件分解特性,将联合状态分布拆解为非线性子状态的边缘分布与线性子状态的条件分布,通过解析求解线性子状态的条件均值与条件协方差,仅保留非线性子状态的数值积分运算。
该优化方案彻底改变了传统全空间数值求解的模式,所有线性子空间的矩更新、协方差迭代均通过解析公式完成,仅非线性子空间的期望、协方差参数需要通过Sigma点采样拟合。同时,本文推导了通用的线性回归系数求解规则,能够适配任意高斯条件仿射变换,可无缝对接常规先验线性化与迭代后验线性化两种平滑模式,为后续算法设计提供统一的理论支撑。
4.2 混合线性/非线性模型的平滑算法
针对全耦合的混合线性/非线性模型,本文将优化后的统计线性回归方法融入传统高斯平滑框架,重构状态预测与反向平滑流程。在状态预测阶段,利用状态耦合特性,基于非线性子状态的Sigma点采样结果,解析求解线性子状态的条件演化参数,融合得到全状态的预测均值与协方差,同时完成跨时刻互协方差的降维求解。
针对两种主流平滑模式分别优化:常规平滑模式基于状态先验分布完成降维线性化,保证算法轻量化运行;迭代后验线性化平滑模式基于上一轮迭代的全局后验分布开展线性化,通过多轮迭代逐步修正线性近似误差,兼顾运算效率与估计精度。两类模式均规避了全维度Sigma点运算,大幅削减高维线性子空间带来的计算开销。
4.3 分层模型的平滑算法
结合分层模型单向耦合的结构特性,本文设计分步式降维平滑算法。由于分层模型的非线性子状态独立演化,不受线性子状态影响,因此第一步单独对非线性子状态开展Sigma点数值预测,求解其状态演化矩参数;第二步依托非线性子状态的预测结果,通过解析方式求解线性子状态的时序演化参数,完成全状态预测。
相较于混合模型算法,分层模型的优化算法进一步简化了耦合运算逻辑,无需迭代求解双向耦合参数,同时可复用非线性子状态的Sigma点采样结果,避免重复采样运算,进一步提升运算效率。针对常规平滑与迭代后验线性化平滑,分别设计对应的迭代规则,适配分层模型的结构特征,保证算法的适配性与稳定性。
4.4 统一量测更新机制
本文两类研究模型的观测方程结构一致,均为非线性映射叠加线性状态耦合形式,因此设计统一的拉奥-布莱克韦尔化量测更新机制。量测更新阶段同样采用降维求解思路,基于非线性子状态的Sigma点采样结果,解析求解线性子状态的观测贡献量,拟合观测预测值、观测协方差与状态-观测互协方差参数。
完成观测参数求解后,沿用经典卡尔曼更新逻辑,计算增益矩阵并修正当前时刻的滤波状态与协方差,完成量测更新。该机制可完全适配两类状态模型,且能够复用预测阶段的Sigma点采样数据,无额外采样开销,最大限度压缩运算量。
4.5 完整算法流程设计
基于上述预测、更新与平滑迭代模块,本文构建两套完整的拉奥-布莱克韦尔化高斯平滑算法体系。第一套为基础高斯平滑算法,采用“前向逐时刻滤波+后向全局平滑”的固定流程,前向环节交替执行降维预测与量测更新,存储每一时刻的滤波关键参数,后向环节依托RTS迭代公式,完成全局平滑状态更新,适用于实时性要求较高、精度需求适中的场景。
第二套为迭代后验线性化平滑算法,以基础平滑算法的输出结果为初始后验分布,通过多次迭代重线性化、前向滤波、后向平滑的闭环迭代,持续优化后验分布的近似精度,直至算法收敛。该算法通过迭代修正线性化误差,能够适配强非线性系统的高精度估计场景。
4.6 计算复杂度理论分析
为量化验证算法的效率优势,本文从理论层面系统对比了传统统计线性回归与拉奥-布莱克韦尔化统计线性回归的计算复杂度,明确降维优化的效率增益机制。传统算法的计算复杂度与全状态维度、Sigma点数量强相关,线性子空间维度越高,数值运算量呈指数或高次多项式增长;而优化后的算法将复杂度与非线性子空间维度解耦,仅与线性子空间维度的低次多项式相关。
对于高阶高斯积分、无迹变换等主流Sigma点方法,传统算法的运算量会随状态维度急剧攀升,甚至出现维度灾难问题,而拉奥-布莱克韦尔化算法可将指数级复杂度衰减为立方级复杂度。整体来看,本文所提平滑算法的核心运算复杂度仅由线性子空间维度决定,且无额外Sigma点采样开销,相较于未优化的传统高斯平滑算法,在高维线性子空间场景下的效率优势极为显著。
五、数值实验与结果分析
5.1 实验仿真设置
本文采用时变频率谐振子系统作为仿真模型,该系统具备典型的线性-非线性分层结构,非线性子状态对应系统时变频率,线性子状态对应多阶谐振响应,可通过调整谐振阶数灵活改变线性子空间维度,能够有效验证算法在不同维度场景下的性能差异。实验设置多组梯度化的线性子空间维度,覆盖低维、中维、高维多种工况,全面模拟实际工程场景。
仿真过程中设置固定的采样周期、过程噪声与观测噪声强度,通过多次蒙特卡洛重复实验消除随机噪声干扰,保证实验结果的可靠性。实验选取两类主流评价指标:一是时间平均均方根误差,用于量化各算法的状态估计精度;二是单样本平均运算时间,用于直观对比算法的计算效率。
为充分验证所提算法的优越性,实验选取多种主流估计算法开展对比,涵盖无迹卡尔曼滤波、高斯-厄米特滤波、粒子滤波及其对应的平滑算法,同时包含未优化与拉奥-布莱克韦尔优化的各类算法,形成完整的性能对比体系。
5.2 实验结果与性能分析
精度性能方面,所有拉奥-布莱克韦尔优化算法与对应的传统算法、粒子算法的估计精度基本持平。在不同线性子空间维度下,优化算法的均方根误差无明显波动,未出现精度衰减问题。其中高斯类平滑算法的整体精度略优于粒子平滑算法,主要原因是高斯平滑算法可全局优化状态估计结果,而粒子平滑算法受限于前向滤波的粒子轨迹,无法实现全局最优修正,存在固有估计误差。实验结果充分证明,拉奥-布莱克韦尔降维优化仅削减冗余运算,不会破坏算法的估计精度,具备良好的精度稳定性。
运算效率方面,各类算法的性能差异极为显著。传统高斯-厄米特平滑算法的运算时间随线性子空间维度呈指数级增长,高维场景下几乎无法运行;对应的拉奥-布莱克韦尔优化算法可将指数级复杂度降至立方级,高维场景下的运算效率提升数十倍甚至上百倍。传统无迹平滑算法虽本身为立方级复杂度,但优化后的算法通过减少非线性函数评估次数、规避冗余数值积分,运算速度显著提升,且维度越高,效率增益越明显。
同时实验发现,非线性子空间维度固定时,优化算法的运算量基本保持稳定,仅随线性子空间维度小幅增长,完美契合理论复杂度分析结果。而传统算法的运算量随全维度状态空间增长急剧攀升,完全无法适配高维线性子空间系统的实时估计需求。此外,优化算法可复用多环节Sigma点采样数据,无额外计算开销,进一步保障了算法的轻量化特性。
六、结论
本文针对传统Sigma点高斯平滑算法计算冗余、高维场景适配性差的问题,基于拉奥-布莱克韦尔降维思想,构建了一套通用的线性-非线性混合系统高斯平滑优化框架。通过推导条件仿射变换的降维统计线性回归理论,针对全耦合混合模型与分层模型,分别设计了常规高斯平滑与迭代后验线性化高斯平滑的优化算法,完整实现了降维预测、轻量化量测更新、高效反向平滑的全流程优化。
理论复杂度分析与数值仿真实验共同验证了算法的核心优势:其一,精度稳定可靠,拉奥-布莱克韦尔化优化仅对求解方式进行重构,完全保留传统高斯平滑算法的估计性能,精度与传统算法、粒子算法保持一致;其二,计算效率大幅提升,有效解决了高维线性子空间系统的维度灾难问题,将传统高阶算法的指数级复杂度优化为立方级,极大拓展了高斯平滑算法的工程适用范围;其三,通用性极强,可无缝适配无迹变换、高斯-厄米特积分等各类Sigma点求解策略,能够兼容绝大多数结构化非线性状态空间系统。
该优化方案有效解决了传统高斯平滑算法算力冗余的痛点,让原本因计算量过大、无法落地的高精度高斯积分平滑算法,可高效应用于高维非线性系统的实时状态估计场景,在目标跟踪、动态系统辨识、故障诊断等工程领域具备重要的应用价值。未来可基于该框架进一步拓展,适配含延时观测、无序观测的复杂工况,进一步提升算法的工程适配能力。
📚第二部分——运行结果
2.1 论文结果


2.2 复现结果


function [mp, Pp, Cp] = rbgf_predict(m, P, f, A, Q, in, il, Xi, wm, wc)
% Rao-Blackwellized Gaussian filter prediction for mixing CLGSS
%
% Syntax:
% [mp, Pp, Cp] = RBGF_PREDICT(m, P, f, A, Q, in, il, Xi, wm, wc)
%
% In:
% m Mean of previous time step (dx*1)
% P Covariance of previous time step (dx*dx)
% f Nonlinear dynamic function, function handle of the form @(s)
% A Linear state dynamics matrix, matrix (dx*dx) or function handle of
% the form @(s)
% Q Process noise covariance, matrix (dx*dx) or function handle of the
% form @(s)
% in Vector of indices to the nonlinear components s of x (ds*1)
% il Vector of indices to the linear components z of x (dz*1)
% Xi Unit sigma-points (dx*M)
% wm Weights for calculating the mean (1*M)
% wc Weights for calculating the covariance (optional, default: wm)
%
% Out:
% mp Predicted mean (dx*1)
% Pp Predicted covariance (dx*dx)
% Cp Predicted cross-covariance (dx*dx)
%
% Description:
% Rao-Blackwellized Gaussian filter prediction for mixing conditionally
% linear Gaussian state-space models of the form
%
% x[n] = f(s[n-1]) + A(s[n-1]) z[n-1] + q[n]
%
% where q[n] ~ N(0, Q(s[n-1])).
%
% See also:
% rbgf, rbgf_update
%% Defaults
narginchk(9, 10);
if nargin < 10 || isempty(wc)
wc = wm;
end
%% Prediction
[mp, Pp, Cp] = rbslr_calculate_moments(m, P, f, A, Q, in, il, Xi, wm, wc);
end
🎉第三部分——参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。(文章内容仅供参考,具体效果以运行结果为准)
🌈第四部分——本文完整资源下载
资料获取,更多粉丝福利,MATLAB|Simulink|Python|数据|文档等完整资源获取
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)