ECE 495 — Electromagnetic Warfare and Survivability
Block 4: Aircraft Survivability and Mission Planning Lesson 35: Fusion Under Threat
Juan Jurado, Col, USAF, Ph.D.
Permanent Professor and Head
Electrical and Computer Engineering
Fall 2026
← → navigate · C draw ·
B board · S speaker view · F fullscreen · ? all shortcuts
Take attendance; collect the Final Project checkpoint; laptops out for the type-along later.
Block 4 · Lesson 35 · Where We Left Off
Where We Left Off
L34 routed the B-21 around every threat on the laydown.
L33: a network of bearings, one instant
$$J = \sum_k \frac{\mathbf n_k \mathbf n_k^{\top}}{R_k^2\,\sigma_\theta^2}$$
Then a SAM that was not on the laydown lights up. One aircraft, one RWR, no second receiver — and the bearings arrive one at a time .
Today: fuse your own bearings over time, and learn when that is enough.
Two minutes of recall; frame the pop-up and move on.
Block 4 · Lesson 35 · Objectives
Lesson Objectives
By the end of this lesson, you will be able to:
Extend L14's batch least squares to a recursive estimator
Run one EKF predict/update for a bearing, by hand and in MATLAB
State the bearings-only observability conditions
Weigh maneuvering to observe against exposure
Bearings alone can't tell you range — you have to move to see.
Read them out; say the bumper once and come back to it at the wrap-up.
Block 4 · Lesson 35 · Part One
From Batch to Recursive
L14 solved every bearing at once. A tracker cannot wait for the last one.
Shift from many receivers to one.
Block 4 · Lesson 35 · Fusion Over Time
Fusion Across Time, Not Across Receivers
Cold-call: what plays the role of L14's second receiver here?
Block 4 · Lesson 35 · The Recursive Idea
The Recursive Idea, One Number at a Time
Board the one-line derivation if asked; the fragment is the bridge to the next slide.
Block 4 · Lesson 35 · The Kalman Filter
The Kalman Filter: Predict, Then Update
Point at each update line and name its scalar twin from the previous slide.
Block 4 · Lesson 35 · The EKF
The "Extended" Part: Linearize the Bearing
A bearing is not linear in position, so the filter uses its slope at the current estimate :
Measurement and Jacobian row (the L33 row)
$$h(\hat{\mathbf x}^-) = \text{atan2}(\Delta E, \Delta N), \qquad H = \frac{[\,-\Delta E \quad \Delta N\,]}{R^2}, \qquad \nu = \operatorname{wrap}\big(z - h(\hat{\mathbf x}^-)\big)$$
$\Delta N, \Delta E, R$ run from the own-ship to the estimate , which is all the filter has
Wrap the innovation into $[-180^\circ, 180^\circ)$, or a bearing near due south jumps by $360^\circ$
Moving emitter: pad $H$ with zeros under $v_N, v_E$ — a bearing does not measure speed
Tie H to L33 by name; the next slide puts numbers through it.
Block 4 · Lesson 35 · Quick Exercise
Quick Exercise / Type-along: One Bearing, One Update
Type this with me — a pop-up about 50 km out, one RWR bearing good to 1°.
% L35 -- one EKF bearing update, stationary emitter
sig = deg2rad(1); % RWR bearing noise, 1 sigma
x = [30; 40]; % prior estimate [N; E], km
P = 16*eye(2); % prior covariance: 4 km per axis
own = [0; 0]; % own-ship [N; E], km
z = deg2rad(52); % the bearing just measured
d = x - own; R2 = d'*d; % [dN; dE] and range squared
H = [-d(2) d(1)]/R2; % bearing Jacobian row, rad/km
S = H*P*H' + sig^2; % innovation variance, rad^2
K = P*H'/S; % Kalman gain, km/rad
nu = mod(z - atan2(d(2), d(1)) + pi, 2*pi) - pi; % innovation
xn = x + K*nu; Pn = (eye(2) - K*H)*P;
fprintf('x = [%.2f %.2f] km K = [%.1f %.1f] km/rad\n', xn, K);
fprintf('sqrt(tr P): %.2f -> %.2f km\n', sqrt([trace(P) trace(Pn)]));
$\sqrt{\operatorname{tr} P}$ fell only from 5.66 to 4.09 km. Which way did the ellipse shrink, and which way did it not?
Then: a second bearing from this same spot — what does it buy?
Type it line by line with the class, then take answers on both beats before advancing.
Block 4 · Lesson 35 · Quick Problem
Quick Problem: Fuse Two Ranges
Two to three minutes, calculators or a MATLAB console; then click.
Block 4 · Lesson 35 · One Bearing
What One Bearing Buys
own-ship
line of sight
±4 km
along
±4 km across
The type-along's prior
A pop-up near 50 km, $\sigma = 4$ km in every direction: $\sqrt{\operatorname{tr} P} = 5.66$ km.
One 1° bearing lands. Which axis moves?
Hold the question until someone commits; the next slide is the answer.
Block 4 · Lesson 35 · One Bearing
What One Bearing Buys
own-ship
line of sight
±4.00 km
along: untouched
±0.85 km across
After one bearing
Across the line of sight: 4 → 0.85 km. Along it: 4.00 km — not a meter of range.
A bearing measures direction, never distance
A second bearing from the same spot thins the sliver — and leaves range alone
Bearings alone can't tell you range — you have to move to see.
Let the circle collapse before speaking. The callout is the bridge to Part Two.
Block 4 · Lesson 35 · Part Two
You Have to Move to See
Own-ship motion is the baseline. Whether it is enough depends on what the emitter is doing — and on how you fly.
Observability is the second half of the lesson.
Block 4 · Lesson 35 · Observability
A Stationary Emitter: The Leg Is the Baseline
Off the route
emitter
own-ship leg
the lines cross:
a fix
Dead ahead
emitter
every line of position
is the same line
own-ship leg
range?
Each new spot adds a line of position — L14's triangulation, spread over time
Observable from any leg that is not along the line of sight
Dead ahead, every LOP is the same line: the seam , range unobservable
Point out that dead ahead is also the fastest way to close on the threat.
Block 4 · Lesson 35 · Observability
A Moving Emitter: A Whole Family of Ghosts
true emitter
ghost at 1.9× the range:
same four bearings
own-ship: straight and steady
Scale the relative track by any $\alpha > 0$
$$\mathbf p_g(t) = \mathbf p_o(t) + \alpha\,\big[\mathbf p_e(t) - \mathbf p_o(t)\big]$$
Every bearing is unchanged, and the ghost still moves at constant velocity
No $\sigma_\theta$, no update rate, no filter can pick $\alpha$: range is unobservable
So what breaks the family?
Walk one bearing line from own-ship through the emitter to its ghost; then the next.
Block 4 · Lesson 35 · Observability
The Dogleg Breaks the Family
true emitter
ghost: its bearings
no longer match
turn
leg 1
After the turn the ghosts stop fitting: only one range fits every bearing
The bigger the change in bearing rate, the faster the ellipse collapses
A turn toward the threat changes it most — and closes the range
Which turn is cheapest — and cheapest in what?
Hold the fragment for the demo; the demo answers it with numbers.
Today's Interactive Demo: Bearings-Only Tracker
Companion script: L35_BearingsOnlyEKF.m
Live demo
Bearings-Only Tracker
usafa-ece.github.io/ece-495-ew
Demo hand-off; drive it from here. One own-ship, one RWR, an EKF on
its bearings. The preset chips are the story in order: Stationary,
Dead ahead, Moving, Moving + dogleg. Run animates the whole run from
the intel prior; Step walks it one bearing at a time; the scrubber
goes anywhere. The six tiles are end-of-run numbers and never change
with the animation. Zoom x5 when the ellipse gets too small to see.
Threat ring on for the last preset, then try a right turn.
Companion script runs on their own.
Block 4 · Lesson 35 · The Trade
Seeing Costs Exposure
The companion script's moving emitter, 300 s of bearings at 1°, two ways to fly it:
Straight leg Dogleg, 90° left at 90 s
Position $\sqrt{\operatorname{tr} P}$ at the end 4.3 km, long along the LOS 0.6 km
Time inside the 40 km ring 0 s 143 s
Other ways to buy range: a wingman's bearing (L14), a radar's range row (L33)
Or keep the long ellipse and route around its whole length (L34)
Every second inside the ring is paid for in $P_S$ (L31). The fix has to be worth it.
Take a vote on which column they fly before the fragment.
Block 4 · Lesson 35 · Wrap-Up
Wrap-Up
Key ideas
The Kalman filter is recursive fusion: predict, then weigh each measurement by its uncertainty
The EKF uses L33's bearing row $H$, taken at the estimate
One bearing shrinks the ellipse across the line of sight only
Moving emitter, straight own-ship: range is unobservable until you turn — and the turn costs exposure
Next lesson
L36: SEAD and Standoff Jamming — beam/notch, stand-off J/S, and the support package
Work the L36 pre-flight — you could be the one up front
Final Project checkpoint: turned in today, feedback only
Close the loop on the objectives slide's bumper.