gr-dvbs2tx is a GNU Radio OOT module including transmitter blocks for software-defined radio and message passing simulation. This is a fork of drmpeg's gr-dvbs2 project. The receiver blocks are in gr-dvbs2rx.
The goal of this project is to build a software-defined DVB-S2 transmitter, based on the EN 302 307 V1.3.1 Second Generation framing structure, channel coding and modulation systems for Broadcasting, Interactive Services, New Gathering and other broadband satellite applications standard:
http://www.etsi.org/deliver/etsi_en/302300_302399/302307/01.03.01_60/en_302307v010301p.pdf
The baseband framing, baseband scrambling, LDPC (low density parity check), BCH (Bose, Chaudhuri, Hocquenghem), bit interleaver and physical layer framing and scrambling blocks are from G4GUO's DATV-Express Digital Amateur Television project datvexpress_gui (https://github.com/G4GUO/datvexpress_gui/tree/master/DVB-S2) and converted to GnuRadio 3.7.x.
Since the functionality of the CCM version of the DVB-S2 transmitter is already included in GNU Radio, this OOT implements a VCM/ACM (Variable/Adaptive Coding and Modulation) version of the DVB-S2 transmitter.
This implementation supports the following DVB-S2 System configurations:
System configurations not supported are:
- Input Stream Synchronizer
- Null Packet Detection
- Wide-band mode
This project is licensed under GPLv3 and was developed primarily for non-commercial research, experimentation, and education. Please feel free to contribute or get in touch to request features or report any problems.
The only available installation method is compiling from source. You will need to clone this repository first:
git clone --recursive https://github.com/AsriFox/gr-dvbs2tx.git
cd gr-dvbs2tx/
Install dependencies on Ubuntu:
apt install cmake pkg-config doxygen gnuradio-dev \
graphviz libsndfile1-dev libspdlog-dev \
pybind11-dev python3-packaging
Install dependencies on Fedora:
dnf install cmake doxygen gnuradio-devel \
fftw-devel gmp-devel graphviz \
libsndfile-devel spdlog-devel \
pybind11-devel python3-packaging \
Build:
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=$(gnuradio-config-info --prefix) ..
cmake --build . -j$(nproc)
IDE support: VSCode (tasks, launch profiles and toolchain settings).
Extensions used:
Install (from build/):
sudo make install
sudo ldconfig