USAFA DFEC

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

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.

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.

Block 4 · Lesson 35 · Part One

From Batch to Recursive

L14 solved every bearing at once. A tracker cannot wait for the last one.

Block 4 · Lesson 35 · Fusion Over Time

Fusion Across Time, Not Across Receivers

L14: across receivers
  • Many receivers, one instant
  • Stack every bearing, solve once: batch least squares
  • The baseline is the distance between receivers
L35: across time
  • One receiver, many instants
  • Each bearing updates the estimate as it lands: recursive
  • The baseline is the distance the own-ship flies
A wingman's bearing, when you have one, is L14 again — an instant baseline.

Block 4 · Lesson 35 · The Recursive Idea

The Recursive Idea, One Number at a Time

A prior $x_1 \pm \sigma_1$ and a new, independent measurement $x_2 \pm \sigma_2$ of the same quantity:

Information adds
$$\frac{1}{\sigma^2} = \frac{1}{\sigma_1^2} + \frac{1}{\sigma_2^2}$$
The gain moves the estimate
$$K = \frac{\sigma_1^2}{\sigma_1^2 + \sigma_2^2}, \qquad \hat x = x_1 + K\,(x_2 - x_1)$$
  • $K \to 1$: trust the new measurement. $K \to 0$: keep the prior.
  • The fused $\sigma$ is smaller than either input, always

Keep the fused pair as the next prior and wait for the next measurement. That loop is the Kalman filter.

Block 4 · Lesson 35 · The Kalman Filter

The Kalman Filter: Predict, Then Update

Two steps every time a bearing lands. The prior is whatever the last update left behind.

Predict — the motion model
$$\begin{aligned} \hat{\mathbf x}^- &= F\,\hat{\mathbf x} \\ P^- &= F P F^{\top} + Q \end{aligned}$$
Update — one bearing $z$
$$\begin{aligned} S &= H P^- H^{\top} + \sigma_\theta^2 \\ K &= P^- H^{\top} / S \\ \hat{\mathbf x} &= \hat{\mathbf x}^- + K\,\nu \\ P &= (I - K H)\,P^- \end{aligned}$$
  • Stationary emitter: $\mathbf x = [N\;\,E]^{\top}$, $F = I$, $Q = 0$
  • Moving emitter: $\mathbf x = [N\;\,E\;\,v_N\;\,v_E]^{\top}$, and $F$ moves the position by $\mathbf v\,\Delta t$
  • $S$ and $K$ are the scalar case in matrix clothes: $\sigma_1^2 \to HP^-H^{\top}$, $\sigma_2^2 \to \sigma_\theta^2$

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

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?

Block 4 · Lesson 35 · Quick Problem

Quick Problem: Fuse Two Ranges

Your RWR has a pop-up emitter's bearing. Along that line of sight, two independent sources give its range.

  • Intel prior: 52 km, $\sigma_1 = 6$ km
  • Wingman's cross-fix: 46 km, $\sigma_2 = 3$ km
  • Independent, Gaussian errors
  1. (a) The Kalman gain $K$ on the wingman's fix.
  2. (b) The fused range and its $1\sigma$.
  3. (c) The $\sigma_2$ needed for a fused $1\sigma$ of 2 km.
(a) $K = 0.80$  ·  (b) 47.2 km, $\sigma = 2.7$ km  ·  (c) $\sigma_2 = 2.1$ km

Block 4 · Lesson 35 · One Bearing

What One Bearing Buys

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?

Block 4 · Lesson 35 · One Bearing

What One Bearing Buys

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.

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.

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

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?

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?

Today's Interactive Demo: Bearings-Only Tracker

Companion script: L35_BearingsOnlyEKF.m
Live demo

Bearings-Only Tracker

usafa-ece.github.io/ece-495-ew

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 legDogleg, 90° left at 90 s
Position $\sqrt{\operatorname{tr} P}$ at the end4.3 km, long along the LOS0.6 km
Time inside the 40 km ring0 s143 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.

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