Скачиваний:
6
Добавлен:
17.06.2023
Размер:
4.24 Кб
Скачать
pkg load communications
N = 4; % Номер варианта
p = (40-N)/100; % Вероятность ошибки в канале
L = [100, 500, 1e3, 5e3, 1e4, 5e4, 1e5]; % Размер массива данных
% Статистика (5 строк экспериментальных значений, мат. ожидание, СКО)
stat = zeros(7, length(L));
% Основной цикл
for i=1:1:length(L)
d = randint(1,L(i));
% 5 экспериментов
for j=1:1:5
[a stat(j, i)] = biterr(d, bsc(d, p));
endfor
% Вычисление среднего
stat(6,i) = mean(stat(1:5,i));
stat(7,i) = std(stat(1:5,i));
endfor
% Построение графиков
h = semilogx(L,stat(1:5,:),"b",L,stat(6,:),"r",L,stat(7,:),"g");
grid;
legend ([h(1), h(6), h(7)], {"experiments", "mean", "std"}, "location", "northeast");
xlim([L(1) L(length(L))]);
title("IKTU-98 Boyko, Amosova");
xlabel('Array Size');
ylabel('Error probability');

--------------------------------------------------

pkg load communications
function OUT = MyBSC(IN, P)
OUT = xor(IN, rand(size(IN)) <= P);
endfunction

p = [1e-4 5e-4 1e-3 5e-3 1e-2 5e-2 1e-1]; % Вероятности ошибки
d = randint(1, 1e5); % Массив данных для передачи через каналы
% Массивы статистики (5 строк экспериментальных значений и среднее)
statBSC = zeros(6, length(p));
statMyBSC = zeros(6, length(p));
% Основной цикл
for i=1:1:length(p)
% 5 экспериментов
for j=1:1:5
[a statBSC(j, i)] = biterr(d, bsc(d, p(i)));
[a statMyBSC(j, i)] = biterr(d, MyBSC(d, p(i)));
endfor
% Вычисление среднего
statBSC(6,i) = mean(statBSC(1:5,i));
statMyBSC(6,i) = mean(statMyBSC(1:5,i));
endfor
% Построение графиков
subplot(1, 2, 1);
h = loglog(p(:),statBSC(1:5,:),"b",p,statBSC(6,:),"r");
grid;
legend ([h(1), h(6)], {"experiments", "mean"}, "location", "northeast");
title("Octave BSC IKTU-98 Boyko, Amosova");
xlabel('Given probability');
ylabel('Experimental probability');
subplot(1, 2, 2);
h = loglog(p(:),statMyBSC(1:5,:),"b",p,statMyBSC(6,:),"r");
grid;
legend ([h(1), h(6)], {"experiments", "mean"}, "location", "northeast");
title("My BSC IKTU-98 Boyko, Amosova");
xlabel('Given probability');
ylabel('Experimental probability');

--------------------------------------------------------------------------------------

pkg load communications
function OUT = ZC(IN, P)
OUT = and(IN, rand(size(IN)) > P);
endfunction

p = [1e-4 5e-4 1e-3 5e-3 1e-2 5e-2 1e-1]; % Вероятности ошибки
d1 = randint(1,1e5);
d2 = zeros(1,1e5);
d3 = ones(1,1e5);
% Массивы статистики (5 строк экспериментальных значений и среднее)
statForRandint = zeros(6, length(p));
statForZeros = zeros(6, length(p));
statForOnes = zeros(6, length(p));
% Основной цикл
for i=1:1:length(p)
% 5 экспериментов
for j=1:1:5
[a statForRandint(j, i)] = biterr(d1, ZC(d1, p(i)));
[a statForZeros(j, i)] = biterr(d2, ZC(d2, p(i)));
[a statForOnes(j, i)] = biterr(d3, ZC(d3, p(i)));
endfor
% Вычисление среднего
statForRandint(6,i) = mean(statForRandint(1:5,i));
statForZeros(6,i) = mean(statForZeros(1:5,i));
statForOnes(6,i) = mean(statForOnes(1:5,i));
endfor
% Построение графиков
subplot(2, 3, 1);
h = semilogx(p(:),statForRandint(1:5,:),"b",p,statForRandint(6,:),"r");
grid;
legend ([h(1), h(6)], {"experiments", "mean"}, "location", "northeast");
title("ZCH random value IKTU-98 Boyko, Amosova");
xlabel('Given probability');
ylabel('Experimental probability');
subplot(2, 3, 2);
h = semilogx(p(:),statForZeros(1:5,:),"b",p,statForZeros(6,:),"r");
grid;
legend ([h(1), h(6)], {"experiments", "mean"}, "location", "northeast");
title("ZCH zeros IKTU-98 Boyko, Amosova");
xlabel('Given probability');
ylabel('Experimental probability');
subplot(2, 3, 3);
h = semilogx(p(:),statForOnes(1:5,:),"b",p,statForOnes(6,:),"r");
grid;
legend ([h(1), h(6)], {"experiments", "mean"}, "location", "northeast");
title("ZCH ones IKTU-98 Boyko, Amosova");
xlabel('Given probability');
ylabel('Experimental probability');
subplot(2, 3, 4:6);
h = semilogx(p(:),statForRandint(6,:),"r",p(:),statForZeros(6,:),"b",p(:),statForOnes(6,:),"g");
grid;
legend ({"mean for random values array", "mean for zeros array", "mean for ones array"}, "location", "northeast");
title("ZCH ones IKTU-98 Boyko, Amosova");
xlabel('Given probability');
ylabel('Experimental probability');



Соседние файлы в папке лабы