专利名称:基于fpga的去偏转换量测卡尔曼滤波器的设计方法
技术领域:
本发明属于信号处理技术领域,雷达数据处理方法,可用于目标跟踪,特别是一种 基于FPGA的去偏转换量测卡尔曼滤波器的设计方法。
背景技术:
现代雷达系统一般都由以下两个部分组成,即雷达信号处理部分和雷达数据处 理部分。雷达信号处理器作为第一次处理,将处理后的信号送入雷达数据处理器作第二次 处理。目标跟踪作为雷达数据处理的功能之一,已经成为现代雷达跟踪系统中一个重要组 成部分。在实际雷达目标跟踪系统中,目标动态模型通常在笛卡尔坐标系中建模,而雷达 量测一般却在极/球坐标系中得到。这样雷达目标跟踪就成为一个非线性估计问题。解决 这一问题的其中一种方法为EKF,即将雷达对目标运动状态的非线性量测方程围绕目标运 动状态的一步预测值进行Taylor级数展开,对其取一阶进行截断,以得到雷达量测的预测 值及新息的协方差阵。但是这种近似可能会在目标运动状态估计及相应误差协方差阵的计 算上引入大的误差,从而导致滤波器发散。解决这一问题的另一类常用方法就是转换量测 卡尔曼滤波,即先将雷达量测通过坐标变换表示成笛卡尔坐标系中量测的伪线性形式,然 后估计转换量测误差的前两阶矩并基于卡尔曼滤波完成目标跟踪。去偏转换量测Kalman滤波器(DCMKF)在雷达目标跟踪系统中有着极其广泛的应 用,但是由于其算法包含大量的矩阵加、减、乘、求逆等运算,计算量较大。传统的使用方法 是利用数字信号处理器(DSP)实现DCMKF,DSP芯片是基于软件可编程的,依靠一条一条软 件指令去串行执行,因此不可避免的问题就是功耗大,处理能力受到主频的限制等不足,因 此采用传统的软件方法实现DCMKF难以保证雷达目标跟踪系统的实时性。
发明内容
本发明的目的在于提供一种基于FPGA的去偏转换量测卡尔曼滤波器的设计方 法,以充分利用FPGA内部越来越多地内嵌了乘法器以及支持大规模并行运算的特点,在保 证滤波精度的同时提高运算速度。实现本发明目的的技术解决方案为一种基于FPGA的去偏转换量测卡尔曼滤波 器的设计方法,首先设计基于FPGA的去偏转换量测卡尔曼滤波的系统,包括三角函数模 块、一步预测?椤⒃げ馕蟛钚讲钅?椤⒃鲆婢卣竽?、状态更新?、滤波误差协方差模 块和FIFO?椋渲性鲆婢卣竽?榘骄媸敌讲钭幽?楹驮鲆婢卣笞幽?椋蛔刺 新?榘曜蛔幽?、平均真实偏差子?、新息子?楹妥刺伦幽?椋凰龅 三角函数?、一步预测?、预测误差协方差?、滤波误差协方差模块、平均真实协方 差子?、增益矩阵子?、坐标转换子?、平均真实偏差子模块、新息子?楹妥刺 新子?榉直鸬饔昧烁〉慵、减、乘、除运算?椋蝗呛?槿呛?榈氖淙攵丝谖勘甑母┭鼋呛头轿唤、时钟信号、复位信号和输入使能信号;输出端口为俯仰角与方位角的三角函数值和下一?榈奈帐中 号;在三角函数?橹校┭鼋怯敕轿唤堑娜呛导扑阋淮危缓笤谧曜荒?、量 测转换的平均真实偏差模块和量测转换的平均真实协方差的?樾枰倍寥≌庑┦荩 牲少量的寄存器来换取宝贵的乘法单元;一步预测?槭淙攵丝谖弦皇笨棠勘甑淖刺兰浦怠⑹敝有藕、复位信号和输 入使能信号;输出端口为一步提前预测值和下一?榈奈帐中藕牛黄渲懈次恍藕诺淖饔檬 每处理完一帧数据,对内部计数器进行复位;输入使能信号的作用是提示并允许接收上一时 刻目标状态估计值;握手信号的作用是使能状态更新?、新息子?榻邮找徊皆げ庵担辉げ馕蟛钚讲钅?槭淙攵丝谖弦皇笨痰穆瞬ㄎ蟛钚讲钪、时钟信号、复位 信号和输入使能信号;输出端口为预测误差协方差值和下一?榈奈帐中藕牛辉鲆婢卣竽?樵诩扑阍鲆婢卣笫保枰惹蟪隽坎庠肷男讲罹卣螅碊CMKF 的平均真实协方差,然后计算增益矩阵的值,对于整个增益矩阵?槎裕淙攵丝谖勘 的俯仰角与方位角的三角函数值、径向距离、预测误差协方差值、时钟信号、复位信号和上 述各值的输入使能信号;输出端口为增益矩阵的值和状态更新?、滤波误差协方差? 的握手信号;滤波更新?樵诩扑懵瞬ǜ轮凳保枰蜃甑降芽ǘ甑淖瓯浠、 去偏修正、新息计算、滤波更新四个过程;对于整个滤波更新?槎裕淙攵丝谟心勘甑 径向距离、目标的俯仰角与方位角的三角函数值、状态一步预测值、增益矩阵的值、时钟信 号、复位信号和上述各值的输入使能信号;输出端口为状态估计值和握手信号,其中该握手 信号为LPM_FIF01?榈男词鼓苄藕牛宦瞬ㄎ蟛钚讲钅?槭淙攵丝谖げ馕蟛钚讲钪、增益矩阵的值、时钟信号、 复位信号和两个数据输入使能信号;输出端口为滤波误差协方差值和握手信号,其中该握 手信号为LPM_FIF02?榈男词鼓苄藕牛籉IFO?榈饔昧礁鯢IFO?椋渲蠰PM_FIF01?橛糜谠荽婷恳淮温瞬ǜ 值,LPM_FIF02模块用于暂存滤波误差协方差的值,以便在下一时刻调用。本发明与现有技术相比,其显著优点(1)采用结构层次化设计方法,底层?樵 用VHDL输入,顶层采用原理图输入方式。这种设计风格可提高代码的可读性,易于?榛 分,且方便在设计过程中进行仿真。( 在用FPGA实现DCMKF之前,先对算法进行预处理, 将算法分解为简单的标量运算,便于代码的实现,并且避免了稀疏矩阵中大量的0元素参 与乘加计算,可以节约大量的FPGA内部资源。(3)从总体上给出了 CMKF的并行结构,由于 DCMKF算法的特性,DCMKF的各运算?榈哪诓靠梢圆⑿性怂悖歉鞲鲈怂隳?橹洳⒉ 能实现完全意义上的并行。设计时,在每个?橹浼由衔帐中藕牛糜谑鼓芟乱桓鲈怂隳 块接收数据并运算,各模块便能按照相应的时序有条不紊的运行。(4)选用QUARTUS II软 件自带的浮点加减乘除运算?椋岣吡松杓频男阅埽醵躺杓频氖奔洌蟠蠹蚧烁〉闶 据通路的实现。下面结合附图对本发明作进一步详细描述。
图1为基于FPGA的去偏转换量测Kalman滤波器的结构层次示意图。
图2为基于FPGA的去偏转换量测Kalman滤波器的算法流程图。图3为状态一步预测?榻峁箍蛲。图4为预测误差协方差?榻峁箍蛲肌M5为平均真实偏差?榻峁箍蛲。图6为增益矩阵?榻峁箍蛲。图7为状态更新?榻峁箍蛲肌M8为协方差更新?榻峁箍蛲肌
具体实施例方式本发明基于FPGA的去偏转换量测卡尔曼滤波器的设计方法,首先设计基于FPGA 的去偏转换量测卡尔曼滤波的系统,包括三角函数?、一步预测?、预测误差协方差模 块、增益矩阵模块、状态更新?、滤波误差协方差?楹虵IFO?椋渲性鲆婢卣竽?榘 含平均真实协方差子?楹驮鲆婢卣笞幽?椋蛔刺履?榘曜蛔幽?、平均真 实偏差子?、新息子?楹妥刺伦幽?椋凰龅娜呛?、一步预测?、预测 误差协方差模块、滤波误差协方差?、平均真实协方差子?、增益矩阵子?、坐标转 换子模块、平均真实偏差子?、新息子?楹妥刺伦幽?榉直鸬饔昧烁〉慵、减、乘、 除运算?椋蝗呛?槿呛?榈氖淙攵丝谖勘甑母┭鼋呛头轿唤、时钟信号、复 位信号和输入使能信号;输出端口为俯仰角与方位角的三角函数值和下一?榈奈帐中 号;在三角函数模块中,俯仰角与方位角的三角函数值计算一次,然后在坐标转换?、量 测转换的平均真实偏差?楹土坎庾坏钠骄媸敌讲畹哪?樾枰倍寥≌庑┦荩 牲少量的寄存器来换取宝贵的乘法单元;一步预测?槭淙攵丝谖弦皇笨棠勘甑淖刺兰浦、时钟信号、复位信号和 输入使能信号;输出端口为一步提前预测值和下一?榈奈帐中藕牛黄渲懈次恍藕诺淖饔 是每处理完一帧数据,对内部计数器进行复位;输入使能信号的作用是提示并允许接收上 一时刻目标状态估计值;握手信号的作用是使能状态更新?椤⑿孪⒆幽?榻邮找徊皆げ 值;预测误差协方差?槭淙攵丝谖弦皇笨痰穆瞬ㄎ蟛钚讲钪、时钟信号、复位 信号和输入使能信号;输出端口为预测误差协方差值和下一模块的握手信号;增益矩阵?樵诩扑阍鲆婢卣笫保枰惹蟪隽坎庠肷男讲罹卣螅碊CMKF 的平均真实协方差,然后计算增益矩阵的值,对于整个增益矩阵?槎裕淙攵丝谖勘 的俯仰角与方位角的三角函数值、径向距离、预测误差协方差值、时钟信号、复位信号和上 述各值的输入使能信号;输出端口为增益矩阵的值和状态更新?椤⒙瞬ㄎ蟛钚讲钅? 的握手信号;滤波更新模块在计算滤波更新值时,需要经过球坐标到笛卡尔坐标的坐标变换、 去偏修正、新息计算、滤波更新四个过程;对于整个滤波更新?槎裕淙攵丝谟心勘甑 径向距离、目标的俯仰角与方位角的三角函数值、状态一步预测值、增益矩阵的值、时钟信 号、复位信号和上述各值的输入使能信号;输出端口为状态估计值和握手信号,其中该握手 信号为LPM_FIF01模块的写使能信号;
滤波误差协方差?槭淙攵丝谖げ馕蟛钚讲钪、增益矩阵的值、时钟信号、 复位信号和两个数据输入使能信号;输出端口为滤波误差协方差值和握手信号,其中该握 手信号为LPM_FIF02模块的写使能信号;FIFO?榈饔昧礁鯢IFO?椋渲蠰PM_FIF01模块用于暂存每一次滤波更新 值,LPM_FIF02?橛糜谠荽媛瞬ㄎ蟛钚讲畹闹担员阍谙乱皇笨痰饔。在用FPGA实现DCMKF之前,需要对算法进行预处理,将DCMKF算法由矩阵运算转 化为简单的标量力卩、减、乘、除运算。本发明采用结构化设计思想,利用FPGA实现浮点DCMKF 的设计。在保证实时性的前提下,在?槟诓慷栽怂愕ピ蟹质备从茫?橹渫ü帐 信号协调工作,解决了采用数字信号处理器(DSP)软件方法实现过程中存在的并行性和速 度问题,并保证了运算的精度。本发明基于FPGA的去偏转换量测Kalman滤波并行实现的步骤如下由于DCMKF 算法的特性,DCMKF的各运算?榈哪诓靠梢圆⑿性怂悖歉鞲鲈怂隳?橹洳⒉荒苁迪 完全意义上的并行,但有些?榭梢圆⑿性怂。其中平均真实偏差?椋骄媸敌讲钅 块,一步预测?椋げ馕蟛钚讲钅?椋呛?榭梢圆⑿性怂。设计时,在每个? 之间加上握手信号,用于使能下一个运算?榻邮帐莶⒃怂悖髂?楸隳馨凑障嘤Φ氖 序有条不紊的运行。因此,各个?橹洳唤鲇邢嘤Φ氖菔淙胧涑龆丝冢褂Ω糜形帐中 号、时钟信号和复位信号。(1)三角函数模块,在求俯仰角和方位角三角函数值时,利用Taylor公式求出当 前时刻测量值的正弦值和余弦值;(2)平均真实偏差?椋美状锊饬康降木断蚓嗬、俯仰角和方位角以及各自的 噪声方差求去转换量测的平均真实偏差;(3)平均真实协方差?椋美状锊饬康降木断蚓嗬、俯仰角和方位角以及各自 的噪声方差求去转换量测的平均真实协方差;(4) 一步预测?椋弦皇笨痰淖刺兰浦荡胱刺げ夥匠蹋玫降鼻笆笨痰 状态预测值;(5)预测误差协方差?椋蒙弦皇笨痰穆瞬ㄎ蟛钚讲钜约白刺肷讲 代入预测误差协方差方程,得到预测误差协方差值;(6)增益?椋迷げ馕蟛钚讲钪岛土坎庾坏钠骄媸敌讲钪荡朐鲆 矩阵方程,得到增益;(7)新息模块,利用去偏转换量测后的量测值和状态预测值,求取新息;(8)状态更新值?椋米刺げ庵、增益以及新息,代入状态更新方程,得到状 态更新值;(9)滤波误差协方差模块,利用预测误差协方差值和增益,代入滤波误差协方差方 程,得到滤波误差协方差值;(10)返回到步骤⑴进行下一时刻的计算。结合图3,本发明的一步预测?榉治莘峙淠?楹褪菰怂隳?椋毕低辰邮 到当前时刻测量值且一步预测?榻邮胀昵耙皇笨套刺兰浦抵螅计舳莘峙淠 块,每个时钟周期将相应的数据赋给对应的寄存器,经过n+m+m个时钟周期之后,每个时钟 输出一个状态预测值;其中一步预测?楣舱加昧礁龈〉慵臃ǖピ土礁龈〉愠朔ㄔ怂愕ピ辉赒UARTUS II的参数可设置?(LPM)中,浮点加、乘法器的周期参数分别设置为m、n 个时钟周期;在数据运算?榈牡谝患陡〉愠朔ㄔ怂闶保枰床斡朐怂愕氖萃 置为η个时钟的延时;在数据运算模块的第二级浮点加法运算时,也需要将相应的上一级 运算结果设置为m个时钟的延时;在输入端口,每个时钟周期输入一个数据,当接收完九个 状态值后,每个时钟将相应的乘数和被乘数传送到对应的寄存器并使能运算?椋庋 个数据在运算?橹芯齨+m+m个时钟周期的运算延时后,每个时钟周期输出一个数据, 其中 m > 7,η > 5。结合图4,本发明的预测误差协方差?榉治莘峙淠?楹褪菰怂隳?椋 系统接收到当前时刻测量值且预测误差协方差?榻邮胀昵耙皇笨搪瞬ㄎ蟛钚讲钪岛螅 开始启动数据分配?椋扛鍪敝又芷诮嘤Φ氖掣杂Φ募拇嫫鳎齨+m+m+m+m个 时钟周期之后,每个时钟输出一个预测误差协方差值;其中预测误差协方差模块共占用九 个浮点加法单元和八个浮点乘法运算单元;在QUARTUS II的参数可设置?(LPM)中,浮 点加、乘法器的周期参数分别设置为m、η个时钟周期;在数据运算?榈牡谝患陡〉愠朔 运算时,需要将未参与运算的数据同样设置为η个时钟的延时;在数据运算模块的第三、 四级浮点加法运算时,也需要将相应的上一级运算结果设置为m个时钟的延时;在输入端 口,每个时钟周期输入一个数据,当接收完前一时刻滤波误差协方差值后,每个时钟将相应 的乘数和被乘数传送到对应的寄存器并使能运算模块,这样每个数据在运算?橹芯 n+m+m+m+m个时钟周期的运算延时后,每个时钟周期输出一个数据,其中m > 7,η > 5。结合图5,本发明的平均真实偏差?榉治莘峙淠?楹褪菰怂隳?椋逼骄 真实偏差?榻邮胀昃断蚓嗬牒透┭鼋怯敕轿唤堑娜呛抵螅计舳莘峙淠 块,每个时钟周期将相应的数赋给对应的寄存器,经过η+η个时钟周期之后,每个时钟输出 一个平均真实偏差值;其中平均真实偏差?楣舱加萌龈〉愠朔ㄔ怂愕ピ辉赒UARTUS II的参数可设置?(LPM)中,浮点乘法器的周期参数分别设置为η个时钟周期;在输入 端口,每个时钟周期输入一个数据,当接收完径向距离和俯仰角与方位角的三角函数值之 后,每个时钟将相应的乘数和被乘数传送到对应的寄存器并使能数据运算?椋庋扛 数据在数据运算?橹芯+η个时钟周期的运算延时后,每个时钟周期输出一个数据, 其中 m > 7,η > 5。结合图6,本发明的增益矩阵?榉治莘峙淠?楹褪菰怂隳?椋痹鲆婢 阵模块接收完预测误差协方差值之后,开始启动数据分配?椋扛鍪敝又芷诮嘤Φ氖 赋给对应的寄存器,经过n+m+m个时钟周期之后,每个时钟输出一个增益值;其中增益矩阵 ?楣舱加昧礁龈〉慵臃ǖピ腿龈〉愠朔ㄔ怂愕ピ辉赒UARTUS II的参数可设置模 块(LPM)中,浮点加、乘法器的周期参数分别设置为m、n个时钟周期;在数据运算?榈牡 二级浮点加法运算时,需要将相应的上一级运算结果设置为m个时钟的延时;在输入端口, 每个时钟周期输入一个数据,当接收完预测误差协方差值和新息之后,每个时钟将相应的 乘数和被乘数传送到对应的寄存器并使能运算?椋庋扛鍪菰谑菰怂隳?橹芯 n+m+m个时钟周期的运算延时后,每个时钟周期输出一个数据,其中7,η > 5。结合图7本发明的状态更新?榉治莘峙淠?楹褪菰怂隳?椋弊刺 ?榻邮胀曜刺げ庵岛驮鲆婢卣蠛托孪⒅螅计舳莘峙淠?椋扛鍪敝又芷诮 相应的数赋给对应的寄存器,经过n+m+m个时钟周期之后,每个时钟输出一个状态估计值;其中状态更新模块共占用三个浮点加法单元和三个浮点乘法运算单元;在QUARTUS II的 参数可设置?(LPM)中,浮点加、乘法器的周期参数分别设置为m、η个时钟周期;在数 据运算模块的第一级浮点乘法运算时,需要将未参与运算的数据同样设置为η个时钟的延 时;在输入端口,每个时钟周期输入一个数据,当接收完状态预测值和增益矩阵和新息后, 每个时钟将相应的乘数和被乘数传送到对应的寄存器并使能数据运算?椋庋扛鍪 在数据运算?橹芯齨+m+m个时钟周期的运算延时后,每个时钟周期输出一个数据,其 中 m > 7,η > 5。结合图8本发明的滤波误差协方差?榉治莘峙淠?楹褪菰怂隳?椋甭 波误差协方差?榻邮胀暝げ馕蟛钚讲钪岛驮鲆婢卣笾抵螅计舳莘峙淠?椋 每个时钟周期将相应的数赋给对应的寄存器,经过n+m+m个时钟周期之后,每个时钟输出 一个滤波误差协方差值;其中滤波误差协方差?楣舱加靡桓龈〉慵臃ǖピ、两个浮点减 法单元和三个浮点乘法运算单元;在QUARTUS II的参数可设置?(LPM)中,浮点加、减、 乘法器的周期参数分别设置为m、m、n个时钟周期;在数据运算?榈牡谝患陡〉愠朔ㄔ怂 时,需要将未参与运算的数据同样设置为η个时钟的延时;在输入端口,每个时钟周期输入 一个数据,当接收完预测误差协方差值和增益矩阵值后,每个时钟将相应的乘数和被乘数 传送到对应的寄存器并使能数据运算?椋庋扛鍪菰谠怂隳?橹芯齨+m+m个时钟 周期的运算延时后,每个时钟周期输出一个数据,其中m > 7,η > 5。实施例参照图1,本发明基于FPGA的去偏转换量测卡尔曼滤波器系统包括三角函数模 块、一步预测?、预测误差协方差?椤⒃鲆婢卣竽?、状态更新?椤⒙瞬ㄎ蟛钚讲钅 块和FIFO?。其中增益矩阵?榘骄媸敌讲钭幽?楹驮鲆婢卣笞幽?椋蛔刺 新?榘曜蛔幽?、平均真实偏差子?、新息子?楹妥刺伦幽?。其中在 各运算?榉直鸬饔昧烁〉慵、减、乘、除运算?。本实施例采用雷达对近程目标进行跟踪,其中雷达数据输出周期T为0. 8192mSo 选择Singer加速度模型作为目标的动态模型。系统状态方程为Xk+1 = Φ Xk+TkWk(1)观测方程为Zk = HkXk+Vk(2)其中又^⑷,凡,^九,‘‘九忑广为系统的状态向量,包括目标在乂轴彳轴、 Z轴方向上的坐标位置、速度和加速度;Φ为状态转移矩阵;rk为噪声矩阵;Wk为系统的状 态噪声为系统量测值;Hk为量测矩阵;Vk为量测噪声。
权利要求
1.一种基于FPGA的去偏转换量测卡尔曼滤波器的设计方法,其特征在于首先设计基 于FPGA的去偏转换量测卡尔曼滤波的系统,包括三角函数?、一步预测?、预测误差 协方差?、增益矩阵模块、状态更新?、滤波误差协方差?楹虵IFO?椋渲性鲆婢 阵?榘骄媸敌讲钭幽?楹驮鲆婢卣笞幽?椋蛔刺履?榘曜蛔幽 块、平均真实偏差子?、新息子?楹妥刺伦幽?椋凰龅娜呛?、一步预测 ?、预测误差协方差?、滤波误差协方差模块、平均真实协方差子?、增益矩阵子模 块、坐标转换子?、平均真实偏差子?、新息子?楹妥刺伦幽?榉直鸬饔昧烁〉 加、减、乘、除运算?椋蝗呛?槿呛?榈氖淙攵丝谖勘甑母┭鼋呛头轿唤、时钟信号、复位信 号和输入使能信号;输出端口为俯仰角与方位角的三角函数值和下一?榈奈帐中藕牛辉 三角函数?橹校┭鼋怯敕轿唤堑娜呛导扑阋淮危缓笤谧曜荒?、量测转换 的平均真实偏差?楹土坎庾坏钠骄媸敌讲畹哪?樾枰倍寥≌庑┦荩倭 的寄存器来换取宝贵的乘法单元;一步预测?槭淙攵丝谖弦皇笨棠勘甑淖刺兰浦、时钟信号、复位信号和输入使 能信号;输出端口为一步提前预测值和下一模块的握手信号;其中复位信号的作用是每处 理完一帧数据,对内部计数器进行复位;输入使能信号的作用是提示并允许接收上一时刻 目标状态估计值;握手信号的作用是使能状态更新?、新息子?榻邮找徊皆げ庵担辉げ馕蟛钚讲钅?槭淙攵丝谖弦皇笨痰穆瞬ㄎ蟛钚讲钪怠⑹敝有藕、复位信号 和输入使能信号;输出端口为预测误差协方差值和下一?榈奈帐中藕牛辉鲆婢卣竽?樵诩扑阍鲆婢卣笫保枰惹蟪隽坎庠肷男讲罹卣螅碊CMKF的平 均真实协方差,然后计算增益矩阵的值,对于整个增益矩阵?槎裕淙攵丝谖勘甑母 仰角与方位角的三角函数值、径向距离、预测误差协方差值、时钟信号、复位信号和上述各 值的输入使能信号;输出端口为增益矩阵的值和状态更新?、滤波误差协方差?榈奈 手信号;滤波更新?樵诩扑懵瞬ǜ轮凳保枰蜃甑降芽ǘ甑淖瓯浠、去偏 修正、新息计算、滤波更新四个过程;对于整个滤波更新?槎裕淙攵丝谟心勘甑木断 距离、目标的俯仰角与方位角的三角函数值、状态一步预测值、增益矩阵的值、时钟信号、复 位信号和上述各值的输入使能信号;输出端口为状态估计值和握手信号,其中该握手信号 为LPM_FIF01模块的写使能信号;滤波误差协方差?槭淙攵丝谖げ馕蟛钚讲钪、增益矩阵的值、时钟信号、复位 信号和两个数据输入使能信号;输出端口为滤波误差协方差值和握手信号,其中该握手信 号为LPM_FIF02?榈男词鼓苄藕牛籉IFO?榈饔昧礁鯢IFO模块,其中LPM_FIF01?橛糜谠荽婷恳淮温瞬ǜ轮担 LPM_FIF02?橛糜谠荽媛瞬ㄎ蟛钚讲畹闹担员阍谙乱皇笨痰饔。
2.根据权利要求1所述的基于FPGA的去偏转换量测卡尔曼滤波器的设计方法,其特 征在于平均真实偏差?、平均真实协方差模块、一步预测?椤⒃げ馕蟛钚讲钅?楹腿 角函数模块并行运算,设计时,在每个?橹浼由衔帐中藕牛糜谑鼓芟乱桓鲈怂隳?榻 收数据并运算,各模块便能按照相应的时序有条不紊的运行,即基于FPGA的去偏转换量测 Kalman滤波并行实现的步骤如下(1)三角函数?椋谇蟾┭鼋呛头轿唤侨呛凳保肨aylor公式求出当前时 刻测量值的正弦值和余弦值;(2)平均真实偏差?椋美状锊饬康降木断蚓嗬、俯仰角和方位角以及各自的噪声 方差求去转换量测的平均真实偏差;(3)平均真实协方差?椋美状锊饬康降木断蚓嗬、俯仰角和方位角以及各自的噪 声方差求去转换量测的平均真实协方差;(4)一步预测?椋弦皇笨痰淖刺兰浦荡胱刺げ夥匠蹋玫降鼻笆笨痰淖刺 预测值;(5)预测误差协方差?椋蒙弦皇笨痰穆瞬ㄎ蟛钚讲钜约白刺肷讲畲 预测误差协方差方程,得到预测误差协方差值;(6)增益?椋迷げ馕蟛钚讲钪岛土坎庾坏钠骄媸敌讲钪荡朐鲆婢卣 方程,得到增益;(7)新息?椋萌テ涣坎夂蟮牧坎庵岛妥刺げ庵担笕⌒孪ⅲ(8)状态更新值?椋米刺げ庵、增益以及新息,代入状态更新方程,得到状态更 新值;(9)滤波误差协方差?椋迷げ馕蟛钚讲钪岛驮鲆妫肼瞬ㄎ蟛钚讲罘匠蹋 得到滤波误差协方差值;(10)返回到步骤(1)进行下一时刻的计算。
3.根据权利要求1所述的基于FPGA的去偏转换量测卡尔曼滤波器的设计方法,其特 征在于一步预测?榉治莘峙淠?楹褪菰怂隳?椋毕低辰邮盏降鼻笆笨滩饬恐登 一步预测?榻邮胀昵耙皇笨套刺兰浦抵螅计舳莘峙淠?椋扛鍪敝又芷诮 相应的数据赋给对应的寄存器,经过n+m+m个时钟周期之后,每个时钟输出一个状态预测 值;其中一步预测?楣舱加昧礁龈〉慵臃ǖピ土礁龈〉愠朔ㄔ怂愕ピ辉赒UARTUS II 的参数可设置?橹校〉慵、乘法器的周期参数分别设置为m、n个时钟周期;在数据运算 ?榈牡谝患陡〉愠朔ㄔ怂闶保枰床斡朐怂愕氖萃柚梦歉鍪敝拥难邮保辉 数据运算?榈牡诙陡〉慵臃ㄔ怂闶保残枰嘤Φ纳弦患对怂憬峁柚梦猰个时钟 的延时;在输入端口,每个时钟周期输入一个数据,当接收完九个状态值后,每个时钟将相 应的乘数和被乘数传送到对应的寄存器并使能运算模块,这样每个数据在运算?橹芯 n+m+m个时钟周期的运算延时后,每个时钟周期输出一个数据,其中m > 7,η > 5。
4.根据权利要求1所述的基于FPGA的去偏转换量测卡尔曼滤波器的设计方法,其特 征在于预测误差协方差?榉治莘峙淠?楹褪菰怂隳?椋毕低辰邮盏降鼻笆笨滩 量值且预测误差协方差?榻邮胀昵耙皇笨搪瞬ㄎ蟛钚讲钪岛螅计舳莘峙淠 块,每个时钟周期将相应的数赋给对应的寄存器,经过n+m+m+m+m个时钟周期之后,每个时 钟输出一个预测误差协方差值;其中预测误差协方差?楣舱加镁鸥龈〉慵臃ǖピ桶烁 浮点乘法运算单元;在QUARTUS II的参数可设置?橹校〉慵、乘法器的周期参数分别 设置为m、η个时钟周期;在数据运算?榈牡谝患陡〉愠朔ㄔ怂闶保枰床斡朐怂愕 数据同样设置为η个时钟的延时;在数据运算?榈牡谌⑺募陡〉慵臃ㄔ怂闶保残枰 相应的上一级运算结果设置为m个时钟的延时;在输入端口,每个时钟周期输入一个数据, 当接收完前一时刻滤波误差协方差值后,每个时钟将相应的乘数和被乘数传送到对应的寄存器并使能运算?椋庋扛鍪菰谠怂隳?橹芯齨+m+m+m+m个时钟周期的运算延时 后,每个时钟周期输出一个数据,其中m > 7,η > 5。
5.根据权利要求1所述的基于FPGA的去偏转换量测卡尔曼滤波器的设计方法,其特 征在于平均真实偏差?榉治莘峙淠?楹褪菰怂隳?椋逼骄媸灯钅?榻邮胀 径向距离和俯仰角与方位角的三角函数值之后,开始启动数据分配模块,每个时钟周期将 相应的数赋给对应的寄存器,经过η+η个时钟周期之后,每个时钟输出一个平均真实偏差 值;其中平均真实偏差模块共占用三个浮点乘法运算单元;在QUARTUS II的参数可设置模 块中,浮点乘法器的周期参数分别设置为η个时钟周期;在输入端口,每个时钟周期输入一 个数据,当接收完径向距离和俯仰角与方位角的三角函数值之后,每个时钟将相应的乘数 和被乘数传送到对应的寄存器并使能数据运算?椋庋扛鍪菰谑菰怂隳?橹芯 η+η个时钟周期的运算延时后,每个时钟周期输出一个数据,其中m > 7,η > 5。
6.根据权利要求1所述的基于FPGA的去偏转换量测卡尔曼滤波器的设计方法,其特 征在于增益矩阵模块分为数据分配?楹褪菰怂隳?椋痹鲆婢卣竽?榻邮胀暝げ馕蟛 协方差值之后,开始启动数据分配?椋扛鍪敝又芷诮嘤Φ氖掣杂Φ募拇嫫鳎 n+m+m个时钟周期之后,每个时钟输出一个增益值;其中增益矩阵?楣舱加昧礁龈〉慵 法单元和三个浮点乘法运算单元;在QUARTUS II的参数可设置?橹校〉慵印⒊朔ㄆ鞯 周期参数分别设置为m、η个时钟周期;在数据运算?榈牡诙陡〉慵臃ㄔ怂闶保枰 相应的上一级运算结果设置为m个时钟的延时;在输入端口,每个时钟周期输入一个数据, 当接收完预测误差协方差值和新息之后,每个时钟将相应的乘数和被乘数传送到对应的寄 存器并使能运算?椋庋扛鍪菰谑菰怂隳?橹芯齨+m+m个时钟周期的运算延时 后,每个时钟周期输出一个数据,其中m > 7,η > 5。
7.根据权利要求1所述的基于FPGA的去偏转换量测卡尔曼滤波器的设计方法,其特征 在于状态更新?榉治莘峙淠?楹褪菰怂隳?椋弊刺履?榻邮胀曜刺げ庵 和增益矩阵和新息之后,开始启动数据分配?椋扛鍪敝又芷诮嘤Φ氖掣杂Φ募 存器,经过n+m+m个时钟周期之后,每个时钟输出一个状态估计值;其中状态更新?楣舱 用三个浮点加法单元和三个浮点乘法运算单元;在QUARTUS II的参数可设置?橹校〉 加、乘法器的周期参数分别设置为m、η个时钟周期;在数据运算?榈牡谝患陡〉愠朔ㄔ 算时,需要将未参与运算的数据同样设置为η个时钟的延时;在输入端口,每个时钟周期输 入一个数据,当接收完状态预测值和增益矩阵和新息后,每个时钟将相应的乘数和被乘数 传送到对应的寄存器并使能数据运算模块,这样每个数据在数据运算?橹芯齨+m+m个 时钟周期的运算延时后,每个时钟周期输出一个数据,其中m > 7,η > 5。
8.根据权利要求1所述的基于FPGA的去偏转换量测卡尔曼滤波器的设计方法,其特征 在于滤波误差协方差?榉治莘峙淠?楹褪菰怂隳?椋甭瞬ㄎ蟛钚讲钅?榻邮 完预测误差协方差值和增益矩阵值之后,开始启动数据分配?椋扛鍪敝又芷诮嘤Φ 数赋给对应的寄存器,经过n+m+m个时钟周期之后,每个时钟输出一个滤波误差协方差值; 其中滤波误差协方差?楣舱加靡桓龈〉慵臃ǖピ、两个浮点减法单元和三个浮点乘法运 算单元;在QUARTUS II的参数可设置?橹校〉慵、减、乘法器的周期参数分别设置为m、 m、η个时钟周期;在数据运算?榈牡谝患陡〉愠朔ㄔ怂闶保枰床斡朐怂愕氖萃 样设置为η个时钟的延时;在输入端口,每个时钟周期输入一个数据,当接收完预测误差协方差值和增益矩阵值后,每个时钟将相应的乘数和被乘数传送到对应的寄存器并使能数据 运算?椋庋扛鍪菰谠怂隳?橹芯齨+m+m个时钟周期的运算延时后,每个时钟周 期输出一个数据,其中m彡7,η彡5。
全文摘要
本发明公开了一种基于FPGA的去偏转换量测卡尔曼滤波器的设计方法,首先设计基于FPGA的去偏转换量测卡尔曼滤波的系统,增益矩阵?榘骄媸敌讲钭幽?楹驮鲆婢卣笞幽?椋蛔刺履?榘曜蛔幽?、平均真实偏差子?、新息子?楹妥刺伦幽?椋凰龅娜呛?椤⒁徊皆げ饽?、预测误差协方差?椤⒙瞬ㄎ蟛钚讲钅?、平均真实协方差子?、增益矩阵子?、坐标转换子模块、平均真实偏差子?、新息子模块和状态更新子模块分别调用了浮点加、减、乘、除运算模块。本发明采用结构层次化设计,底层?樵擞肰HDL输入,顶层采用原理图输入方式,可提高代码的可读性,易于?榛郑曳奖阍谏杓乒讨薪蟹抡。
文档编号G01S13/66GK102064799SQ20101062272
公开日2011年5月18日 申请日期2010年12月31日 优先权日2010年12月31日
发明者吴盘龙, 张捷, 朱建良, 杜国平, 王向民, 王宝宝, 王筱莉, 薄煜明, 邹卫军, 陈帅 申请人:南京理工大学