Why it shows error (NRZ encoder) : "Vectors must be the same lengths in plot(t,s)."
Show older comments
% Performs NRZI encoding on a bit string. It assumes each signal element
% is 0.5 sec giving 2 bps data rate.
clear;
bits=[1 1 1 1 1 1 1 1 1 1 1]; % input string
numOfBits = length(bits); % store no of bits in string
sampTime = 0.001; % sample time
endTime = numOfBits-sampTime; % required end time for given bit string
t=0:sampTime:10; % x-axis
done=0; % flag to assist in voltage inversion
j = 1; bit = 1;
prevVol = -1; % initial voltage (-ve)
for i = 0:sampTime:endTime
if(floor(i)+1 ~= bit)
% checks whether in the same bit
bit = bit + 1;
done = 0;
end;
if(bits(bit) == 0)
% Maintains voltage for bit 0
s(j) = prevVol;
else
if(~done)
% Inverts voltage for bit 1
s(j) = -1*prevVol;
prevVol = s(j);
done = 1;
j = j + 1;
continue;
end;
s(j) = s(j-1); % Maintains voltage for a signal element
end;
j = j + 1;
end;
% plots the signal
plot(t,s);
axis([0 numOfBits -3 3]);
xlabel('Time (s)');
ylabel('Voltage');
Accepted Answer
More Answers (0)
Categories
Find more on MATLAB in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!