The Adaptive Pre-distortion (APD) rabbit hole
Posted: Mon Oct 03, 2022 5:54 am
Hello to those of you who stopped by to investigate this topic.
I am new to this forum and welcome the opportunity to share some ideas and findings resulting from my venture into the science of adaptive pre distortion and the wonderful new rabbit hole I have been exploring.
I am very keen to becoming a new customer of Apache-labs and hopefully will have a basic Anan transceiver which will be my “platform” to help me with my experimentation and potential developments in novel APD implementations.
For those of you who are interested in Digital Pre-Distortion (DPD) or are lucky to have an ANAN transceiver and would like to have some "hands-on" experimentation - but simply don't have appropriate H/W (or don't want to hack your ANAN at this time) to do your experimentation here are some approaches you can take ...
GitHub - gnuradio/gr-dpd: Digital Pre-Distortion implementation in GNU Radio https://github.com/gnuradio/gr-dpd
If you are not familiar with gnuradio - then here is an excellent series of tutorials which will get you up to speed quickly ...
Software Defined Radio with HackRF - Great Scott Gadgets https://greatscottgadgets.com/sdr/
Unfortunately, the learning curve for APD is quite steep, but the good news is that there are many research and development papers written on this subject, so as long as you have a fundamental understanding – the special knowledge is easy to find – its simply a matter of time as you educate yourself.
The other good news is to approach this subject from a new perspective.
As I have little in-depth knowledge as to how the existing “pure-signal” has been implemented in the Anan transceivers – so I am not being influenced by the specific approach so to speak.
My intentions are to develop a “black-box” to perform the APD function – enabling the input signal (from low level RF exciter) to be “processed” and pre-distorted before it is amplified by higher power output amplifier (with appropriate sampling for closed loop operation).
Sounds easy – but it’s not – however to my rescue are some good development tools.
I Found a good introduction video - Power Amplifier Modeling and DPD Design with MATLAB - https://www.youtube.com/watch?v=eo21QWO4VDU - showing the concept which I would like to utilize with tools like Matlab - regarding APD design.
The good thing here is that you can investigate existing APD models and modify them within the simulation - to try to achieve optimal results for your design criteria.
Once happy, can then produce HDL code for FPGA to realize this in H/W
Another useful TOOL to help would be to understand neural nets - this term is used predominately with artificial intelligence systems.
These artificial networks may be used for Predictive modelling - Wikipedia https://en.wikipedia.org/wiki/Predictive_modelling, Adaptive control - Wikipedia https://en.wikipedia.org/wiki/Adaptive_control and applications where they can be trained via a dataset. Self-learning resulting from experience can occur within networks, which can derive conclusions from a complex and seemingly unrelated set of information.
Above quote from Neural network - Wikipedia https://en.wikipedia.org/wiki/Neural_network
Developing an APD system is complex and by understanding the use and development of state machines together with the process of predictive modeling we can successfully model the complex systems we are trying to implement.
By having a working model of an APD system we can "tune" for optimal behavior and finally implement this as a digital system inside a FPGA
I am looking at different ways to tackle the predictive modeling and adaptive control - principally trying to harness existing semiconductor devices designed for such tasks
Here is a link which discusses what is available AI Hardware Roundup: Neuromorphic Chips and Neural Network SoCs - News (allaboutcircuits.com) https://www.allaboutcircuits.com/news/ai-hardware-roundup-neuromorphic-chips/
A practical device from above round-up - which is already in use (google pixel range of phones) - can be seen here https://coral.ai/products/dev-board Dev Board | Coral
So, like I said this is a DEEP rabbit hole - but it’s also very interesting and rewarding to go through the learning process
It would be good to know if anyone in this wonderful community is also interested in this subject and my novel approach in experimenting with DPD systems.
Of cause the ideal scenario would be to interface to an existing Anan transceiver and take a deep dive at the current pure signal implementation – with a view if there are “easy” opportunities for some enhancements.
Unfortunately, I am still waiting and waiting for reply from Apache-labs support as to my progress in obtaining a radio.
Hope someone from Support might contact me soon
I am new to this forum and welcome the opportunity to share some ideas and findings resulting from my venture into the science of adaptive pre distortion and the wonderful new rabbit hole I have been exploring.
I am very keen to becoming a new customer of Apache-labs and hopefully will have a basic Anan transceiver which will be my “platform” to help me with my experimentation and potential developments in novel APD implementations.
For those of you who are interested in Digital Pre-Distortion (DPD) or are lucky to have an ANAN transceiver and would like to have some "hands-on" experimentation - but simply don't have appropriate H/W (or don't want to hack your ANAN at this time) to do your experimentation here are some approaches you can take ...
GitHub - gnuradio/gr-dpd: Digital Pre-Distortion implementation in GNU Radio https://github.com/gnuradio/gr-dpd
If you are not familiar with gnuradio - then here is an excellent series of tutorials which will get you up to speed quickly ...
Software Defined Radio with HackRF - Great Scott Gadgets https://greatscottgadgets.com/sdr/
Unfortunately, the learning curve for APD is quite steep, but the good news is that there are many research and development papers written on this subject, so as long as you have a fundamental understanding – the special knowledge is easy to find – its simply a matter of time as you educate yourself.
The other good news is to approach this subject from a new perspective.
As I have little in-depth knowledge as to how the existing “pure-signal” has been implemented in the Anan transceivers – so I am not being influenced by the specific approach so to speak.
My intentions are to develop a “black-box” to perform the APD function – enabling the input signal (from low level RF exciter) to be “processed” and pre-distorted before it is amplified by higher power output amplifier (with appropriate sampling for closed loop operation).
Sounds easy – but it’s not – however to my rescue are some good development tools.
I Found a good introduction video - Power Amplifier Modeling and DPD Design with MATLAB - https://www.youtube.com/watch?v=eo21QWO4VDU - showing the concept which I would like to utilize with tools like Matlab - regarding APD design.
The good thing here is that you can investigate existing APD models and modify them within the simulation - to try to achieve optimal results for your design criteria.
Once happy, can then produce HDL code for FPGA to realize this in H/W
Another useful TOOL to help would be to understand neural nets - this term is used predominately with artificial intelligence systems.
These artificial networks may be used for Predictive modelling - Wikipedia https://en.wikipedia.org/wiki/Predictive_modelling, Adaptive control - Wikipedia https://en.wikipedia.org/wiki/Adaptive_control and applications where they can be trained via a dataset. Self-learning resulting from experience can occur within networks, which can derive conclusions from a complex and seemingly unrelated set of information.
Above quote from Neural network - Wikipedia https://en.wikipedia.org/wiki/Neural_network
Developing an APD system is complex and by understanding the use and development of state machines together with the process of predictive modeling we can successfully model the complex systems we are trying to implement.
By having a working model of an APD system we can "tune" for optimal behavior and finally implement this as a digital system inside a FPGA
I am looking at different ways to tackle the predictive modeling and adaptive control - principally trying to harness existing semiconductor devices designed for such tasks
Here is a link which discusses what is available AI Hardware Roundup: Neuromorphic Chips and Neural Network SoCs - News (allaboutcircuits.com) https://www.allaboutcircuits.com/news/ai-hardware-roundup-neuromorphic-chips/
A practical device from above round-up - which is already in use (google pixel range of phones) - can be seen here https://coral.ai/products/dev-board Dev Board | Coral
So, like I said this is a DEEP rabbit hole - but it’s also very interesting and rewarding to go through the learning process
It would be good to know if anyone in this wonderful community is also interested in this subject and my novel approach in experimenting with DPD systems.
Of cause the ideal scenario would be to interface to an existing Anan transceiver and take a deep dive at the current pure signal implementation – with a view if there are “easy” opportunities for some enhancements.
Unfortunately, I am still waiting and waiting for reply from Apache-labs support as to my progress in obtaining a radio.
Hope someone from Support might contact me soon