Skip to main content

Pulse Position Modulation (PPM)


Pulse Position Modulation (PPM) is a type of signal modulation in which M message bits are encoded by transmitting a single pulse within one of 2แดน possible time positions within a fixed time frame. This process is repeated every T seconds, resulting in a data rate of M/T bits per second.

PPM is a form of analog modulation where the position of each pulse is varied according to the amplitude of the sampled modulating signal, while the amplitude and width of the pulses remain constant. This means only the timing (position) of the pulse carries the information.

PPM is commonly used in optical and wireless communications, especially where multipath interference is minimal or needs to be reduced. Because the information is carried in timing, it's more robust in some noisy environments compared to other modulation schemes.

Although PPM can be used for analog signal modulation, it is also used in digital communications where each pulse position represents a symbol or bit pattern. However, it is not ideal for transmitting complex data files, as it is generally used for simple or low-data-rate signaling.


Fig: PPM Waveforms


Demodulation of PPM Signal


The noise-corrupted PPM waveform is received by the PPM demodulator circuit. A pulse generator produces fixed-duration pulses from the incoming PPM signal and applies these pulses to the reset (R) input of an SR flip-flop.

Simultaneously, a reference pulse train of fixed frequency is extracted (or generated) from the PPM signal and applied to the set (S) input of the flip-flop.

As a result of these set and reset signals, the SR flip-flop generates a PWM (Pulse Width Modulated) waveform at its output. The width of each pulse corresponds to the time delay between the reference pulse and the received PPM pulse — effectively recovering the original signal information.

 

Pulse Position Modulation (PPM) of Sinusoidal Signal

We have a sinusoidal signal:

x(t) = A sin(2ฯ€ f t)

And we want to modulate this signal using Pulse Position Modulation (PPM).

 

Step-by-Step Example

1. Sinusoidal Signal

Let’s define a sinusoidal signal as:

x(t) = 5 sin(2ฯ€ ⋅ 1 ⋅ t)

This is a sine wave with:

  • Amplitude: A = 5
  • Frequency: f = 1 Hz (meaning 1 complete cycle every second)

This means the signal oscillates between +5 and −5, and it has a period of 1 second.

 

2. Pulse Position Modulation Concept

We’ll now encode information into the timing of pulses based on this sinusoidal signal.

Let’s assume we sample the sinusoidal signal at regular time intervals (every ฮ”t = 0.1 seconds). At each sample point, we adjust the position of the pulse based on the amplitude of the sine wave at that time.

If the amplitude is large (positive or negative), the pulse will be farther from a reference time (i.e., it’s "delayed").

If the amplitude is small (close to zero), the pulse will be closer to the reference time.

 

3. Calculating the Pulse Positions

Let’s compute the values of x(t) at several sample times and determine the pulse positions.

Time Sample 1: t = 0

x(0) = 5 sin(2ฯ€ ⋅ 1 ⋅ 0) = 5 sin(0) = 0

Since the value is 0, the pulse will be positioned at the reference time, say at t = 0.

Time Sample 2: t = 0.1

x(0.1) = 5 sin(2ฯ€ ⋅ 1 ⋅ 0.1) = 5 sin(0.2ฯ€) ≈ 5 × 0.5878 = 2.939

Since the amplitude is positive and non-zero, the pulse will be shifted forward in time. Let’s say it’s shifted by:

0.1 × x(0.1) = 0.1 × 2.939 = 0.294

So, the pulse will appear at:

t = 0.1 + 0.294 = 0.394 seconds

Time Sample 3: t = 0.2

x(0.2) = 5 sin(2ฯ€ ⋅ 1 ⋅ 0.2) = 5 sin(0.4ฯ€) ≈ 5 × 0.9511 = 4.7555

Since the amplitude is relatively high, we shift the pulse even further. Let’s say the pulse is shifted by:

0.1 × x(0.2) = 0.1 × 4.7555 = 0.47555

So, the pulse will be at:

t = 0.2 + 0.47555 = 0.67555 seconds

Time Sample 4: t = 0.3

x(0.3) = 5 sin(2ฯ€ ⋅ 1 ⋅ 0.3) = 5 sin(0.6ฯ€) ≈ 5 × 0.809 = 4.045

The pulse will be shifted by:

0.1 × x(0.3) = 0.1 × 4.045 = 0.4045

So, the pulse will be at:

t = 0.3 + 0.4045 = 0.7045 seconds

Time Sample 5: t = 0.4

x(0.4) = 5 sin(2ฯ€ ⋅ 1 ⋅ 0.4) = 5 sin(0.8ฯ€) ≈ 5 × 0.9511 = 4.7555

The pulse will be shifted by:

0.1 × x(0.4) = 0.1 × 4.7555 = 0.47555

So, the pulse will be at:

t = 0.4 + 0.47555 = 0.87555 seconds

Time Sample 6: t = 0.5

x(0.5) = 5 sin(2ฯ€ ⋅ 1 ⋅ 0.5) = 5 sin(ฯ€) = 0

At t = 0.5 seconds, the sine wave is at 0 again, so the pulse will be at the reference time t = 0.5.

 

4. Summary of Pulse Timing

Based on the sinusoidal signal, we have the following pulse positions (where the pulse is shifted according to the amplitude of the sine wave):

Sample Time (t) Amplitude x(t) Pulse Position (tpulse)
0.0 0 0.0
0.1 2.939 0.394
0.2 4.7555 0.67555
0.3 4.045 0.7045
0.4 4.7555 0.87555
0.5 0 0.5

 

Effect of noise on pulse position modulation

Since in a PPM system the transmitted information is contained in the relative positions of the modulated pulses, the presence of additive noise affects the performance of such a system by falsifying the time at which the modulated pulses are judged to occur. Immunity to noise can be established by making the pulse build up too rapidly that the time interval during which noise can exert any perturbation is very short. Indeed, additive noise would have no effect on the pulse positions if the received pulses were perfectly rectangular, because the presence of noise introduces only vertical perturbations. However, the reception of perfectly rectangular pulses would require an infinite channel bandwidth, and the received pulses have a finite rise time, so the performance of the PPM receiver is affected by noise, which is to be expected.

As in a continuous wave (CW) modulation system, the noise performance of a PPM system may be described in terms of the output signal-to-noise ratio (SNR). Also, to find the noise improvement produced by PPM over baseband transmission of a message signal, we may use the figure of merit defined as the output signal-to-noise ratio of the PPM system divided by the channel signal-to-noise ratio. Assuming that the average power of the channel noise is small as compared to the peak pulse power, the figure of merit of the PPM system is proportional to the square of the transmission bandwidth of the (say, BT) normalized with respect to the message signal bandwidth (say, W). When, however, the input signal-to-noise ratio drops below a critical value, the system suffers a loss of the wanted message signal at the receiver output. That is a PPM system suffers from a threshold effect of its own.
 

Further Reading

People are good at skipping over material they already know!

View Related Topics to







Contact Us

Name

Email *

Message *

Popular Posts

BER vs SNR for M-ary QAM, M-ary PSK, QPSK, BPSK, ...

๐Ÿ“˜ Overview of BER and SNR ๐Ÿงฎ Online Simulator for BER calculation of m-ary QAM and m-ary PSK ๐Ÿงฎ MATLAB Code for BER calculation of M-ary QAM, M-ary PSK, QPSK, BPSK, ... ๐Ÿ“š Further Reading ๐Ÿ“‚ View Other Topics on M-ary QAM, M-ary PSK, QPSK ... ๐Ÿงฎ Online Simulator for Constellation Diagram of m-ary QAM ๐Ÿงฎ Online Simulator for Constellation Diagram of m-ary PSK ๐Ÿงฎ MATLAB Code for BER calculation of ASK, FSK, and PSK ๐Ÿงฎ MATLAB Code for BER calculation of Alamouti Scheme ๐Ÿงฎ Different approaches to calculate BER vs SNR What is Bit Error Rate (BER)? The abbreviation BER stands for Bit Error Rate, which indicates how many corrupted bits are received (after the demodulation process) compared to the total number of bits sent in a communication process. BER = (number of bits received in error) / (total number of tran...

Calculation of SNR from FFT bins in MATLAB

๐Ÿ“˜ Overview ๐Ÿงฎ MATLAB Code for Estimation of SNR from FFT bins of a Noisy Signal ๐Ÿงฎ MATLAB Code for Estimation of Signal-to-Noise Ratio from Power Spectral Density Using FFT and Kaiser Window Periodogram from real signal data ๐Ÿ“š Further Reading   Here, you can find the SNR of a received signal from periodogram / FFT bins using the Kaiser operator. The beta (ฮฒ) parameter characterizes the Kaiser window, which controls the trade-off between the main lobe width and the side lobe level in the frequency domain. For that you should know the sampling rate of the signal.  The Kaiser window is a type of window function commonly used in signal processing, particularly for designing finite impulse response (FIR) filters and performing spectral analysis. It is a general-purpose window that allows for control over the trade-off between the main lobe width (frequency resolution) and side lobe levels (suppression of spectral leakage). The Kaiser window is defined...

MIMO Channel Matrix | Rank and Condition Number

MIMO / Massive MIMO MIMO Channel Matrix | Rank and Condition...   The channel matrix in wireless communication is a matrix that describes the impact of the channel on the transmitted signal. The channel matrix can be used to model the effects of the atmospheric or underwater environment on the signal, such as the absorption, reflection or scattering of the signal by surrounding objects. When addressing multi-antenna communication, the term "channel matrix" is used. Let's assume that only one TX and one RX are in communication and there's no surrounding object. Here, in our case, we can apply the proper threshold condition to a received signal and get the original transmitted signal at the RX side. However, in real-world situations, we see signal path blockage, reflections, etc.,  (NLOS paths [↗]) more frequently. The obstruction is typically caused by building walls, etc. Multi-antenna communication was introduced to address this issue. It makes diversity app...

Online Simulator for ASK, FSK, and PSK

Try our new Digital Signal Processing Simulator!   Start Simulator for binary ASK Modulation Message Bits (e.g. 1,0,1,0) Carrier Frequency (Hz) Sampling Frequency (Hz) Run Simulation Simulator for binary FSK Modulation Input Bits (e.g. 1,0,1,0) Freq for '1' (Hz) Freq for '0' (Hz) Sampling Rate (Hz) Visualize FSK Signal Simulator for BPSK Modulation ...

Constellation Diagrams of ASK, PSK, and FSK

๐Ÿ“˜ Overview of Energy per Bit (Eb / N0) ๐Ÿงฎ Online Simulator for constellation diagrams of ASK, FSK, and PSK ๐Ÿงฎ Theory behind Constellation Diagrams of ASK, FSK, and PSK ๐Ÿงฎ MATLAB Codes for Constellation Diagrams of ASK, FSK, and PSK ๐Ÿ“š Further Reading ๐Ÿ“‚ Other Topics on Constellation Diagrams of ASK, PSK, and FSK ... ๐Ÿงฎ Simulator for constellation diagrams of m-ary PSK ๐Ÿงฎ Simulator for constellation diagrams of m-ary QAM BASK (Binary ASK) Modulation: Transmits one of two signals: 0 or -√Eb, where Eb​ is the energy per bit. These signals represent binary 0 and 1.    BFSK (Binary FSK) Modulation: Transmits one of two signals: +√Eb​ ( On the y-axis, the phase shift of 90 degrees with respect to the x-axis, which is also termed phase offset ) or √Eb (on x-axis), where Eb​ is the energy per bit. These signals represent binary 0 and 1.  BPSK (Binary PSK) Modulation: Transmits one of two signals...

Simulation of ASK, FSK, and PSK using MATLAB Simulink

๐Ÿ“˜ Overview ๐Ÿงฎ How to use MATLAB Simulink ๐Ÿงฎ Simulation of ASK using MATLAB Simulink ๐Ÿงฎ Simulation of FSK using MATLAB Simulink ๐Ÿงฎ Simulation of PSK using MATLAB Simulink ๐Ÿงฎ Simulator for ASK, FSK, and PSK ๐Ÿงฎ Digital Signal Processing Simulator ๐Ÿ“š Further Reading ASK, FSK & PSK HomePage MATLAB Simulation Simulation of Amplitude Shift Keying (ASK) using MATLAB Simulink      In Simulink, we pick different components/elements from MATLAB Simulink Library. Then we connect the components and perform a particular operation.  Result A sine wave source, a pulse generator, a product block, a mux, and a scope are shown in the diagram above. The pulse generator generates the '1' and '0' bit sequences. Sine wave sources produce a specific amplitude and frequency. The scope displays the modulated signal as well as the original bit sequence created by the pulse generator. Mux is a tool for displaying b...

What are Precoding and Combining Weights / Matrices in a MIMO Beamforming System

MIMO / Massive MIMO Beamforming Techniques Precoding and Combining Weights...   Figure:  configuration of single-user digital precoder for millimeter  Wave massive MIMO system Precoding and combining are two excellent ways to send and receive signals over a multi-antenna communication process, respectively (i.e., MIMO antenna communication ). The channel matrix is the basis of both the precoding and combining matrices. Precoding matrices are typically used on the transmitter side and combining matrixes on the receiving side. The two matrices allow us to generate multiple simultaneous data streams between the transmitter and receiver. The nature of the data streams is also orthogonal. That helps decrease or cancel (theoretically) interference between any two data streams. The channel matrix is first properly diagonalized. Diagonalization is the process of transforming any matrix into an equivalent diagon...