Started adding notes to strf operation.

pull/10/head
Cees Bassa 2018-02-07 14:20:52 +01:00 committed by GitHub
parent 694f1ddf6a
commit 415521ac68
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 32 additions and 7 deletions

View File

@ -15,16 +15,41 @@ Install
* libjpeg-dev
* libexif-dev
* Build & install required libraries
* pgplot-5.2.2: http://www.astro.caltech.edu/~tjp/pgplot/
* gsl-2.4: ftp://ftp.gnu.org/gnu/gsl/gsl-2.4.tar.gz
* pgplot plotting library: http://www.astro.caltech.edu/~tjp/pgplot/
* gnu scientific library: ftp://ftp.gnu.org/gnu/gsl/
* fftw: http://www.fftw.org/download.html
* Run `make` on the **strf** folder
Run notes
---------
* You will need to set the following environment variables to run **strf**.
`ST_COSPAR` COSPAR number
`ST_DATADIR` path to **strf** directory
`ST_TLEDIR` path to TLE directory
`ST_OBSDIR` path to observations directory
* `ST_COSPAR` COSPAR number
* `ST_DATADIR` path to **strf** directory
* `ST_TLEDIR` path to TLE directory
* You should install NTP support on the system and configure time/date to automatically
sinchronize to time servers.
synchronize to time servers.
Operation
---------
The main use of **strf** is to acquire IQ data from SDRs and produce time stamped spectrograms with the `rffft` application. `rffft` will perform Fast Fourier Transforms on the input data to a user defined number of spectral channels (via the `-c` command line option), and integrate/average these to a user defined integration length (via the `-t` command line option). The output will be a `*.bin` file which contains a 256 byte human readable header (which can be inspected with `head -c256`), followed by a binary array of floating point numbers representing the power in the spectral channels. This is an example of the 256 byte header:
HEADER
UTC_START 2018-01-12T15:59:13.524
FREQ 2244000000.000000 Hz
BW 4000000.000000 Hz
LENGTH 0.998922 s
NCHAN 40000
NSUB 60
END
The header keywords are mostly self explanatory, though the `NSUB` keyword specifies that this single `bin` file contains 60 spectra.
`rffft` can read from a previously recorded IQ recording, but is usually operated in realtime mode by reading IQ data from a so-called named pipe or fifo (first in, first out). Here, the SDR writes IQ data to a fifo (instead of a file), and `rffft` reads the samples from the fifo. Using an **airspy** as an example, it could be configured as follows:
mkfifo fifo
rffft -i fifo -f 101e6 -s 2.5e6 &
airspy_rx -a 1 -f 101 -t 2 -r fifo
Here, we first make the fifo `mkfifo fifo`, then start `rffft` to read from the fifo (`-i` option), with a 101MHz center frequency (`-f` option) and a 2.5MHz sample rate (`-s` option). The `&` puts this command in the background. Finally, we start obtaining IQ data from the **airspy** with `airspy_rx` in the 2.5MHz sampling mode (`-a 1`) at the same frequency (`-f 101`, in MHz), with the 2.5MHz sample rate (`-t 2`) and writing the samples to the fifo (`-r fifo`). Similar scripts can be made with other SDRs, and otherwise with **gnuradio** flow graphs where the output file sink is a fifo.
The output spectrograms can be viewed and analysed using `rfplot`.