基于DSP的数据处理模块的设计
发布时间:2008/5/27 0:00:00 访问次数:447
在tws雷达系统中,对跟踪目标的数据进行处理常常要进行卡尔曼滤波。卡尔曼滤波是一种最优估计的递推滤波算法,具有实时性好和精度高的特点。但是由于其算法中多为矩阵运算,所以较其它算法如最小二乘法、α-β算法等的运算量要大。为了减小运算量以满足系统反应时间的要求,应用中往往采用简化的卡尔曼滤波算法,但这样又会带来滤波精度的降低。在设计卡尔曼滤波数据处理模块时,为了解决该矛盾,采用了高速浮点型dsp tms320c31。tms320c31是美国ti公司的第三代dsp产品,其内部采用程序和数据分开的哈佛结构、流水线操作以及并发i/o和cpu操作。芯片内含有专用硬件乘法器和桶形移位寄存器,具有32位的浮点精度,特别适合类似卡尔曼滤波这样运算量大、实时性和计算精度要求高的场合。
1 卡尔曼滤波算法
卡尔曼滤波器的状态方程和量测方程如下:
x(k+1)=a(k)x(k)+w(k)
z(k)=h(k)x(k)+v(k)
式中,x(k)=[x1(k),x2(k),x3(k),x4(k)]t
z(k)=[z1(k),z2(k)]t
w(k)=[0,u1(k),0,u2(k)]t
v(k)=[v1(k),v2(k)]t
a=1t00 0100 001t 0001
h=1000 0010
x1(k)=ρ(k)
x2(k)=ρ(k)
x3(k)=θ(k)
x4(k)=θ(k)
t为采样周期
ρ(k),ρ(k)分别为距离和径向速度的估值
θ(k)、(k)分别为方位角和方位角速度的估值
u1(k)表示t时间内径向速度的变化量
u2(k)表示t时间内方位角速度的变化量
v1(k)为距离量测噪声
v2(k)为方位角量测噪声
z1(k)和z2(k)分别为距离和角度的测量值
滤波器递推方程为: x1(k/k-1)=a(k-1/k-1)
p1(k/k-1)=ap(k-1/k-1)at+q(k-1)
g(k)=p1(k/k-1)ht[hp1(k/k-1)ht+r(k)]-1
p(k/k)=p(k/k-1)-g(k)hp1(k/k-1)
x1(k/k)=1(k/k-1)+g(k)z(k)-z(k) z(k)=h1(k/k-1)
其中,g(k)为卡尔曼增益矩阵
q(k)、r(k)分别为状态噪声协方差矩阵和量测噪声协方差矩阵
p(k)为误差协方差矩阵
2 基于tms320c31的数据处理模块的工作原理
2.1 多处理器工作模式下主机和tms320c31数据通信的设计
数据处理模块由双口ram idt7134、tms320c31(以下简称c31)、eerom 28f010和高速ram cy7c199组成通过isa总线和主计算机连接起来,构成主从式多处理器工作模式,如图1所示。主从式处理器系统的设计关键在于处理器之间的数据交换,主从处理器间的数据交换主要有串行、并行、dma及双口ram四种交换方式。本方案采用idt公司的双口ram idt7134实现主计算机和c31间的数据交换。idt7134内部含有4kb的存储器资源,具有两组地址、数据总线及读写控制线。主计算机和c31可同时对其进行读写操作。在对其内部同一存储单元访问时,要考虑写入和读出数据的完整性。idt7134没有单独的主从处理器访问控制引脚,设计时需用软件方式来保证主计算机和c31之间数据交换的正确性。本方案中采用了在idt7134中设置输入输出semaphore的方案,即主计算机在将跟踪雷达的测量数据写入双口ram后,设置输入semaphore,通知c31读取测量数据。c31进行卡尔曼滤波后,将滤波结果写入双口ram,设置输出semaphore,通知主计算机读取。双口ram的数据宽度为8位,c31数据总线宽度为32位。双口ram的数据总线和c31低8位数据总线相接。为了提高数据处理的精度,双口ram中的跟踪数据和c31的滤波结果都以字(32位)为单位进行存储,c31作卡尔曼滤波时,首先按字节读取跟踪数据,然后进行移位,拼接成32位整形数,再将整形数转换为浮点数,进行滤波运算。输出时,则将浮点型的结果转为整形数,按字节写入双口ram中。双口ram空间分配如图2所示。
2.2 c31的系统装入和管理
c31有两种工作模式,即微处理器和微计算机方式,本方案中,c31的mcbl/mp脚接高电平,c31工作于
在tws雷达系统中,对跟踪目标的数据进行处理常常要进行卡尔曼滤波。卡尔曼滤波是一种最优估计的递推滤波算法,具有实时性好和精度高的特点。但是由于其算法中多为矩阵运算,所以较其它算法如最小二乘法、α-β算法等的运算量要大。为了减小运算量以满足系统反应时间的要求,应用中往往采用简化的卡尔曼滤波算法,但这样又会带来滤波精度的降低。在设计卡尔曼滤波数据处理模块时,为了解决该矛盾,采用了高速浮点型dsp tms320c31。tms320c31是美国ti公司的第三代dsp产品,其内部采用程序和数据分开的哈佛结构、流水线操作以及并发i/o和cpu操作。芯片内含有专用硬件乘法器和桶形移位寄存器,具有32位的浮点精度,特别适合类似卡尔曼滤波这样运算量大、实时性和计算精度要求高的场合。
1 卡尔曼滤波算法
卡尔曼滤波器的状态方程和量测方程如下:
x(k+1)=a(k)x(k)+w(k)
z(k)=h(k)x(k)+v(k)
式中,x(k)=[x1(k),x2(k),x3(k),x4(k)]t
z(k)=[z1(k),z2(k)]t
w(k)=[0,u1(k),0,u2(k)]t
v(k)=[v1(k),v2(k)]t
a=1t00 0100 001t 0001
h=1000 0010
x1(k)=ρ(k)
x2(k)=ρ(k)
x3(k)=θ(k)
x4(k)=θ(k)
t为采样周期
ρ(k),ρ(k)分别为距离和径向速度的估值
θ(k)、(k)分别为方位角和方位角速度的估值
u1(k)表示t时间内径向速度的变化量
u2(k)表示t时间内方位角速度的变化量
v1(k)为距离量测噪声
v2(k)为方位角量测噪声
z1(k)和z2(k)分别为距离和角度的测量值
滤波器递推方程为: x1(k/k-1)=a(k-1/k-1)
p1(k/k-1)=ap(k-1/k-1)at+q(k-1)
g(k)=p1(k/k-1)ht[hp1(k/k-1)ht+r(k)]-1
p(k/k)=p(k/k-1)-g(k)hp1(k/k-1)
x1(k/k)=1(k/k-1)+g(k)z(k)-z(k) z(k)=h1(k/k-1)
其中,g(k)为卡尔曼增益矩阵
q(k)、r(k)分别为状态噪声协方差矩阵和量测噪声协方差矩阵
p(k)为误差协方差矩阵
2 基于tms320c31的数据处理模块的工作原理
2.1 多处理器工作模式下主机和tms320c31数据通信的设计
数据处理模块由双口ram idt7134、tms320c31(以下简称c31)、eerom 28f010和高速ram cy7c199组成通过isa总线和主计算机连接起来,构成主从式多处理器工作模式,如图1所示。主从式处理器系统的设计关键在于处理器之间的数据交换,主从处理器间的数据交换主要有串行、并行、dma及双口ram四种交换方式。本方案采用idt公司的双口ram idt7134实现主计算机和c31间的数据交换。idt7134内部含有4kb的存储器资源,具有两组地址、数据总线及读写控制线。主计算机和c31可同时对其进行读写操作。在对其内部同一存储单元访问时,要考虑写入和读出数据的完整性。idt7134没有单独的主从处理器访问控制引脚,设计时需用软件方式来保证主计算机和c31之间数据交换的正确性。本方案中采用了在idt7134中设置输入输出semaphore的方案,即主计算机在将跟踪雷达的测量数据写入双口ram后,设置输入semaphore,通知c31读取测量数据。c31进行卡尔曼滤波后,将滤波结果写入双口ram,设置输出semaphore,通知主计算机读取。双口ram的数据宽度为8位,c31数据总线宽度为32位。双口ram的数据总线和c31低8位数据总线相接。为了提高数据处理的精度,双口ram中的跟踪数据和c31的滤波结果都以字(32位)为单位进行存储,c31作卡尔曼滤波时,首先按字节读取跟踪数据,然后进行移位,拼接成32位整形数,再将整形数转换为浮点数,进行滤波运算。输出时,则将浮点型的结果转为整形数,按字节写入双口ram中。双口ram空间分配如图2所示。
2.2 c31的系统装入和管理
c31有两种工作模式,即微处理器和微计算机方式,本方案中,c31的mcbl/mp脚接高电平,c31工作于
热门点击
推荐技术资料
| |