M O T I V A T I O N F O R S O F T W A R E P L L
I discuss my motivations behind programing a software PLL. This post won't discuss any technical details. I also talk about some of the questions I've had when reading/researching other people's PLL and digital radio simulations - the one that comes to mind is an OFDM simulation.
My aspiration is to build a software radio, because I've always been interested in understanding and building my own radio system, but the level of complexity is astounding in terms of hardware. I'm lazy, I follow paths of least resistance, and software defined radio allows me to quickly trial and error ideas and algorithms. It's still hard, but I believe, that if the way you are thinking about something doesn't work in software, then it will never work in real life, which is what I believe to be true about PLLs. If I had attempted to build a PLL in hardware, without going through the simulation aspect, I would have been sunk. But to continue with my previous thought, I wish to build a software radio system and test it by simulating the communication channel, where I can add random noise, fading, echo, and random delay. After I get that working, I will then use my computer's speaker and microphone as TX and RX. If I can figure that out, then I'll know my algorithm is working, and the transition to RF circuitry will hopefully be a matter of RF circuitry.
This PLL simulation makes me roll my eyes: http://liquidsdr.org/blog/pll-howto/
It makes me roll my eyes because he models the input sinusoid and VCO as ramping phases and is therefore able to model the phase detector as a subtraction operation between the two. In real life, the input signal is a sinusoid. To find the phase difference is much harder. In a software PLL, you have to multiply the input sinusoid with the output of the VCO. Resulting in an up and down converted sinusoid. The PLL control loop must neutralize the down converted error signal in less than half a phase cycle while ignoring the up converted sinusoid - or else it'll slip. In my experience, you can never completely get rid of the double frequency component. It it therefore, manifests itself as phase jitter at the output of the VCO, because it sinusoidally pulses the VCO phase back and forth, yeah?
This is a good website: http://arachnoid.com/phase_locked_loop/
On the topic of some of the radio system simulations that I've read and followed, the authors purport to claim their mastery of the subject by using MATLAB. It's like because they used MATLAB we all of a sudden believe them. I've also seen many textbooks do the same thing, they assume that they know the phase of the input signal, which is one of the difficult parts in a radio system - synchronization.
Here is an academic paper that details on this rant: https://www.researchgate.net/publication/278639495_Let's_Assume_the_System_Is_Synchronized
That is like, the most important part in digital communication systems, which is why I am trying to tackle the software PLL.
The required material for this course in an introduction to software receiver design is: