drmpeg / gr-dvbs2 Goto Github PK
View Code? Open in Web Editor NEWA DVB-S2 and DVB-S2X transmitter for GNU Radio
License: GNU General Public License v3.0
A DVB-S2 and DVB-S2X transmitter for GNU Radio
License: GNU General Public License v3.0
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: 1) QPSK 1/4, 1/3, 2/5 2) QPSK 1/2, 3/5, 2/3, 3/4, 4/5, 5/6, 8/9, 9/10 3) 8PSK 3/5, 2/3, 3/4, 5/6, 8/9, 9/10 4) 16APSK 2/3, 3/4, 4/5, 5/6, 8/9, 9/10 5) 32APSK 3/4, 4/5, 5/6, 8/9, 9/10 6) CCM (Constant Coding and Modulation) 7) FECFRAME normal 64,800 bits 8) FECFRAME short 16,200 bits 9) Single Transport Stream 10) Roll-off 0.35, 0.25 and 0.20 11) VCM (Variable Coding and Modulation) 12) ACM (Adaptive Coding and Modulation) 13) Multiple Transport Streams 14) Multiple Generic Streams 15) Single Generic Stream 16) Dummy Frame Insertion System configurations not supported are: 1) Input Stream Synchronizer 2) Null Packet Detection 3) 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!
Hi Ron,
I'm validating correct operation of the DVBS2 code with an Opticum AX150 DVBS2 Receiver and essentially trying to emulate an Astra1 channel by going in at IF using a PlutoSDR and bypassing the LNB. I've calculated I need to be at 979MHz for Channel 3 (10.729G - 9.750G). The photo attached shows the transponder freq, bitrate, and FEC. On the lower channels, no 22 kHz tone is required.
I also used the dtv-tools / dvbs2 calculator to set the symbol rate which is doubled for the sample rate in the flowgraph:
16APSK, pilots on
coderate = 2/3, BCH rate = 10, ts rate = 11328299.172959
I've tried a direct cable and also via some small antennas. I'm guessing the 1mW RF from the Pluto should still work on some tiny monopoles. I'm only ever getting 70-90% signal, and 0% quality on my receiver. Any pointers?
73s Chris
Hi,
I've encountered some issues with the dvbs2 modulator tool. I'm sending a string in it "to be, or not to be" (by packs of 4 bits or 3 depending on the modulation).
So I have:
0101 0100 (T) 0110 1111 (o).... sent into the modulator. For the 16apsk modulator I get (0,0j) mapped for the '1111' pack. Maybe it's some kind of rounding issue.
For the 8psk it never gives '1j' or '1' but '1j+XXe-16' or '1+XXje-16'.
I'm probably gonna use a constellation mapper and tell you if the problem comes from my code or if the modulator is faulty.
Hi,
I am using dvbs2rate.c code for ZC-706 zynq board. When I tried to compile this code in vivado hls then it is synthesized successfully but when I tried to export RTL then it showed below error.
ERROR: [HLS 200-478] vivado returned an error child process exited abnormally
command 'ap_source' returned error code
while executing
"source C:/Xilinx/Vivado/2018.3/DVBS2/solution1/export.tcl"
invoked from within
"hls::main C:/Xilinx/Vivado/2018.3/DVBS2/solution1/export.tcl"
("uplevel" body line 1)
invoked from within
"uplevel 1 hls::main {*}$args"
(procedure "hls_proc" line 5)
invoked from within
"hls_proc $argv"
Finished export RTL.
Kindly help to solve this error.
Waiting for your response.
Thanks.
-- Checking for module SWIG
-- Found SWIG version 3.0.12.
-- User set python executable /usr/bin/python2.7
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython2.7.so (found suitable exact version "2.7.17")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython2.7.so (found suitable version "2.7.17", minimum required is "2")
CMake Error at /usr/local/lib/cmake/gnuradio/GrSwig.cmake:227 (GR_LIBTOOL):
Unknown CMake command "GR_LIBTOOL".
Call Stack (most recent call first):
swig/CMakeLists.txt:55 (GR_SWIG_INSTALL)
Hello, I am looking for a solution for a DVB-S2 transmission in which both transmitter and receiver work with an SDR-Device. I tested gr-dvbs2 as a transmitter together with leandvb as a receiver. I get it up to a stable QPSK constellation diagram and a MER of approx. 15 dB. However, the decoding does not work, although I work with the same code rate on both sides. Have you tested whether gr-dvbs2 works with leandvb? Or, can you provide flow graph examples for GNU Radio 3.7. * where gr-dbvs2 works as the transmitter and gr-dvbs2_rx works as the receiver?
Best regards.
[[Hello,]]
I am using dvbs2rate.c file in vivado hls and during synthesis the project I am getting 7 errors. Kindly find the below mentioned errors for your reference and do the needful to solve the error.
ERROR: [SYNCHK 200-61] E:/dtv-utils-master/dvbs2rate.c:99: unsupported memory access on variable 'argv' which is (or contains) an array with unknown size at compile time.
ERROR: [SYNCHK 200-72] E:/dtv-utils-master/dvbs2rate.c:97: unsupported c/c++ library function 'strlen'.
ERROR: [SYNCHK 200-43] E:/dtv-utils-master/dvbs2rate.c:97: use or assignment of a non-static pointer '' (this pointer may refer to different memory locations).
ERROR: [SYNCHK 200-72] E:/dtv-utils-master/dvbs2rate.c:91: unsupported c/c++ library function 'atof'.
ERROR: [SYNCHK 200-71] E:/dtv-utils-master/dvbs2rate.c:83: function '__iob_func' has no function body.
ERROR: [SYNCHK 200-72] E:/dtv-utils-master/dvbs2rate.c:91: unsupported c/c++ library function 'atof'.
ERROR: [SYNCHK 200-71] E:/dtv-utils-master/dvbs2rate.c:83: function '__iob_func' has no function body.
ERROR: [SYNCHK 200-11] E:/dtv-utils-master/dvbs2rate.c:73: Argument 'argv' of function 'main' (E:/dtv-utils-master/dvbs2rate.c:73) has an unsynthesizable type (possible cause(s): pointer to pointer or global pointer).
waiting for your response.
Hello there,
Can I ask how did you validate the ACM behaviour?
I've generated the test stream with the provided flowgraph (dvbs2_tx.grc). I've managed to detect physical frames and descramble them, but pilots are still spread across all quadrants; while they're expected in first quadrant only.
Thank you!
Hi!, I want receive dvb-s2 acm through usrp. Is it possible? Only I found to transmition...
thanks!
Hello,
Just decided to try DVB-S2 again, and was met with a nice [*** LOG ERROR #0001 ***] [2022-05-31 13:32:19] [ldpc_bb] {invalid type specifier}
upon trying to launch the flowchart. GRC version is 3.11.0.0git-154-g9734aaee compiled from source just yesterday.
Any fixes I could attempt to make it work again?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.