I've completed a DVB-T2 transmitter for GnuRadio and bladeRF. It's been fully tested with a PCTV 292e USB receiver.
https://github.com/drmpeg/gr-dvbt2
Features of interest:
1) T2-Lite mode. The T2-Lite mode allows both 1/3 and 2/5 code rates. With QPSK modulation, very low receive S/N ratios of just a few dB are possible.
2) 1.7 MHz bandwidth mode. The 1.7 MHz bandwidth mode is supported by DVB-T2 demodulators (including the Si2168 in the PCTV 292e). This mode is intended as a DAB replacement in L band.
3) PAPR reduction. A very useful feature since high PAPR seems to be the major complaint about OFDM. DVB-T2 provides two algorithms for PAPR reduction, Active Constellation Extension (ACE) and Tone Reservation (TR). The tone reservation method is fully implemented in gr-dvbt2. Unfortunately, it is very floating point intensive, and heavy reduction is not possible (in real-time) with the current implementation. However, it does work well with lighter levels of reduction. A perfect candidate for a GPU based heterogeneous computing setup.
4) MISO (Multiple Input Single Output) mode. Pretty advanced stuff, but can be implemented with a MISO/MIMO capable SDR like the Ettus B210 or a pair of slaved bladeRF's. One approach would be to use horizontal polarization for one transmitter output and vertical polarization for the other transmitter output. Implemented in gr-dvbt2, but would need a little more work to synchronize the two transmitters. All DVT-T2 receivers support MISO.
5) More capacity. The 256QAM mode provides high bitrates for those interested in HDTV. With the 32K/256QAM 2/3 rate mode in use by the BBC, the bitrates for each channel size are:
8 MHz = 40.2 Mbps
7 MHz = 35.2 Mbps
6 MHz = 30.1 Mbps
Up to 50 Mbps is possible in an 8 MHz channel with 5/6 code rate.
Here's the flow for Ofcom Mode 6 (44.8 Mbps in an 8 MHz channel) in gnuradio-companion.
MISO flow.
Spectrum at 7 MHz channel size.
Ron
DVB-T2 Transmitter
-
- Posts: 62
- Joined: Fri Mar 01, 2013 3:58 am
- Location: Silicon Valley
- Contact:
-
- Posts: 62
- Joined: Fri Mar 01, 2013 3:58 am
- Location: Silicon Valley
- Contact:
Re: DVB-T2 Transmitter
After being clued in by bpadalino about DAC zero-order hold distortion, I've added sin(x)/x equalization to gr-dvbt2.
http://www.maximintegrated.com/en/app-n ... vp/id/3853
The transmitted spectrum response is essentially flat now.
Ron
http://www.maximintegrated.com/en/app-n ... vp/id/3853
The transmitted spectrum response is essentially flat now.
Ron
-
- Posts: 2
- Joined: Wed Sep 05, 2018 4:36 pm
Re: DVB-T2 Transmitter
Thank you for sharing the flowgraph information!
However, I got a couple of issues while examining my recreated flowgraph output. First, I'd noticed that rendered I/Q file has a length of 35 seconds @ 9142,865 KHz, while .ts file takes 1 minute and 45 seconds. I'd used advtimedvb.ts that has been shared from another successful project of transmitting ATSC (can be found on Youtube).
Second, I noticed that rendered signal contains a lot of clicks between OFDM frames (they acts like delta-function pulse and they have a pretty wide spectrum, see fig.1), and their amplitude exceeds actual OFDM amplitude over 35dB! (fig.2, MultiplyConst=5m). I tried to adjust a gain of the signal so OFDM will be normalized to maximum and interference from that clicks will be minimal as they are clipped (fig.3, MultiplyConst=300m). But I still find this abnormal, as the real terrestrial signal never contains this type of interference.
Third, I noticed, most of the subcarriers stay empty and unused 95% of the time (Fig.4), while real DVB-T2 signals observed by my SDR are having dense, almost solid spectrum. So there are possible problems with data acquisition from MPEG-TS stream.
Are these anomalies acceptable, or this is incorrect and needs to be fixed? My GNURadio is 3.7.12.0 build for Windows amd64, nothing is modified, no additional blocks are installed. Python version is 2.7. Flowgraph will be attached in the second message.
Thanks.
However, I got a couple of issues while examining my recreated flowgraph output. First, I'd noticed that rendered I/Q file has a length of 35 seconds @ 9142,865 KHz, while .ts file takes 1 minute and 45 seconds. I'd used advtimedvb.ts that has been shared from another successful project of transmitting ATSC (can be found on Youtube).
Second, I noticed that rendered signal contains a lot of clicks between OFDM frames (they acts like delta-function pulse and they have a pretty wide spectrum, see fig.1), and their amplitude exceeds actual OFDM amplitude over 35dB! (fig.2, MultiplyConst=5m). I tried to adjust a gain of the signal so OFDM will be normalized to maximum and interference from that clicks will be minimal as they are clipped (fig.3, MultiplyConst=300m). But I still find this abnormal, as the real terrestrial signal never contains this type of interference.
Third, I noticed, most of the subcarriers stay empty and unused 95% of the time (Fig.4), while real DVB-T2 signals observed by my SDR are having dense, almost solid spectrum. So there are possible problems with data acquisition from MPEG-TS stream.
Are these anomalies acceptable, or this is incorrect and needs to be fixed? My GNURadio is 3.7.12.0 build for Windows amd64, nothing is modified, no additional blocks are installed. Python version is 2.7. Flowgraph will be attached in the second message.
Thanks.
Last edited by hackrf_one on Thu Sep 06, 2018 1:24 pm, edited 2 times in total.
-
- Posts: 2
- Joined: Wed Sep 05, 2018 4:36 pm
Re: DVB-T2 Transmitter
Fig. 4 and flowgraph.
-
- Posts: 1
- Joined: Tue Oct 02, 2018 5:54 pm
Re: DVB-T2 Transmitter
Thank you very muchdrmpeg wrote: ↑Fri Feb 06, 2015 3:31 am After being clued in by bpadalino about DAC zero-order hold distortion, I've added sin(x)/x equalization to gr-dvbt2.
http://www.maximintegrated.com/en/app-n ... vp/id/3853transfers CDG
The transmitted spectrum response is essentially flat now.
Ron