QPSK for https://brmlab.cz/project/sdr/tetra (written as a final assignment for A8B14ADP)
$ kvak --help
Usage: kvak [OPTION...]
pi/4-DQPSK multi-channel demodulator
-b, --bind=ADDR Bind to ADDR:PORT
-c, --chunk-size=CHUNK Chunk size
-f, --fifo Explicitly create output FIFOs instead of files
-i, --input=INPUT Input file path
--loop Loop the input file
-m, --muted Start all channels muted
-n, --nchannels=NCHANNELS Number of channels
-o, --output=OUTPUT Output file paths (use %d for channel number
substitution)
-v, --verbose Enable verbose debugging
-?, --help Give this help list
--usage Give a short usage message
-V, --version Print program version
Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.
Report bugs to Josef Gajdusek <atx@atx.name>.
First, start the channelizer.
$ rtl_sdr -f 425400e3 -s 1.8e6 -g 42 -p 37 - | ./fcl -b localhost -p 3333 -n 72 -s 50 -f "./fir.py 1.8e6 18.5e3 1151 rcos" -c 26,14,64,15,4,50,25,37,39,60,21,28,52,56,10,61,20,5,38,53 -t 1 -i U8 -o /tmp/fcl1.ch
Then, start the demodulator.
$ kvak -i /tmp/fcl1.ch -o /tmp/tetra.1.%d.bits -n 20 --fifo
Afterwards, tetra-rx can be launched on the FIFOs.
$ tetra-rx /tmp/tetra.1.18.bits
The repository also contains a TUI for controlling the demodulator using its RPC interface.
$ kvakctl -s 127.0.0.1:6677 tui
$ mkdir build
$ cd build/
$ cmake ..
$ make
$ sudo make install
The repository also contains the metadata necessary to build a Debian package.
# apt install debhelper lsb-release cmake build-essential capnproto libcapnp-dev python3-numpy
# dpkg-buildpackage -uc -us
A more detailed documentation can be found here