PPM - Pulse Position Modulation
Disclaimer
The following article assumes the reader knows a bit about pulse width modulation (PWM). While you can still understand this article without prior knowledge, reading the PWM article first would be beneficial. Please read the following if you are unfamiliar PWM - Pulse Width Modulation.
Overview
When we think of PWM, we think of a single channel outputting a wave with a given duty cycle, such as the following.
This is great, but what if we want to set the duty cycle for more than one channel? Of course, we could set up multiple channels, but that is quite exhausting. Well, this is where PPM comes in handy. Pulse position modulation is "an analog modulating scheme in which the amplitude and width of the pulses are kept constant, while the position of each pulse, with reference to the position of a reference pulse varies according to the instantaneous sampled value of the message signal" (https://www.tutorialspoint.com/principles_of_communication/principles_of_communication_analog_pulse_modulation.htm). So, in layperson's terms, the position or period of our pulse changes while our duty cycle is held constant. This differs from PWM, which has a continuous period and variable duty cycle.
Specifics
The photo below shows our PPM generated in reference to a PWM signal. As mentioned above, our period is variable, while our duty cycle is constant. Therefore, computing the period for each pulse is quite simple and is done by analyzing our PWM signal. Specifically, we want our PPM signal to have an equivalent time, or tick count, from rising edge to rising edge as the PWM has from falling edge to falling edge. So, first, we note the difference between the current and the coming pulse. Then, depending on whether our value was negative (PWM duty cycle increasing) or positive (PWM duty cycle decreasing), we adjust our period accordingly. We then repeat this cycle for x amount of channels we would like to set. Typical applications range from 8-16 channels, but it is up to the user to decide.
How is this useful?
One application uses our PPM group (six pulses in this case) to set various output channels. Referencing the photo below, we see our group of PPM pulses sent out to set the duty cycle of our servo channels. By sending one PPM group, we can set multiple servo channels without the need for excess resources. Imagine having individual PWM waves for each channel. This would not be too bad with six channels, but as we talk about more complicated systems, this gets messy quickly!
Advantages and Disadvantages
Due to the nature of PPM, a constant duty cycle may be interpreted as a continuous power output. This may help prolong the life of your equipment and avoid the costs of replacing non-functional equipment.
As pulses are sent as groups, your transmitter and receiver must always be in sync. Think about a postal delivery service. Say our truck driver, who is on a tight schedule, has to deliver nine packages in a neighbourhood. The first two deliveries went well, but as they gave the third package, they misread their sheet and delivered it to the fourth address! Now the delivery driver is out of sync by one house, and thus each house after said delivery would get the package meant for the previous address. Even if the driver notices their mistake, the tight schedule does not permit them to go back and fix it. This situation would be like if your receiver and transmitter were out of sync. Here, the truck driver is our PPM pulse group, the packages are the period between our pulses, and the customer (s) are channels 1-9, respectively.
Applications
Air traffic control and telecommunication systems.
Remote-controlled devices such as cars, planes, and trains use pulse code modulations.
It may be used to compress data, and hence it is used for storage. One example would be compressing an analog signal into a PPM group of x pulses.
References
This article was made in part from the references below. They are a great place to start if you want to learn more.
https://byjus.com/jee/pulse-modulation/