GNU Radio adaptive interference canceller
A completed adaptive signal-processing laboratory comparing complex LMS, NLMS, and RLS interference cancellation across twelve controlled channel and reference conditions.

Project definition
Problem statement
A desired baseband signal can be corrupted by interference that also appears in a separate reference path.
The engineering problem is to estimate the reference-correlated interference and subtract it without removing the desired signal or becoming unstable when the channel changes.
Project objectives
- Implement complex LMS, NLMS, and RLS adaptive FIR cancellers from declared equations.
- Generate deterministic desired, interference, reference, channel, and noise signals.
- Compare the algorithms across twelve controlled stationary and changing conditions.
- Measure SIR improvement, output EVM, convergence sample, and runtime.
- Provide paired-file cancellation and a GNU Radio 3.10 integration path.
- Retain every trial, parameter, figure, and result in open files.
Project structure
Project components
Signal laboratory
Creates complex desired and interference signals, unknown FIR paths, noise, delay, leakage, impulses, and channel changes.
Adaptive algorithms
Implements complex LMS, NLMS, and RLS with explicit state and parameter validation.
Evaluation
Calculates SIR, SIR improvement, EVM, convergence, and runtime for each retained trial.
File workflow
Reads and writes paired interleaved complex64 streams with JSON metadata.
GNU Radio integration
Provides an embedded Python block and replay flowgraph for GNU Radio 3.10.
Evidence package
Produces CSV and JSON results, eight figures, a dashboard, tests, and complete documentation.
Methodology
Project workflow
- 01Generate
Create one declared complex-baseband scenario from a deterministic seed.
- 02Cancel
Run identical primary and reference streams through LMS, NLMS, and RLS.
- 03Measure
Evaluate signal improvement after the declared warmup period.
- 04Compare
Inspect aggregate and scenario-level convergence, quality, and runtime tradeoffs.
- 05Replay
Apply the selected algorithm to paired complex64 files or the GNU Radio integration.
- 06Verify
Reproduce tests, retained results, figures, and delivery checks.
Demonstration scenario
Run the retained benchmark, compare the three algorithms on the stationary-medium channel, then inspect the abrupt channel-change response and the delayed-reference failure. Replay the included primary and reference files through the command line and compare the output with the retained complex64 result.
Engineering
Tools and method
- Tools
- The project uses Python 3.11, GNU Radio 3.10, NumPy, pandas, Matplotlib for subject analysis, simulation, and results.
- Adaptive filtering
- Twelve-tap complex FIR filters with fixed LMS, NLMS, and RLS parameters.
- Experiment design
- Three algorithms, twelve scenarios, four seeds, and 8,192 samples per trial.
- Evidence
- Open CSV, JSON, complex64, PNG, and offline HTML outputs.
- Integration
- GNU Radio 3.10 embedded Python block and paired-file replay flowgraph.
- Verification
- 29 automated tests, 99.69 percent coverage, dependency audit, and delivery validation.
Testing
Evaluation
Evaluation measures
- NLMS records the highest overall mean SIR improvement at 13.8781 dB
- RLS records the fastest median convergence at 386.5 samples
- LMS records the lowest median runtime in the retained environment
- Stationary-medium mean improvement is 21.0 dB LMS, 24.5 dB NLMS, and 22.2 dB RLS
- A four-sample delayed reference produces approximately zero improvement
- All 144 trial rows and eight result figures regenerate from declared commands
Project boundaries
- The retained evidence uses controlled synthetic complex-baseband signals.
- The project does not transmit, receive, decode, or jam RF signals.
- No hardware, field-channel, regulatory, or universal performance claim is made.
- GNU Radio integration must be replay-tested in an installed GNU Radio 3.10 environment.
- No information collected.
Included
- 01Python source code and command-line tools
- 02Complex LMS, NLMS, and RLS adaptive filters
- 03Twelve controlled scenarios and 144 retained trials
- 04GNU Radio adaptive-filter block and paired-file replay flowgraph
- 05Eight generated figures and an offline results dashboard
- 0629 automated tests with 99.69 percent coverage
- 07Complete project files, models, calculations, and analysis material in a private GitHub repository
- 0895-page project report in PDF and editable Word formats
- 0920-page setup and usage guide in PDF and editable Word formats
- 10Forty-five annotated references
Project record
No information is collected on this page.
- Permanent project ID
- GP-EC-0Z9GCLZ
- Catalogued
- 21 Aug 2026
- Completed
- 24 Aug 2026
- Verified
- 24 Aug 2026
- Demonstration
- Included in repository
Handover
After purchase
- 01Payment is confirmed
The project is marked unavailable and cannot be purchased again.
- 02Repository access is granted
The buyer's submitted GitHub account receives access to the private repository.
- 03The purchase record is delivered
The certification sheet is prepared from the reviewed buyer details and sent privately by email.