pabr / leansdr

Lightweight, portable software-defined radio
GNU General Public License v3.0
151 stars 40 forks source link

DVB-C implementation #29

Open vankxr opened 3 years ago

vankxr commented 3 years ago

Hello, First of all I would like to thank you for releasing this nice piece of software, it has been really helpful in my recent tinkering. I would like to implement a DVB-S2 to DVB-C transmodulator in software. I have been looking around your code, and at both DVB standards, and from what I can see, the signal chain is the same up to the outer interleaver block. In DVB-C there is a differential coding on the two MSBs of the symbols, to make the constellation rotation-invariant. Since you have already implemented the QAM16, QAM64 and QAM256 constellation LUTs, it would only be a matter of implementing the previously mentioned differential coding, am I right? Can you give me some help on this?

Thank you, João

pabr commented 3 years ago

The differential coding could be implemented by inserting a block before the constellation transmitter.

But in addition to that, you would need to implement DVB-C-compliant QAM constellations. The QAM constellations in leandvb were added for experimentation only, with naive mappings from bits to QAM symbols.

Also, it looks like DVB-C is obsoleted by DVB-C2, which uses OFDM. Is there really a practical use case for software-defined DVB-C ?

vankxr commented 3 years ago

DVB-C2 would also work, I just found it was going to be more complicated since OFDM is not used in DVB-S/2