基于FPGA的无迹卡尔曼滤波系统及并行实现方法技术方案

技术编号:6996730 阅读:370 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于FPGA的无迹卡尔曼滤波系统,主要解决现有无迹卡尔曼滤波硬件实现难度大和实时性差的问题。该系统包括:协方差矩阵Cholesky分解模块A,Sigma点产生模块B、时间更新模块C、观测预测模块D、部分均值和协方差矩阵计算模块E、总体均值计算模块F、总体协方差矩阵计算模块G、观测预测协方差矩阵求逆模块H、增益计算模块I和状态量估计和状态协方差矩阵估计模块J。模块A产生K组行向量到模块B,模块B、C、D和E是串连关系,分别包含K个采用并行运算单元结构的子模块;模块F、G接收模块E的K组结果并处理,处理结果依次经过模块H、I和J得到当前结果。本发明专利技术具有滤波速度快和易于硬件实现的优点,可用于目标跟踪和参数估计。

【技术实现步骤摘要】

本专利技术属于信号处理
,涉及非线性滤波方法,可用于目标跟踪和参数估计。
技术介绍
滤波理论是在对系统可观测信号进行测量的基础上,根据一定的滤波准则,对系统的状态进行估计的理论和方法。根据贝叶斯理论,最优估计只是一个理想化的解,一般情况下,无法得到它的解析形式。卡尔曼(Kalman)滤波是目前最经典、应用最广泛的线性滤波器,当系统为线性高斯分布时,它可以得到递归贝叶斯估计的最小均方误差解。然而,实际的系统往往是非线性、非高斯的,无法采用卡尔曼滤波求解,为此提出了大量非线性滤波方法,主要可分为粒子滤波和高斯滤波两大类。 粒子滤波是一种贝叶斯框架下基于采样的非线性滤波方法,它使用一些带权值的样本粒子来近似模拟先验和后验概率分布。这里的样本粒子是随机采样得到的,当样本数目足够大时,粒子滤波趋于最优贝叶斯估计,可以得到很好的滤波精度。但是,粒子滤波计算量太大,实时性差,难以在工程中应用。 高斯滤波以扩展卡尔曼滤波(Extended Kalman Filter,EKF)和无迹卡尔曼滤波(Unscented Kalman Filter,UKF)为代表。前者是一种弱非线性滤波算法,它将非线性函数通过一定的规则(如泰勒级数展开等)进行线性化处理,在一定程度上提高了非线性目标的跟踪性能,具有很好的实时性,目前已在军用和民用领域得到广泛应用。然而,当系统呈现强非线性时,一阶线性化近似会带来较大的误差,可能导致滤波器不稳定甚至发散。 UKF(Unscented Kalman Filter)是一种基于UT(Unscented Transform)变换的新滤波算法。该算法摒弃了对非线性函数进行线性化的传统做法,转而从统计学的角度寻找解决问题的思路。与粒子滤波的随机采样方式不同,UKF选取的Sigma样本点很少,且是按照一定规则确定性选取的,实时性显著优于粒子滤波。与EKF算法相比,UKF算法对于高斯输入的非线性函数的近似可以精确到三阶,对于非高斯输入的非线性函数的近似,至少可以精确到二阶,精度上明显优于EKF。因此,UKF可以在滤波精度和实时性之间做到良好的折衷,具有广泛的应用前景。 虽然与粒子滤波相比,UKF的实时性已有了明显提高,但UKF中仍涉及到诸如矩阵求逆和Cholesky分解等复杂运算,当系统状态维数和观测维数较大时,运算速度明显降低,硬件实现难度远大于EKF。 FPGA具有大容量的Block RAM资源可用于存储大量数据和实现查找表等功能;大量的DSP48E资源可以实现高效的浮点数加法、减法和乘法等运算;丰富的逻辑资源可以实现大规模并行运算。随着超大规模集成电路技术的发展,FPGA的性能也在不断提高,充分利用FPGA的这一特点会大大提高算法的运算速度。
技术实现思路
本专利技术的目的是针对上述问题,提出一种基于FPGA的无迹卡尔曼滤波系统及并行实现方法,以充分利用FPGA易于实现大规模并行运算的特点,在保证滤波精度的同时提高运算速度,降低硬件实现复杂度。 为实现上述目的,本专利技术基于FPGA的无迹卡尔曼滤波系统,包括 协方差矩阵Cholesky分解模块A,用于对分块对角协方差矩阵的对角线上的各子矩阵分别进行Cholesky分解,得到下三角矩阵,将下三角矩阵的L个行向量,分成K组,分别输入到Sigma点产生模块,其中L=2m+n,m为状态量的维数,n为观测量的维数,K≥1; Sigma点产生模块B,用于接收上一时刻的状态估计值,利用A模块得到的结果产生K组Sigma点,分别输入到时间更新模块,其中第一组有2L/K+1个采样点,其余各组有2L/K个采样点; 时间更新模块C,用于把接收到的Sigma点代入系统模型的状态方程,得到状态预测值,输入到观测预测模块; 观测预测模块D,用于把状态预测值代入观测模型的观测方程,得到观测预测值,并将观测预测值和状态预测值输入到部分均值和协方差矩阵计算模块; 部分均值和协方差矩阵计算模块E,用于对观测预测值和状态预测值加权求和,分别计算部分状态预测协方差矩阵、部分观测预测协方差矩阵和部分互协方差矩阵,并将其计算结果输入到总体均值计算模块和总体协方差矩阵计算模块; 总体均值计算模块F,用于接收部分均值和协方差矩阵计算模块的结果,分别计算状态预测均值和观测预测均值,并将其计算结果输入到总体协方差矩阵计算模块和状态量估计和状态协方差矩阵估计模块; 总体协方差矩阵计算模块G,用于接收部分均值和协方差矩阵计算模块和总体均值计算模块的结果,分别计算状态预测协方差矩阵、观测预测协方差矩阵和互协方差矩阵,并将观测预测协方差矩阵输入到观测预测协方差矩阵求逆模块,将互协方差矩阵输入到增益计算模块,将状态预测协方差矩阵和观测预测协方差矩阵输入到状态量估计和状态协方差矩阵估计模块; 观测预测协方差矩阵求逆模块H,用于对观测预测协方差矩阵采用奇异值分解方法求逆,并将求逆结果输入到增益计算模块; 增益计算模块I,用于接收互协方差矩阵和观测预测协方差矩阵的逆矩阵,计算增益,并将增益输入到状态量估计和状态协方差矩阵估计模块; 状态量估计和状态协方差矩阵估计模块J,用于接收增益、状态预测均值、状态预测协方差矩阵、观测预测协方差矩阵和当前时刻的观测数据,计算状态估计值和状态协方差矩阵,并将状态估计值作为当前时刻的最终结果输出,将状态协方差矩阵扩维后输入到A模块。 为实现上述目的,本专利技术基于FPGA的无迹卡尔曼滤波并行实现方法,包括如下步骤 (1)协方差矩阵Cholesky分解步骤,对分块对角协方差矩阵的对角线上的各子矩阵分别进行Cholesky分解,得到下三角矩阵,将下三角矩阵的L个行向量,分成K组,其中L=2m+n,m为状态量的维数,n为观测量的维数,K≥1; (2)Sigma点产生步骤,接收上一时刻的状态估计值,利用Cholesky分解得到的L个向量产生K组Sigma点; (3)时间更新步骤,将Sigma点代入系统模型的状态方程,得到状态预测值; (4)观测预测步骤,将状态预测值代入观测模型的观测方程,得到观测预测值; (5)部分均值和协方差矩阵计算步骤,对观测预测值和状态预测值进行加权求和,分别计算出部分状态预测协方差矩阵、部分观测预测协方差矩阵和部分互协方差矩阵; (6)总体均值计算步骤,计算状态预测均值和观测预测均值; (7)总体协方差矩阵计算步骤,分别计算状态预测协方差矩阵、观测预测协方差矩阵和互协方差矩阵; (8)观测预测协方差矩阵求逆步骤,对观测预测协方差矩阵采用奇异值分解方法求逆; (9)增益计算步骤,将互协方差矩阵和观测预测协方差矩阵的逆矩阵相乘得到增益; (10)状态量估计和状态协方差矩阵估计步骤,利用增益、状态预测均值、状态预测协方差矩阵、观测预测协方差矩阵和当前时刻的观测数据,计算状态估计值和状态协方差矩阵,并将状态估计值作为当前时刻的最终结果输出,对状态协方差矩阵扩维,返回到步骤(1)进行下一时刻的计算。 本专利技术具有如下优点 本专利技术的滤波系统由于从总体上给出了UKF的并行结构,提高了滤波的速度; 本专利技术的滤波方法由于将分块对角矩阵的Cholesky分解转化为对对角线上各子矩阵的Ch本文档来自技高网
...

【技术保护点】
一种基于FPGA的无迹卡尔曼滤波系统,包括:协方差矩阵Cholesky分解模块A,用于对分块对角协方差矩阵的对角线上的各子矩阵分别进行Cholesky分解,得到下三角矩阵,将下三角矩阵的L个行向量,分成K组,分别输入到Sigma点产生模块,其中L=2m+n,m为状态量的维数,n为观测量的维数,K≥1;Sigma点产生模块B,用于接收上一时刻的状态估计值,利用A模块得到的结果产生K组Sigma点,分别输入到时间更新模块,其中第一组有2L/K+1个采样点,其余各组有2L/K个采样点;时间更新模块C,用于把接收到的Sigma点代入系统模型的状态方程,得到状态预测值,输入到观测预测模块;观测预测模块D,用于把状态预测值代入观测模型的观测方程,得到观测预测值,并将观测预测值和状态预测值输入到部分均值和协方差矩阵计算模块;部分均值和协方差矩阵计算模块E,用于对观测预测值和状态预测值加权求和,分别计算部分状态预测协方差矩阵、部分观测预测协方差矩阵和部分互协方差矩阵,并将其计算结果输入到总体均值计算模块和总体协方差矩阵计算模块;总体均值计算模块F,用于接收部分均值和协方差矩阵计算模块的结果,分别计算状态预测均值和观测预测均值,并将其计算结果输入到总体协方差矩阵计算模块和状态量估计和状态协方差矩阵估计模块;总体协方差矩阵计算模块G,用于接收部分均值和协方差矩阵计算模块和总体均值计算模块的结果,分别计算状态预测协方差矩阵、观测预测协方差矩阵和互协方差矩阵,并将观测预测协方差矩阵输入到观测预测协方差矩阵求逆模块,将互协方差矩阵输入到增益计算模块,将状态预测协方差矩阵和观测预测协方差矩阵输入到状态量估计和状态协方差矩阵估计模块;观测预测协方差矩阵求逆模块H,用于对观测预测协方差矩阵采用奇异值分解方法求逆,并将求逆结果输入到增益计算模块;增益计算模块I,用于接收互协方差矩阵和观测预测协方差矩阵的逆矩阵,计算增益,并将增益输入到状态量估计和状态协方差矩阵估计模块;状态量估计和状态协方差矩阵估计模块J,用于接收增益、状态预测均值、状态预测协方差矩阵、观测预测协方差矩阵和当前时刻的观测数据,计算状态估计值和状态协方差矩阵,并将状态估计值作为当前时刻的最终结果输出,将状态协方差矩阵扩维后输入到A模块。...

【技术特征摘要】

【专利技术属性】
技术研发人员:姬红兵李倩王玮闫家铭
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:87

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1