Tetra demodulator plugin for SDR++
Designed to fully demodulate and decode TETRA downlink signals
Thanks to osmo-tetra authors for their great library
Signal chain:
VFO->Demodulator(AGC->FLL->RRC->Maximum Likelihood(y[n]y'[n]) timing recovery->Costas loop)->Constellation diagram->Symbol extractor->Differential decoder->Bits unpacker->Osmo-tetra decoder->Sink
Binary installing:
Visit the Actions page, find latest commit build artifacts, download tetra_demodulator.so and put it to /usr/lib/sdrpp/plugins/, skipping to the step 4. Don't forget to install libtalloc!
Building:
If you have arch-like system, just install package sdrpp-tetra-demodulator-git with all dependencies.
OR
Install SDR++ core headers to /usr/include/sdrpp_core/, if not installed. Refer to https://cropinghigh.github.io/sdrpp-moduledb/headerguide.html about how to do that
OR if you don't want to use my header system, add -DSDRPP_MODULE_CMAKE="/path/to/sdrpp_build_dir/sdrpp_module.cmake" to cmake launch arguments
Download and patch ETSI TETRA codec(in this repository):
cd src/decoder/etsi_codec-patches
./download_and_patch.sh
Install libtalloc-dev/talloc via package manager
Build:
mkdir build
cd build
cmake ..
make
sudo make install
Enable new module by adding it via Module manager
Usage:
Find TETRA frequency you want to receive
Move demodulator VFO to the center of it
After some time, it will sync to the carrier and you'll likely see 4 constellation points(sync requires at least ~20dB of signal)
If the channel is unencrypted, just wait for the voice activity and listen to it!