GithubHelp home page GithubHelp logo

neutrinus / passiveradar Goto Github PK

View Code? Open in Web Editor NEW

This project forked from max-manning/passiveradar

0.0 0.0 0.0 2.21 MB

Processing code for a FM radio based passive bistatic radar

Home Page: https://dopplerfish.com

License: MIT License

Python 100.00%

passiveradar's Introduction

What Is This???

This repository contains processing code for a software defined radio based passive radar. Passive radars don't transmit any signals of their own - instead, they locate targets by detecting the echoes of ambient radio signals that bounce off of them. Check out this page for more information about how passive radar works.

Usage

First clone the repository and make a conda environment with the required packages (or install them manually).

git clone https://github.com/Max-Manning/passiveRadar
cd passiveRadar
conda env create -f environment.yaml
conda activate radar-env

You can download some example passive radar data from here (note that the file is >6GB). This data was recorded using FM radio broadcast as an illumination source and features signals from some planes flying around. If you want to record your own data, look here.

Put the data file in the same directory as main.py, and run the following command to process the data and save it to a file:

python main.py --config prconfig.yaml 

This will take about 20 minutes. Once it's done running, you can make a video from the recorded data. You will need to have ffmpeg installed on your computer in order for the animation to work.

python range_doppler_plot.py --config prconfig.yaml --mode video

If you don't have ffmpeg, you can just save all the video frames as images:

python range_doppler_plot.py --config prconfig.yaml --mode frames

You can also use a Kalman filter to track the targets:

python multitarget_kalman_tracker.py --config prconfig.yaml --mode video

The target tracking functionality is still under development, currently it suffers from a lot of false positives. This could probably be improved by properly tuning the parameters. You can also try the simplified single-target tracker, which has fewer false positives but assumes that only one target is ever present:

python simple_kalman_tracker.py --config prconfig.yaml --mode video

Recording Your Own Data

To record passive radar data you will need a software defined radio with at least 2 coherent input channels. By far the cheapest way to do this is to use a pair of RTL-SDR dongles modified to share a clock. Other SDR platforms with multiple receive channels will also work, eg. KerberosSDR, LimeSDR, BladeRF 2.0 Micro, or USRP B210.

If you use RTL-SDR dongles, the gnuradio flow chart shown below is a convenient way to record data.

The program expects the input data to be stored in an hdf5 file, so binary data obtained from the flow chart needs to be converted to hdf5 before it can be used. An easy way to convert binary data files to hdf5 is the h5import command-line tool which is included in the latest hdf5 release. See using_h5import.txt for brief instructions.

Contributing

Please submit an issue if you find any bugs, and feel free to submit a pull request if you've made any improvements!

passiveradar's People

Contributors

max-manning avatar derekcapone avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.