Linux based decoding of DVB-S2
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
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
Linux based decoding of DVB-S2
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
- Charles
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
- Charles
Re: Linux based decoding of DVB-S2
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
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
Re: Linux based decoding of DVB-S2
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
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
Re: Linux based decoding of DVB-S2
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
- Charles
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
- Charles
Re: Linux based decoding of DVB-S2
Nice!
Brian
Brian
Re: Linux based decoding of DVB-S2
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
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
Re: Linux based decoding of DVB-S2
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.
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
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.
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
Re: Linux based decoding of DVB-S2
The soft modem can now claim to be able to decode DVB-S2X
however there are almost 100 modulation formats in DVB-S2X
however there are almost 100 modulation formats in DVB-S2X
- Attachments
-
- Screenshot from 2018-01-28 11-59-34.png (32.67 KiB) Viewed 6378 times
Re: Linux based decoding of DVB-S2
Are you planning a release any time soon Charles?
Re: Linux based decoding of DVB-S2
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
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