line_coding
line_coding
bitrate = 1;
T = length(data)/bitrate;
n = 1000;
N = n * length(data);
dt = T / N;
t = 0:dt:T;
% Unipolar NRZ
x_unipolar_nrz = zeros(1, length(t));
for i = 1:length(data)
if data(i) == 1
x_unipolar_nrz((i-1)*n+1:i*n) = 1;
end
end
% Unipolar RZ
x_unipolar_rz = zeros(1, length(t));
for i = 1:length(data)
if data(i) == 1
x_unipolar_rz((i-1)*n+1:(i-0.5)*n) = 1; % Return to zero in the middle
end
end
% Polar NRZ
x_polar_nrz = zeros(1, length(t));
for i = 1:length(data)
if data(i) == 1
x_polar_nrz((i-1)*n+1:i*n) = 1;
else
x_polar_nrz((i-1)*n+1:i*n) = -1;
end
end
% Polar RZ
x_polar_rz = zeros(1, length(t));
for i = 1:length(data)
if data(i) == 1
x_polar_rz((i-1)*n+1:(i-0.5)*n) = 1; % Positive pulse for 1
else
x_polar_rz((i-1)*n+1:(i-0.5)*n) = -1; % Negative pulse for 0
end
end
% Manchester
x_manchester = zeros(1, length(t));
for i = 1:length(data)
if data(i) == 1
x_manchester((i-1)*n+1:(i-0.5)*n) = 1;
x_manchester((i-0.5)*n+1:i*n) = -1;
else
x_manchester((i-1)*n+1:(i-0.5)*n) = -1;
x_manchester((i-0.5)*n+1:i*n) = 1;
end
end
% Differential Manchester
x_diff_manchester = zeros(1, length(t));
last = -1;
for i = 1:length(data)
if data(i) == 0
x_diff_manchester((i-1)*n+1:(i-0.5)*n) = last;
last = -last;
x_diff_manchester((i-0.5)*n+1:i*n) = last;
else
x_diff_manchester((i-1)*n+1:(i-0.5)*n) = -last;
x_diff_manchester((i-0.5)*n+1:i*n) = last;
end
end
% Bipolar AMI
x_bipolar_ami = zeros(1, length(t));
last = 1;
for i = 1:length(data)
if data(i) == 1
x_bipolar_ami((i-1)*n+1:i*n) = last;
last = -last;
end
end
subplot(3,1,1);
plot(t, x_unipolar_nrz, 'LineWidth', 2);
title('Unipolar NRZ');
xlabel('Time (s)');
ylabel('Amplitude');
axis([0 T -0.5 1.5]);
subplot(3,1,2);
plot(t, x_unipolar_rz, 'LineWidth', 2);
title('Unipolar RZ');
xlabel('Time (s)');
ylabel('Amplitude');
axis([0 T -0.5 1.5]);
subplot(3,1,3);
plot(t, x_polar_nrz, 'LineWidth', 2);
title('Polar NRZ');
xlabel('Time (s)');
ylabel('Amplitude');
axis([0 T -1.5 1.5]);
figure;
subplot(2,2,1);
plot(t, x_polar_rz, 'LineWidth', 2);
title('Polar RZ');
xlabel('Time (s)');
ylabel('Amplitude');
axis([0 T -1.5 1.5]);
subplot(2,2,2);
plot(t, x_manchester, 'LineWidth', 2);
title('Manchester');
xlabel('Time (s)');
ylabel('Amplitude');
axis([0 T -1.5 1.5]);
subplot(2,2,3);
plot(t, x_diff_manchester, 'LineWidth', 2);
title('Differential Manchester');
xlabel('Time (s)');
ylabel('Amplitude');
axis([0 T -1.5 1.5]);
subplot(2,2,4);
plot(t, x_bipolar_ami, 'LineWidth', 2);
title('Bipolar AMI');
xlabel('Time (s)');
ylabel('Amplitude');
axis([0 T -1.5 1.5]);
figure;
plot(t, x_m_ary, 'LineWidth', 2);
title('M-ary Encoding (M=4)');
xlabel('Time (s)');
ylabel('Amplitude');
axis([0 T -1.5 1.5]);