Я относительно новичок в MATLAB и самообучении. Я пытаюсь выполнить симуляцию спутниковой передачи и повторной передачи на Matlab через селективный повтор ARQ. Проблема с кодом в том. когда я ввожу длину последовательности данных и количество пакетов после запуска кода.
Я получаю сообщение об ошибке для строки 11: a = x (i, j); для определенных значений длины последовательности данных и количества пакетов.
И если я переключаю значения, я получаю сообщение об ошибке для строки 15: pac (i,:) = [x (i, :), p (i)];
Как я могу решить эту проблему получения ошибок из-за кода? когда через исследование я обнаружил, что это правильный путь для написания?
% program for protocol analysis
clc; close all;
n=input('Enter the data sequence length');
m=input('Enter the number of packets ');
x=randi(m,n);
% make packet
p=zeros(1,m);
for i=1:m
for j=1:n
a=x(i,j);
b=p(i);
p(i)=bitxor(a,b);
end
pac(i,:)=[x(i,:),p(i)];
subplot(m,1,i); stem(pac(i,:));
end
xlabel('Transmitted Data,last bit is the parity bit');
% send first group of packets
% send packets
figure
ba=m/8;
for k=1:m
% for l=1:8
% g=l*k;
data(k,:)=bsc(pac(k,:),.1);
subplot(m,1,k); stem(data(k,:));
% end
end
xlabel('Recieved Data,last bit is the parity bit');
figure
err = 1;
erf=1;
while (err~=0)
do=data(:,n+1)';
err=bitxor(p,do);
stem(err);
display(err);
('displaying retransmitted packets');
for i=1:m
if err(1,i)== 1
display(err);
('error detected in packet no:');(i);
% figure
for j=i:m
data(j,:)=bsc(pac(j,:),.1);
% subplot(m,1,j);stem(data(j,:));
end
end
do=data(:,n+1)';
err=bitxor(p,do);
end
end
% figure
% for g=1:m
% subplot(m,1,g);stem(data(g,:));
% end
% xlabel('Finally Received data after retransmission, last bit is the parity bit');