Project overview
Radio direction finding estimates the direction from which an electromagnetic signal arrives. A single direction-finding measurement provides a bearing rather than a unique location, meaning the transmitter may lie anywhere along the measured bearing line.
This project combines a directional antenna and software-defined radio receiver with GNSS positioning and antenna-heading measurement. Each observation records the receiver location, direction of peak received signal strength, GNSS quality information and a timestamp. Bearings collected from multiple positions are fused to estimate the location of a known and authorised test transmitter.
The system is designed as a passive, receive-only engineering demonstrator. It does not interfere with, decode private communications from or transmit toward any external system.
Engineering motivation
The engineering problem is not simply detecting a signal. It is producing a repeatable and defensible location estimate despite GNSS error, heading error, antenna imperfections, receiver noise, poor observation geometry and multipath propagation.
Measure
Build a traceable RF bearing from raw angular signal-power samples.
Qualify
Attach uncertainty and integrity evidence to every observation.
Resolve
Fuse independent lines without disguising weak geometry or false precision.
Objectives
- Measure received signal strength while rotating a directional antenna.
- Estimate the direction of peak signal arrival.
- Record the GNSS position and timestamp of every observation.
- Measure the physical heading of the antenna.
- Combine at least three bearings into a transmitter-location estimate.
- Quantify bearing and localisation error.
- Detect low-confidence GNSS observations.
- Present measurements on an interactive map.
- Document calibration, design decisions and limitations.
- Maintain receive-only operation throughout testing.
System requirements
Target status: All performance figures below are initial engineering targets. They are not achieved values and will be replaced or qualified after controlled testing.
| ID | Requirement | Verification | Initial target |
|---|---|---|---|
| FR-01 | Receive a selected legal test signal without transmitting. | Configuration and RF-chain inspection | Acceptance method to be defined |
| FR-02 | Measure signal strength against antenna heading. | Recorded angular sweep | No missing heading or RSSI fields |
| FR-03 | Estimate bearing clockwise from true or calibrated North. | Known-bearing field comparison | Median error below 10–15° (initial target) |
| FR-04 | Record GNSS latitude, longitude, altitude and quality fields. | Schema and log inspection | Approx. 5–10 m clear-sky stability (initial target) |
| FR-05 | Record a UTC timestamp for every observation. | Timestamp continuity check | Acceptance method to be defined |
| FR-06 | Combine at least three spatially separated bearings. | Localisation test | At least three separated observations |
| FR-07 | Estimate transmitter position and confidence region. | Known-location comparison | Below 20–30 m error (initial target) |
| FR-08 | Preserve raw measurements independently of processed outputs. | Data lineage audit | Acceptance method to be defined |
| FR-09 | Flag or reject unreliable GNSS observations. | Injected anomalies | Detect poor fixes and impossible jumps |
| FR-10 | Remain passive and receive-only throughout operation. | Hardware and software review | Acceptance method to be defined |
System architecture
Position · UTC · fix quality
Orientation · uncertainty · tilt
Raw database · integrity flags
Bearings · weighted location · map · confidence region
The architecture keeps raw acquisition separate from estimation. That separation supports replay, comparison of algorithms and evidence-based fault investigation.
Subsystems
RF subsystem
A receive-only SDR, directional Yagi antenna, suitable coax and a laptop or Raspberry Pi form the candidate chain. Legal band-pass filtering and appropriate low-noise amplification remain optional, subject to link-budget and overload testing.
Recorded: centre frequency, gain, RSSI, noise floor, SNR, heading and timestamp.
A rotating directional antenna is deliberately used for the first prototype: it tests the measurement chain without falsely claiming coherent phased-array capability.
GNSS subsystem
Records latitude, longitude, altitude, UTC, satellite count, fix type, horizontal accuracy, HDOP, ground speed and status.
GNSS records where each RF bearing was measured. It does not directly locate the transmitter.
Heading subsystem
Candidate sensors include a rotary encoder, IMU and digital compass. Calibration must address zero heading, tilt, repeatability, magnetic interference, and hard-iron and soft-iron effects.
An encoder on a fixed rotating mount should provide more repeatable relative heading than a magnetometer operating near electronic hardware.
Processing subsystem
Python coordinates acquisition, data quality, signal processing, localisation and reporting while preserving raw observations for replay.
Bearing estimation and processing
- Configure SDR
- Estimate signal power
- Associate power with antenna angle
- Smooth angular response
- Estimate strongest valid peak
- Attach GNSS and integrity data
- Store raw observation
- Fuse multiple bearings
- Display solution and confidence
Illustrative angular response
The intended algorithm removes invalid samples, estimates a local noise floor, smooths the angular response, identifies the strongest valid peak, fits the neighbourhood of that peak, estimates a bearing and uncertainty, then compares clockwise and anticlockwise sweeps.
Uncertainty will be derived from repeatability, response-peak width, heading uncertainty and sensitivity to multipath—not from an arbitrary fixed margin.
Observation data model
Expand illustrative CSV row (not measured data)
timestamp,latitude,longitude,altitude,satellite_count,hdop,gnss_accuracy,fix_type,antenna_heading,heading_uncertainty,centre_frequency,rssi,noise_floor,snr,estimated_bearing,bearing_uncertainty,observation_status
2030-01-01T12:00:00Z,51.500000,-0.120000,35.2,12,0.9,4.8,3D,41.6,2.5,433920000,-52.1,-78.4,26.3,42.0,7.0,acceptedLocalisation mathematics
For receiver position pᵢ = [xᵢ, yᵢ]ᵀ and measured clockwise bearing θᵢ, define the bearing direction and its perpendicular normal:
A candidate transmitter position x should lie close to each bearing line. Its perpendicular residual is:
The weighted least-squares solution minimises the total squared residual:
Greater weight can be assigned to observations with better SNR, narrower peaks, stronger GNSS quality, lower heading uncertainty and useful crossing geometry. Weighting cannot rescue fundamentally poor geometry; condition and residual diagnostics remain visible.
GNSS integrity monitoring
This work uses the term integrity monitoring: checks that identify questionable observations and adjust their influence. It does not claim complete GNSS resilience or assured navigation.
Fix-quality checks
Reject absent or invalid navigation solutions.
Satellite threshold
Reduce trust when constellation visibility is weak.
HDOP & accuracy
Compare reported precision with configured limits.
Stale timestamps
Detect measurements that are no longer current.
Impossible jumps
Flag motion inconsistent with elapsed time.
Stationary state
Characterise drift while the platform is static.
IMU consistency
Compare GNSS motion with inertial context.
Cross-observation consistency
Inspect residuals after bearing fusion.
Weight or reject
Preserve suspect data while preventing undue influence.
GNSS integrity score: 0.87 Bearing confidence: 0.76 Combined weight: 0.66 Observation status: accepted
Hardware and integration
The first portable assembly is expected to combine an SDR, directional antenna, GNSS receiver, heading interface, processing computer and power subsystem on a fixed rotating mount. Cable strain relief, RF connector integrity, power distribution, grounding, enclosure geometry and sensor placement are treated as engineering constraints rather than presentation details.
RF chain
Characterise loss, gain, overload risk and frequency configuration.
Mechanical reference
Control rotation axis, zero heading, tilt and repeatable positioning.
Power & data
Preserve synchronisation and logs through representative field runtime.
Experimental methodology and test plan
Open-field testing
Establish baseline bearing accuracy, minimise reflections and validate the core multi-position localisation method with an owned or authorised test transmitter.
Multipath testing
Repeat controlled measurements near buildings, fences, parked vehicles and other reflective structures to compare open-field and reflective-environment performance.
Ethical and legal test constraint: All trials remain passive and receive-only, use owned or explicitly authorised transmitters, follow applicable spectrum rules, and do not intercept private communications or locate individuals.
| ID | Purpose | Method | Evidence | Status |
|---|---|---|---|---|
| T-01 | GNSS time to fix | Cold and warm starts in clear sky | Timestamped fix logs | Planned |
| T-02 | Stationary GNSS stability | Log a fixed receiver position | Scatter and accuracy statistics | Planned |
| T-03 | Heading repeatability | Repeat calibrated angular positions | Heading residuals | Planned |
| T-04 | Antenna pattern | Controlled 360° sweep | Raw polar response | Planned |
| T-05 | Bearing accuracy | Compare estimate with surveyed bearing | Angular error distribution | Planned |
| T-06 | Repeated sweeps | Clockwise and anticlockwise trials | Repeatability and hysteresis | Planned |
| T-07 | Multi-position localisation | Collect three or more separated bearings | Map, residuals and position error | Planned |
| T-08 | Geometry sensitivity | Vary receiver baselines and crossing angles | Condition and error comparison | Planned |
| T-09 | Multipath performance | Repeat near reflective structures | Open-field comparison | Planned |
| T-10 | GNSS integrity logic | Inject poor fixes, stale data and jumps | Detection log | Planned |
| T-11 | Data loss | Run extended acquisition and audit schema | Missing-field report | Planned |
| T-12 | Battery endurance | Operate representative hardware load | Runtime and voltage log | Planned |
Results framework
This section is intentionally complete in structure but empty of experimental claims. Validated plots will be generated from versioned local JSON or CSV-derived data after controlled testing.
GNSS position scatter
Measured data will be added after controlled field testing.
Awaiting validated datasetSatellite count
Measured data will be added after controlled field testing.
Awaiting validated datasetHDOP over time
Measured data will be added after controlled field testing.
Awaiting validated datasetAntenna polar pattern
Measured data will be added after controlled field testing.
Awaiting validated datasetRaw and smoothed angular response
Measured data will be added after controlled field testing.
Awaiting validated datasetBearing error distribution
Measured data will be added after controlled field testing.
Awaiting validated datasetLocalisation map
Measured data will be added after controlled field testing.
Awaiting validated datasetConfidence region
Measured data will be added after controlled field testing.
Awaiting validated datasetOpen-field versus multipath comparison
Measured data will be added after controlled field testing.
Awaiting validated datasetEngineering decisions
| Decision | Chosen approach | Alternative | Rationale | Consequence / limitation |
|---|---|---|---|---|
| Direction finding | Rotating directional antenna | Coherent antenna array | Lower RF complexity and a defensible first prototype. | Sequential measurements and mechanical motion limit update rate. |
| Receiver | Software-defined radio | Dedicated RSSI receiver | Flexible frequency, gain and raw-signal inspection. | Requires careful gain control and power calibration. |
| Heading | Encoder plus IMU | Magnetometer only | Repeatable relative angles with tilt and consistency checks. | Needs mount zeroing and sensor alignment. |
| Localisation | Weighted least squares | Graphical line intersection | Uses all observations and supports uncertainty-aware weighting. | Weights must be calibrated and poor geometry remains limiting. |
| Position quality | GNSS integrity metrics | Coordinate logging only | Makes low-confidence fixes visible and actionable. | Integrity monitoring reduces risk but does not guarantee resilience. |
| Data retention | Raw structured data | Final position only | Enables replay, audit and algorithm comparison. | Requires schema control and more storage. |
| Presentation | Map and diagnostic plots | Text-only output | Exposes geometry, uncertainty and failure modes. | Visuals must not imply false precision. |
Failure and iteration log
These entries demonstrate the information architecture only. They are not claimed development events. Real version, evidence, root cause, change, outcome, date and media will replace them as the system develops.
Broad or double signal peak
Evidence: Illustrative clockwise/anticlockwise sweep mismatch
Possible root cause: Multipath or coarse angular sampling
Example design change: Increase angular resolution and add peak-validity checks
Outcome: To be replaced with a measured development outcome
Unstable absolute heading
Evidence: Illustrative magnetic deviation near computing hardware
Possible root cause: Hard-iron interference and mount proximity
Example design change: Use an encoder for relative angle with calibrated zero reference
Outcome: To be replaced with a measured development outcome
Limitations, ethical scope and future work
Known limitations
Signal-strength direction finding depends on antenna directivity and stable receiver gain.
Multipath can create misleading peaks and biased bearings.
Heading accuracy depends on calibration, mounting and magnetic environment.
GNSS error shifts the origin of every bearing line.
Poor crossing geometry can amplify small bearing errors.
One bearing cannot guarantee a unique transmitter location.
Operating boundaries
Receive-only operation
Owned or authorised transmitters only
No interception or decoding of private communications
No location of individuals
No interference with external systems
Future improvements
Repository and project artefacts
The proposed structure separates hardware, firmware, software, raw evidence and processed results so changes remain traceable.
Follow the build from requirement to field evidence.
Links will be enabled only when the corresponding repository, report, data and demonstration are ready for review.