LDPC for FPGAs to do DVB-S2/X on SDRs - so many letters! What does it mean?
Greetings all!
Plenty going on in the open source amateur satellite scene! Here's where Open Research Institute is going next with advanced forward error correcting codes. We are doing our best to get them into as many FPGAs as possible. This will amplify the capabilities of all those SDRs out there.
Open Research Institute is a 501(c)(3) dedicated to open source R&D for amateur radio. We are particularly interested in technology that enables modern digital microwave-band amateur satellite ground stations and payloads. All of the work directly benefits all AMSAT organizations.
LDPC stands for low density parity check coding. It is a powerful forward error correcting code, meaning it provides a huge amount of durability and error correction for digital signals. LDPC is one of two error correcting codes in DVB-S2 and DVB-S2X. The other is called BCH.
DVB-S2 is the most widely used satellite downlink standard and has become widely adopted in amateur satellite work. DVB stands for digital video broadcast. The S is satellite and the 2 is second edition. We replace the MPEG layer, which is appropriate for commercial video broadcast, with a generic data layer, which is more useful for hams. This switch boosts bandwidth. MPEG has a lot of overhead. This "generic stream encapsulation" protocol is called GSE. It comes from the same organization that makes DVB standards. It's an open standard, like DVB-S2, and is already available in GNU Radio and Wireshark due to some excellent volunteer work. GSE is a drop-in replacement for MPEG in DVB-S2/X.
DVB-S2 will be heavily used on Gateway, is used by ARISS, and is a strong contender for a wide variety of payloads currently being designed, developed, integrated, and tested. It's also used terrestrially by a lot of DATV enthusiasts.
The DVB-S2X (X means extension) codes work down to an SNR of -10dB on the low signal strength end. The extension also adds more codes to the higher-end. This allows for very powerful signals that are used by high-throughput satellites. For amateur radio, we are generally more interested in the very low SNR capabilities of DVB-S2X, but don't overlook the available codes at the high SNR end!
Why is LDPC so great? It approaches the physical limits of what error correcting codes can do. The only better code out there right now are Polar codes, used in 5G. They're slightly better, but heavily encumbered by licensing. Becoming familiar with LDPC gives you knowledge of a code with cutting edge performance.
I gave a talk on coding theory and how LDPC works at TAPR DCC in 2018. Here's a link to the video. https://www.youtube.com/watch?v=XoEBps_J988&list=PLs_Ab58w9LI-p-j9C3uN8T...
We have supported several types of LDPC work. Charles Brain's Nvidia implementation (graphical processing unit) was demonstrated at Reno Symposium in 2017. A copy of this work is in the Phase 4 Ground repository. Ahmet Inan's general purpose processor implementation has been incorporated into GNU Radio and leandvb and more. His original work can be found here: https://github.com/xdsopl/LDPC
This is all open source work that is needed for projects like Phase 4 Ground and Space. It's freely available for anyone to use, and people are using it.
Now, we're working on getting LDPC decode into field programmable gate arrays, or FPGAs. Why? Because it's the best architectural fit for the very parallel algorithms in LDPC codes. Another huge benefit is that decode can be moved from a general purpose processor to an FPGA co-processor. This frees up resources in any off the shelf software defined radio (SDR) and makes for much more powerful receivers for amateur satellites that use DVB-S2/X.
Getting to this stage took three years of hard work from a long list of amazing volunteers and enthusiasts and donors. Many of them are on this list. Thank you so much for the support. There is no way that this could happen without you.
The beginning of the VHDL implementation is here: https://github.com/aicodix/cnp
What do we need? Review and feedback, awareness and support. Advice on formal verification would be helpful. Documentation is a must.
What's the next major milestone? We hope to demonstrate a complete Lunar Gateway style station that uses this FPGA work next year at the Tokyo Ham Fair. We aim to have this be part of our Openrotor project.
Openrotor is a heavy-duty open source rotator and controller project. If you are interested in that, let me know - it's off to a good start with volunteers on three continents, but there's some expertise gaps that still need filling. It must support a 2m dish at 10 GHz and not be so loud the neighbors complain. It will speak MQTT and use other common interfaces (hamlib, N1MM).
More soon!
-Michelle W5NYV