Skip to main content

Python SIGINT simulations and analysis tools

Project description

SIGINT

License: MIT basic-tests

A collection of Python modules and tests serving as an introduction to SIGINT (signal intelligence) techniques.

Dependencies

pip install -r requirements.txt

Testing

python -m pytest

Basic Workflow

  • sigint_examples/basic_workflow.py: generate pulse train, add Gaussian noise, use autocorrelation to estimate PRI
python -m sigint_examples.basic_workflow --show-plots

Tests

python -m pytest tests/test_<specific-case>.py --show-plots
  • tests/test_amplitude_modulation.py: generate a sequence of amplitude-moduled pulses, use filtering and autocorrelation to estimate PRI (pulse repitition interval)
  • tests/test_chirped_pulses.py: simulates a noisy train of linear chirped pulses, applies a matched filter and autocorrelation to analyze it, and then estimates the PRI and pulse width from the matched filter output
  • tests/test_irregular_pulse_detection.py: simulates a noisy pulse train with random PRI jitter, applies matched filtering and autocorrelation, and then estimates the mean and variability of the PRI from the detected pulses
  • tests/test_gaussian_jittered.py: simulates a noisy pulse train with Gaussian PRI jitter, detects the pulses using matched filtering, and estimates the mean and standard deviation of the PRI (with outlier rejection) while visualizing the signal, matched filter output, and PRI statistics over time
  • tests/test_multi_emitter_noisy_jitter.py: simulates two noisy pulse trains with different PRIs and jitter, combines them, and uses autocorrelation with peak detection and harmonic rejection to estimate the fundamental PRIs of both emitters
  • tests/test_noisy_multi_emitter_jitter.py: simulates two overlapping pulse trains with different PRIs in noise and uses smoothed autocorrelation with peak detection and harmonic rejection to estimate their fundamental PRIs
  • tests/test_time_difference_of_arrival.py: simulates two noisy pulse trains received at different times and estimates the delay between them using cross-correlation
  • tests/test_two_pulse_trains.py: simulates two overlapping pulse trains with different PRIs and uses autocorrelation with harmonic rejection to estimate their fundamental repetition intervals

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sigint_examples-0.1.0.tar.gz (14.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sigint_examples-0.1.0-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file sigint_examples-0.1.0.tar.gz.

File metadata

  • Download URL: sigint_examples-0.1.0.tar.gz
  • Upload date:
  • Size: 14.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for sigint_examples-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a09639368cea6d7b48d6e686d3c4c4e9d53072f39c5ce8efa5ec32d5b0c7e7ab
MD5 04cc4e97a98ca823c9b4c192c13abf3f
BLAKE2b-256 a4c4c1b6fa95905d08a8a7801b22ce5b02e780dc8185a7e69dcbb6eb9d7a7f78

See more details on using hashes here.

File details

Details for the file sigint_examples-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for sigint_examples-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5a22bed31341a029a39133c24874c827790eb5f8b3f7ab5ff566f4b8c4854f8b
MD5 524bb53c07430782bad8b0ff6bb33102
BLAKE2b-256 c46399a8ea749568515e71d3b046baa55cdc312db9e371579b6958541b1147d5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page