Linux based decoding of DVB-S2

Digital ATV - The latest generation, cutting edge ATV - Please discuss it all here.
Forum rules
This forum is run by the BATC (British Amateur Television Club), it is service made freely available to all interested parties, please do not abuse this privilege.

Thank you
G4GUO
Posts: 728
Joined: Tue Feb 16, 2010 12:51 pm

Linux based decoding of DVB-S2

Post by G4GUO » Tue Oct 03, 2017 10:32 am

I thought I would share my initial work on DVB-S2 decoding in software.
It is of little practical use as it requires an expensive NVIDIA graphics card
to do the FEC and currently it only operates at <= 333 KS/s.

To transmit I was using DATV-Express and to receive ADALM-PLUTO
Screenshot from 2017-10-03 11-20-57.jpg
Screenshot from 2017-10-03 11-20-57.jpg (298.74 KiB) Viewed 7125 times
- Charles

g0mjw
Posts: 2330
Joined: Sat Sep 20, 2014 9:15 am

Re: Linux based decoding of DVB-S2

Post by g0mjw » Tue Oct 03, 2017 11:32 am

Good work,

I have an NVIDIA card on my other PC. Laptops seem to be getting them too. Besides, Moore's law should make it easier. How about really low symbol rates - like 9k6 as might be used for satellite downlinks?

Mike

G4GUO
Posts: 728
Joined: Tue Feb 16, 2010 12:51 pm

Re: Linux based decoding of DVB-S2

Post by G4GUO » Tue Oct 03, 2017 11:51 am

Hi Mike,

Yes this project is for the Phase4 Ground station team. I believe Michelle W5NYV is going to
demo it at the AMSAT-NA Symposium in Reno, Nevada at the end of the month.

They are proposing to use DVB-S2X VL_SNR for future Lunar and Martian Cubesat missions.

Being Software Defined means it can have the required exotic modulation formats and interfaces added
as required that don't appear in commercial DBS chipsets.

The heart of this is the CUDA LDPC decoder, currently it uses a very naive implementation with
plenty of opportunity for optimisation as my CUDA skills improve. I have it running on a Maxwell architecture
chip but the current generation of Pascal chips would cause an almost x2 performance boost with
negligible re-coding. The next generation Volta chips will be even better as they have much faster memory
access, the new AI Tensor Flow engine looks ideal for this type of work as it consists of very very fast,
parallel MAC instructions (the building blocks of DSP and AI).

I am supposed to be adding LimeSDR support today but I may try it on my Games Laptop instead which has a
Pascal GTX1030 in it.

The only worrying thing is that when running the GPU cores on my video card go up 40C in temperature
(still in the green though).

- Charles

G4GUO
Posts: 728
Joined: Tue Feb 16, 2010 12:51 pm

Re: Linux based decoding of DVB-S2

Post by G4GUO » Tue Oct 24, 2017 10:17 pm

Wind was obviously blowing in the right direction tonight.

Transmitter DATV-Express running on Windows, Receiver ADALM-PLUTO running on Linux

Software demodulation of DVB-S2 32APSK FEC= 9/10 approx 1.48 MBits/s
Screenshot from 2017-10-24 22-49-21.png
Screenshot from 2017-10-24 22-49-21.png (190.73 KiB) Viewed 6898 times
Screenshot from 2017-10-24 22-28-45.png
Screenshot from 2017-10-24 22-28-45.png (599.19 KiB) Viewed 6898 times
- Charles

G4EWJ
Posts: 1359
Joined: Wed Feb 17, 2010 10:11 am

Re: Linux based decoding of DVB-S2

Post by G4EWJ » Wed Oct 25, 2017 6:23 pm

Nice!

Brian

G4GUO
Posts: 728
Joined: Tue Feb 16, 2010 12:51 pm

Re: Linux based decoding of DVB-S2

Post by G4GUO » Thu Oct 26, 2017 9:19 am

Hello Brian,

I thought it would be a good idea to publicise what I am doing and I would encourage
everyone to do the same no matter what they are doing. Judging by my Twitter feed
ATV has a very high profile at the moment and a load of people that I follow seem to
be dipping their toes into the water.

There is still a lot to do with my DVB-S2 decoder mainly to do with speeding it up.
With GPUs you seem to have to write everything twice, once to get the algorithm
correct and a second time to use the GPUs memory in the most efficient way. I am
working on the second part now. Thankfully a group of researchers in Portugal have
devised a way of optimising the memory accesses using Texture memory (that is
the cached memory used for video rendering). It has taken me a couple of weeks
to understand what they have done but I think I have cracked it now. I just have
to turn their work into a working piece of software as they have only done the LDPC
decoder bit!

Hopefully I will be able to try some DVB-S2X tests in the new year.

- Charles

G4GUO
Posts: 728
Joined: Tue Feb 16, 2010 12:51 pm

Re: Linux based decoding of DVB-S2

Post by G4GUO » Mon Jan 22, 2018 6:20 pm

Another update to my DVB-S2 soft modem (this is for information in case anyone had thought I had gone away).
Just finished testing DVB-S2 short frames 16200 bits per frame rather than the normal frames used for DATV which are
64800 bits per frame.
DSC_0087.gif
DSC_0087.gif (1.07 MiB) Viewed 6391 times
Next I will start testing DVB-S2X receive, this will take some time.
I am using Ron's (W6RZ) GNU-Radio implementation of DVB-S2X as a transmitter.
On receive I am using a Pluto and an NVIDIA graphics card to do the decoding.

- Charles

G4GUO
Posts: 728
Joined: Tue Feb 16, 2010 12:51 pm

Re: Linux based decoding of DVB-S2

Post by G4GUO » Sun Jan 28, 2018 12:44 pm

The soft modem can now claim to be able to decode DVB-S2X
however there are almost 100 modulation formats in DVB-S2X
Attachments
Screenshot from 2018-01-28 11-59-34.png
Screenshot from 2018-01-28 11-59-34.png (32.67 KiB) Viewed 6306 times

g0mjw
Posts: 2330
Joined: Sat Sep 20, 2014 9:15 am

Re: Linux based decoding of DVB-S2

Post by g0mjw » Sun Jan 28, 2018 12:46 pm

Are you planning a release any time soon Charles?

G4GUO
Posts: 728
Joined: Tue Feb 16, 2010 12:51 pm

Re: Linux based decoding of DVB-S2

Post by G4GUO » Sun Jan 28, 2018 2:26 pm

Nope, there is a lot more work to do to get it as sensitive as the Minitiouner and when I do release it
it will be source code only because it will need to be re-compiled for what ever platform it is running on.

I would also like to get it working with the LimeMini as the restricted sample rate of the Pluto means it
is currently limited to around 1.5 MS/s.

I have made the Source available to Michelle W5NYV and she plans to show it at some of the conventions she goes to
but so far she has not been able to get it to work on 'Hello KitTi' (her pink coloured GPU dev machine) but she was
using a LimeSDR rather than a Pluto.

- Charles

Post Reply

Return to “DATV - Digital ATV”