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: 469
Joined: Tue Feb 16, 2010 12:51 pm
Location: Worthing

Linux based decoding of DVB-S2

Postby 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 632 times


- Charles

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

Re: Linux based decoding of DVB-S2

Postby 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: 469
Joined: Tue Feb 16, 2010 12:51 pm
Location: Worthing

Re: Linux based decoding of DVB-S2

Postby 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: 469
Joined: Tue Feb 16, 2010 12:51 pm
Location: Worthing

Re: Linux based decoding of DVB-S2

Postby 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 403 times
Screenshot from 2017-10-24 22-28-45.png
Screenshot from 2017-10-24 22-28-45.png (599.19 KiB) Viewed 403 times


- Charles

G4EWJ
Posts: 588
Joined: Wed Feb 17, 2010 10:11 am
Location: Wirral

Re: Linux based decoding of DVB-S2

Postby G4EWJ » Wed Oct 25, 2017 6:23 pm

Nice!

Brian

G4GUO
Posts: 469
Joined: Tue Feb 16, 2010 12:51 pm
Location: Worthing

Re: Linux based decoding of DVB-S2

Postby 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


Return to “DATV - Digital ATV”

Who is online

Users browsing this forum: No registered users and 5 guests