# Gr-dvbs2 DVB-S2 transmitter

**URL:** <https://www.ruby-forum.com/t/gr-dvbs2-dvb-s2-transmitter/234800>\
**Category:** GNU Radio\
**Created:** [July 7, 2014, 8:17am UTC](https://www.ruby-forum.com/t/gr-dvbs2-dvb-s2-transmitter/234800 "2014-07-07T08:17:19Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![alcina](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/a587f6/32.png) [@alcina](https://www.ruby-forum.com/u/alcina)\
**Post date:** [July 7, 2014, 8:17am UTC](https://www.ruby-forum.com/t/gr-dvbs2-dvb-s2-transmitter/234800/1 "2014-07-07T08:17:19Z")

</div>

I’ve just completed a DVB-S2 transmitter for GnuRadio.

> **[GitHub - drmpeg/gr-dvbs2: A DVB-S2 and DVB-S2X transmitter for GNU Radio](https://github.com/drmpeg/gr-dvbs2)**
>
> A DVB-S2 and DVB-S2X transmitter for GNU Radio. Contribute to drmpeg/gr-dvbs2 development by creating an account on GitHub.

This is a port of G4GUO’s DVB-S2 transmitter for the  
DATV-Express Digital Amateur Television project.

> <https://github.com/G4GUO/datvexpress_gui/tree/master/DVB-S2>
>
> //github.com/G4GUO/datvexpress\_gui/tree/master/DVB-S2

The code includes an implementation of LDPC and BCH codes  
(although DVB-S2 specific) and contains a gnuradio-companion  
flowgraph for the bladeRF transmit capable SDR (easily changed  
to UHD).

The implementation has been tested with a Novra S300V  
DVB-S2 receiver with QPSK, 8PSK, 16APSK and 32APSK  
constellations.

Ron

---

<div class="post-metadata">

**Author:** ![deadprogrammer](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/94ad74/32.png) [@deadprogrammer](https://www.ruby-forum.com/u/deadprogrammer)\
**Post date:** [July 8, 2014, 2:56am UTC](https://www.ruby-forum.com/t/gr-dvbs2-dvb-s2-transmitter/234800/2 "2014-07-08T02:56:11Z")

</div>

You need a host running GnuRadio 3.7.x (I did all my  
testing with 3.7.3). The sample rate will be 2X the  
symbol rate, so unless you’re using very low symbol  
rates, you’ll need to use USB3.0 with the bladeRF.

How much processing power required will be a  
function of symbol rate. I did my testing at 10 Msym/s,  
which is way higher than what would be used on  
amateur frequencies (it’s a 12 MHz wide signal).  
At that rate (and a 34.8 Mbps Transport Stream),  
I was using about 60% on all 4 cores of an Intel  
E5-1607 (which is a pretty mediocre CPU).

At more reasonable symbol rates, a less powerful  
CPU could work. How much less is difficult to  
predict. If you’re thinking of some embedded  
host, then I hear the Odroid U3 is pretty powerful,  
but I have no direct experience with it.

The gnuradio-companion flowgraph and the Python  
script included in the code currently expect to transmit  
a Transport Stream from a file. It would be easy to  
change that to a UDP source. The Transport Stream  
must be muxed to the proper constant bit-rate. I can  
supply properly muxed streams for testing (based on  
symbol rate, constellation and if pilots are used).

Ron
