Inspiration

Imagine a world without war. Unfortunately, reality is not like that. Nations must be able to defend their people, infrastructure, and freedoms.

Modern warfare increasingly occurs in dense urban environments and relies heavily on wireless technology. Radios, drones, radar systems, communication links, and civilian devices all share the electromagnetic spectrum. In this environment, quickly identifying what signals are present, where they originate, and whether they are friendly or hostile becomes critically important.

Our objective was to build a system that uses machine learning to detect, classify, geolocate, and track RF emitters in real time, giving operators a clear picture of the electromagnetic environment.

What it does

Concrete Shield is an RF intelligence pipeline that analyzes radio signals from a distributed receiver network and produces a real-time tactical picture.

The system performs four major functions:

Signal Classification

Using machine learning, the system analyzes raw IQ radio samples to classify known friendly signal types such as:

  • Radar altimeters
  • Satellite communications links
  • Short-range telemetry signals The classifier outputs both a predicted signal type and a confidence score.

Unknown Signal Detection

Because the training dataset only contains friendly signals, the system must detect signals it has never seen before.

We solve this using an autoencoder-based anomaly detector. If a signal does not resemble the friendly training data, it is flagged as unknown or potentially hostile.

Hostile Signal Characterization

Once a signal is flagged as unknown, a secondary analysis engine extracts RF features to determine what type of emitter it may be.

This feature-based classifier identifies patterns such as:

  • Pulsed airborne radar
  • Air-ground moving target radar
  • Electronic warfare jammers
  • Civilian broadcasts

Geolocation

Signals detected by multiple receivers can be geolocated using Time Difference of Arrival (TDOA).

By comparing signal arrival times across receivers at known positions, the system estimates the transmitter’s geographic location and outputs:

  • Latitude and longitude
  • Estimated positioning error
  • Number of receivers involved in the detection

How we built it

We built Concrete Shield primarily in Python, using a combination of machine learning, signal processing, and geolocation algorithms.

Machine Learning Pipeline

Our signal classification model uses a 1-dimensional Convolutional Neural Network (CNN) trained directly on raw IQ waveform data.

During experimentation, we evaluated multiple model types, but the CNN consistently produced the best classification performance.

To improve performance in low signal-to-noise ratio environments, we augmented the input data with a Fast Fourier Transform (FFT) representation of the waveform. This effectively turns the signal into a frequency-domain fingerprint, making it easier for the model to recognize modulation patterns even when noise is present.

The final model takes three channels as input:

  • In-phase (I)
  • Quadrature (Q)
  • FFT magnitude spectrum

Anomaly Detection

Since hostile signals are not labeled in the dataset, we trained an autoencoder on friendly signal data only.

If the autoencoder cannot accurately reconstruct an incoming waveform, the system flags it as out-of-distribution, indicating a potentially unknown or hostile signal.

Hostile Signal Feature Analysis

Unknown signals are further analyzed using RF features including:

  • Peak-to-average power ratio (PAPR)
  • Spectral flatness
  • Carrier prominence
  • Duty cycle estimation
  • Bandwidth fraction

These features help differentiate between signal types such as jammers, pulsed radar, and civilian broadcasts.

Geolocation Engine

To determine emitter locations, we implemented a TDOA multilateration solver. The system:

  1. Collects signal arrival timestamps from multiple receivers
  2. Computes the difference in arrival times
  3. Solves a nonlinear least squares optimization problem
  4. Produces an estimated transmitter position

This method allows accurate positioning even when signal strength measurements are unreliable.

Backend

The system is served through a Flask API that processes observations from the simulated receiver network and outputs a structured operational picture including:

  • Signal classification
  • Confidence score
  • Affiliation (friendly / hostile / civilian)
  • Geographic location
  • Signal strength and SNR
  • Number of receivers detecting the signal

Challenges we ran into

This was our first time doing a hackathon and we had to learn a lot while doing it.

Accomplishments that we're proud of

The web UI looks decent and the AI decently classifies signals.

What we learned

Working on this project taught us how closely machine learning and classical signal processing complement each other.

While deep learning excels at recognizing patterns in waveform data, traditional RF analysis techniques like spectral analysis and power statistics are still extremely valuable for interpreting signals and identifying unknown emitters.

We also learned how difficult it is to build systems that operate under uncertainty - especially when dealing with noisy measurements, incomplete observations, and signals that may not resemble anything seen during training.

Built With

Share this project:

Updates