Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
of
Kalman Filter for Radar
Applications
M.Sc. Computer Engineering
Project Presentation
Fakhar Ahsan
2007-
2007-06-
06-0016
Outline
Introduction
Purpose & Overview
Adaptive filtering
Kalman Filter
Hardware/Software Codesign
Co design of Kalman filter
Accelerator Design & Implementation
– Flowchart
– FSM
Synthesis results
Performance evaluation
Summary
1
Introduction
Signal Processing
– Digital Signal Processing
– Digital Filtering
Purpose
Digital Filters
Fixed-coefficient Filters
Programmable Filters
Adaptive Filters
2
Adaptive Filtering
Why do we need Adaptive filtering?
– Interfering signal’
signal’s statistics change with time
Adaptive Filtering
Variable Filter
x(n) (ωn)
y(n)
∆ωn
Update
Algorithm
3
Adaptive Filtering Algorithms
Least Mean Squares (LMS) Algorithm
Kalman Filtering
Wiener Filtering
Kalman Filter
Advantages
4
Kalman Filter
Applications
Observed
Measurement
Error Source Measurement
Optimal
Estimate of
Controls Measuring Kalman System State
System
Device Filter
System Error
Sources
System State
(Desired but not Known)
10
5
Kalman Filter
MATLAB Simulations
Measurement
Error Source
External Noise
System + Measuring
Device Observed
Measurement
System State
11
(Desired but not Known)
Kalman Filter
MATLAB Simulations
Kalman Filter
12
6
Kalman Filter
MATLAB Simulations
13
Kalman Filter
Radar Tracking
– Position, Velocity, and Acceleration
– Azimuth Angle, Azimuth Angle Rate, and
Azimuth Angle Acceleration
7
Kalman Filter
Operation of Kalman Filter
Measurement Update
Predict / Estimate
15
Predict
Xo (n) Estimate
+ + Kn +
−
Delay
X(n)
Hn Φ
X (n-1)
Update
16
8
Kalman Tracker
State Equation
– prediction
Position
Velocity
Acceleration
17
Kalman Tracker
Xo (n) Estimate
+
+ Kn +
−
Delay
Hn Φ
18
9
Kalman Tracker
Computational Complexity
Kalman Gain Update
Xo (n) Estimate
+ + Kn +
−
Delay
Hn Φ
Xn 1 Φ 11 Φ 12 Φ 13
X
1
*
Xn 2 = Φ 21 Φ 22 Φ 23 X 2 19
Xn 3 Φ 31 Φ 32 Φ X
33
3
Kalman Tracker
Kalman gain computation
– Error covariance extrapolation
S = PHI * S * PHIT + Q
S 21 S S 22 23
Φ21 Φ Φ
22 23 S 21 S S
22 23 Φ12 Φ Φ 22 32 Q21 Q Q
22 23
S 31 S S 32
33 Φ31 Φ Φ
32 S 31
33 S S
32
Φ13
33 Φ Φ 23
33 Q
31 Q Q 32 33
– Gain calculation
k1 = S11 / (S11 + R)
k2 = S12 / (S11 + R)
k3 = S13 / (S11 + R)
20
10
Computation complexity of Kalman
Tracker
3M + 2A
9(3M + 2A) for 3x3 matrix multiplication
Hardware/Software Codesign
A mixture of
– Off-
Off-The-
The-Shelf Processors / software
– Specialized hardware
22
11
Hw/Sw Codesign
Motivation for Codesign
– Hardware provides with greater performance
– Software incorporates flexibility in the system
23
24
12
Co-design with Xilinx EDK
Host Processor
Peripheral Bus
Memory
25
o Component
o Embedded Operating
configuration
System
o Bus Connections
o Simulation and
o Compiler + Debugger
Implementation
o Machine Code generation
o Bit Stream generation
13
Accelerator Design & Implementation
Computations in FPGAs
– Fixed-
Fixed-point implementation should be preferred
27
28
14
Fixed–Point Implementation Issues
Fixed –Point Scale Factor Adjustment
(s · x + s · y ) = s · (x + y)
(s · x * s · y ) / s = s · (xy)
Scale Value
1024 (For three decimal places)
29
S S S + S *T + S *T 2 1 0 0 Q Q Q
2 2 2
S11
12 13 11 21 31
2 S + S *T + S *T
12 22 32
2 S + S *T + S *T
13 23 33
11 12 13
S21 S S = S + S *T
22 23 21 31 S + S *T 22 32 S + S *T
23 33 * T 1 0 + Q Q Q
21 22 23
S31 S S S S S 2
T
Q Q Q
T 1
32 33 31 32 33
31 32 33
2
Advantage:
(9M + 9A) instead of (27M +18A)
Total: (30M + 27A) instead of (54M +45A)
30
15
Kalman Accelerator Core Design
Software Part
31
32
16
Kalman Accelerator Core Design
State Diagram of Kalman Accelerator
33
34
17
Kalman Accelerator Core Design
Mapping of Software Accessible Registers
35
Synthesis Results
Kalman Accelerator:
– 64x32-
64x32-bit dual-
dual-port RAM 3
– Multipliers 34
– Adders/Subtractors 140
– Device Utilization:
Number of Slices 3783 out of 13696 27%
Maximum Freq. 43 MHz
36
18
Performance Evaluation
Final System Design
Microblaze
UART
Kalman Timer
Accelerator Module
37
Performance Evaluation
Experimental Results
– For a block of data (block size 64)
Software Only
– Filtering operation takes 28305 clock cycles at 33 MHz.
Hw/Sw Codesign
– Filtering operation inclusive of data read and coefficient write
operations, takes 7366 clock cycles at 33 MHz.
38
19
Summary
Tools Used
– MATLAB 7.3 (R2006b)
– Xilinx ISE v 10.1 —XST (for Logic Synthesis)
– Xilinx ISE v 10.1 — ISE Simulator (for
Simulation)
– Xilinx EDK v10.1 (for Software Compilation,
HW/SW merger & Implementation)
39
Summary
Conclusion
– A Kalman filter accelerator for MicroBlaze
processor based system was designed and
implemented with standard PLB interface on
Xilinx Virtex-
Virtex-II pro FPGA development board
40
20
Thank You !
41
21