Challenge

FINAL INDEPENDENT PROJECT

PPM(PULSE POSITION MODULATION):Pulse-position modulation (PPM) is a form of signal modulation in which M message bits are encoded by transmitting a single pulse in one of 2 M {\displaystyle 2^{M}} possible required time shifts.

One of the key difficulties of implementing this technique is that the receiver must be properly synchronized to align the local clock with the beginning of each symbol. Therefore, it is often implemented differentially as differential pulse-position modulation, whereby each pulse position is encoded relative to the previous, such that the receiver must only measure the difference in the arrival time of successive pulses. It is possible to limit the propagation of errors to adjacent symbols, so that an error in measuring the differential delay of one pulse will affect only two symbols, instead of affecting all successive measurements.

Aside from the issues regarding receiver synchronization, the key disadvantage of PPM is that it is inherently sensitive to multipath interference that arises in channels with frequency-selective fading, whereby the receiver's signal contains one or more echoes of each transmitted pulse. Since the information is encoded in the time of arrival (either differentially, or relative to a common clock), the presence of one or more echoes can make it extremely difficult, if not impossible, to accurately determine the correct pulse position corresponding to the transmitted pulse. Multipath in Pulse Position Modulation systems can be easily mitigated by using the same techniques that are used in Radar systems that rely totally on synchronization and time of arrival of the received pulse to obtain their range position in the presence of echoes.

code for ppm:

close all;
clear all;
clc;
fc = 20;    %carrier frequency
fm = 2;     % message frequency
fs = 1000;  % sampling frequency
t = 1;  
n = [0:1/fs:t];
n = n(1:end - 1);
duty = 10;
% no. of samples in one square wave period
per = fs/fc;
% no. of samples in on time
on_t = per/duty;

s = square(2*pi*fc*n,duty);
s(find(s<0)) = 0;
% message signal
m = sin(2*pi*fm*n);

% Triangular wave
A=1.25;
c=A.*sawtooth(2*pi*fc*n);%Carrier sawtooth

% 
ppm = zeros(1,length(s));

% find ids where carrier is greater than message
id = find(c > m);
idd = diff(id);
iddd = find(idd ~= 1);
temp(1) = id(1);
temp(2:length(iddd)+1) = id(iddd + 1);

% ppm signal
for i = 1:length(temp)
    ppm(temp(i) : temp(i) + on_t - 1) = 1;
end
% Plot
subplot(3,1,1);plot(n,m,'LineWidth',2);title('Message Signal');hold on; plot(n,c,'r','LineWidth',2);grid on;
subplot(3,1,2);plot(n,s,'LineWidth',2);title('Pulse Train');grid on; ylim([-0.2 1.2]);
subplot(3,1,3);plot(n,ppm,'LineWidth',2);title('PPM Signal'); grid on; ylim([-0.2 1.2]);

output image:

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.