gr-dvbs2
gr-dvbs2 copied to clipboard
A DVB-S2 and DVB-S2X transmitter for GNU Radio
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. A VCM/ACM capable DVB-GSE block and test flow graph (dvbs2_txip.grc) are also included.
Copyright 2014,2016,2020 Ron Economos
This file is part of gr-dvbs2
gr-dvbs2 is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
gr-dvbs2 is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with gr-dvbs2; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street,
Boston, MA 02110-1301, USA.
gr-dvbs2
Author: Ron Economos Email: [email protected]
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.
A gnuradio-companion flowgraph (dvbs2_tx.grc) for the bladeRF and Ettus B2xx transmit capable SDR's is included.
A set of test Transport Streams that matches the example application symbol rate, constellations and code rates can be downloaded here:
http://www.w6rz.net/overflowqpsk_276_45.ts http://www.w6rz.net/sweetnothing8psk_184_56.ts http://www.w6rz.net/cosmic16apsk_138_89.ts
A DVB-S2 and DVB-S2X Transport Stream bit-rate calculator:
https://github.com/drmpeg/dtv-utils/blob/master/dvbs2rate.c
Note: This implementation supports the following DVB-S2 System configurations:
- QPSK 1/4, 1/3, 2/5
- QPSK 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 9/10
- 8PSK 3/5, 2/3, 3/4, 5/6, 8/9, 9/10
- 16APSK 2/3, 3/4, 4/5, 5/6, 8/9, 9/10
- 32APSK 3/4, 4/5, 5/6, 8/9, 9/10
- CCM (Constant Coding and Modulation)
- FECFRAME normal 64,800 bits
- FECFRAME short 16,200 bits
- Single Transport Stream
- Roll-off 0.35, 0.25 and 0.20
- VCM (Variable Coding and Modulation)
- ACM (Adaptive Coding and Modulation)
- Multiple Transport Streams
- Multiple Generic Streams
- Single Generic Stream
- Dummy Frame Insertion
System configurations not supported are:
- Input Stream Synchronizer
- Null Packet Detection
- Wide-band mode
Note: DVB-S2X Broadcast services MODCOD's have been tested as of September 2016 with the Silicon Labs Si2183 demodulator. VL-SNR modes have been implemented, but are still untested.
https://www.dvb.org/resources/public/standards/a83-2_dvb-s2x_den302307-2.pdf
Build instructions:
mkdir build
cd build
cmake ../
make
sudo make install
sudo ldconfig
Contributions are welcome!