Реферат: Двоичный циклический код Хэмминга
--PAGE_BREAK--Порядок расчета Рлс и пример расчета Рлс для циклического (n,k)–кода Хэмминга, обеспечивающего минимум разности Рдоп – Рлс(n,k):Произведем расчет для (18,13)-кода с d=3.
Для этого введем обозначения:
· Pбо– вероятность появления на выходе ДСК комбинации (n,k)-кода без ошибок при однократной передаче;
· Роо – вероятность появления на выходе ДСК комбинации (n,k)-кода с обнаруживаемыми ошибками при однократной передаче;
· Рно – вероятность появления на выходе ДСК комбинации (n,k)-кода с необнаруживаемыми ошибками при однократной передаче;
· Рi£vо– вероятность появления на выходе ДСК комбинации с ошибками кратности i£v;
· Рi>vо– вероятность появления на выходе ДСК комбинации с ошибками кратности i>v, которые расположены так, что обнаруживаются кодом;
· Рлс– вероятность появления на выходе СС с неограниченным числом переспросов ложного сообщения.
Найдем:
хэмминг код цикличный программа
Pбо = qn, где q=1-p;
Рi£vо =<img width=«106» height=«58» src=«ref-1_1662436692-461.coolpic» v:shapes="_x0000_i1027">, где v=d-1;
Роо = Рi£vо+ Рi>vо;
Рно £1- Pбо — Рi£vо;
Рлс = Рно/(1- Роо).
Пример:
Pбо = qn=0,999418=0,98925490, где q=1-p=0,9994;
Рi£vо =<img width=«103» height=«58» src=«ref-1_1662437153-457.coolpic» v:shapes="_x0000_i1028">=<img width=«74» height=«32» src=«ref-1_1662437610-213.coolpic» v:shapes="_x0000_i1029">+<img width=«75» height=«32» src=«ref-1_1662437823-220.coolpic» v:shapes="_x0000_i1030">=
18*0,0006*0,98984881+153*0,00000036*0,99044307=0,01074492, где v=d-1=2;
Роо = Рi£vо+ Рi>vо= 0,01074492;
Рно £1- Pбо — Рi£vо=1-0,98925490-0,01074492=0,00000018;
Рлс = Рно/(1- Роо)=0,00000018/(1-0,01074492)=0,00000018.
Структурная схема алгоритма расчета кода, ее описание
<img width=«589» height=«829» src=«ref-1_1662438043-64362.coolpic» v:shapes="_x0000_i1031">
<img width=«621» height=«891» src=«ref-1_1662502405-96447.coolpic» v:shapes="_x0000_i1032">
Описание алгоритма:
1) Начало;
2) Объявляем P = 0.0006, Pdop=0.0000002, i=0, k, Pbo, Poo, Pno, Pls, lgPls, h=0, M[61], H[], d=3;
3) Вручную меняем d(по умолчанию d=3);
4) Если d=2, то i=11, иначе переходим к шагу 7;
5) Еслиi<=31, тоPbo=(1-P)^i, Poo=0, Poo=(C )*(P^1)*(1-P)^(i-1),
Pno=1-Pbo-Poo, Pls=Pno/(1-Poo), lgPls=log10(Pls),
M[i-11]=(Pdop-Pls), i=i+1, переходим к шагу 5, иначе переходим к шагу 35;
6) Выводим Pbo, Poo, Pno, Pls, lgPls, переходим к шагу 5;
7) Если d=3, то i=11, иначе переходим к шагу 21;
8) Если i<=15, то Pbo=(1-P)^i, Poo=0, k=1, иначе переходим к шагу 14;
9) Выводим Pbo;
10) Если k<=2, то Poo=<img width=«107» height=«58» src=«ref-1_1662598852-465.coolpic» v:shapes="_x0000_i1033">, иначе переходим к шагу 12;
11) k=k+1, переходим к шагу 10;
12) Pno=1-Pbo-Poo, Pls=Pno/(1-Poo), lgPls=log10(Pls),
M[i+10]=(Pdop-Pls), i=i+1;
13) Выводим Poo, Pno, Pls, lgPls, переходим к шагу 8;
14) i=17;
15) Если i<=31, то Pbo=(1-P)^i, Poo=0, k=1, иначе переходим к шагу 35;
16) Выводим Pbo;
17) Если k<=2, то Poo=<img width=«107» height=«58» src=«ref-1_1662598852-465.coolpic» v:shapes="_x0000_i1034">, иначе переходим к шагу 19;
18) k=k+1, переходим к шагу 17;
19) Pno=1-Pbo-Poo, Pls=Pno/(1-Poo), lgPls=log10(Pls),
M[i+10]=(Pdop-Pls), i=i+1;
20) Выводим Poo, Pno, Pls, lgPls, переходим к шагу 15;
21) Если d=4, то i=11, иначе переходим к шагу 35;
22) Если i<=15, то Pbo=(1-P)^i, Poo=0, k=1, иначе переходим к шагу 28;
23) Выводим Pbo;
24) Если k<=3, то Poo=<img width=«107» height=«58» src=«ref-1_1662599782-462.coolpic» v:shapes="_x0000_i1035">, иначе переходим к шагу 26;
25) k=k+1, переходим к шагу 24;
26) Pno=1-Pbo-Poo, Pls=Pno/(1-Poo), lgPls=log10(Pls),
M[i+10]=(Pdop-Pls), i=i+1;
27) Выводим Poo, Pno, Pls, lgPls, переходим к шагу 22;
28) i=17;
29) Если i<=31, то Pbo=(1-P)^i, Poo=0, k=1, иначе переходим к шагу 35;
30) Выводим Pbo;
31) Если k<=3, то Poo=<img width=«107» height=«58» src=«ref-1_1662599782-462.coolpic» v:shapes="_x0000_i1036">, иначе переходим к шагу 33;
32) k=k+1, переходим к шагу 31;
33) Pno=1-Pbo-Poo, Pls=Pno/(1-Poo), lgPls=log10(Pls),
M[i+10]=(Pdop-Pls), i=i+1;
34) Выводим Poo, Pno, Pls, lgPls, переходим к шагу 29;
35) h=0, i=0;
36) Если i<=60, то переходим к шагу 37, иначе переходим к шагу 38;
37) Если M[i]>0, то h=h+1, i=i+1, иначе i=i+1 и переходим к шагу 36;
38) Выделяем память под массив Н из hэлементов.
39) Если i<=60, то переходим к шагу 40, иначе переходим к шагу 41;
40) Если M[i]>0, то H[k]=M[i], k=k+1, i=i+1, иначе i=i+1 и переходим к шагу 39;
41) i=0;
42) Ищем минимальный элемент в массиве Н;
43) Если i<=60, то переходим к шагу 44, иначе переходим к шагу 50;
44) Если M[i]=минимальному элементу, то и переходим к шагу 45, иначе i=i+1 и переходим к шагу 43;
45) Если i>=0 и i<=20, то выводим (i+11,i+10)-код, иначе переходим к шагу 46;
46) Если i>=21 и i<=25, то выводим (i-10,i-14)-код, иначе переходим к шагу 47;
47) Если i>=26 и i<=40, то выводим (i-9,i-14)-код, иначе переходим к шагу 48;
48) Если i>=41 и i<=45, то выводим (i-30,i-35)-код, иначе переходим к шагу 49;
49) Если i>=46 и i<=60, то выводим (i-29,i-35)-код, иначе i=i+1 и переходим к шагу 39;
50) Выводим минимальный элемент из массива Н, как минимум разницы Рдоп-Рлс;
51) Конец.
продолжение
--PAGE_BREAK--
еще рефераты
Еще работы по коммуникациям
Реферат по коммуникациям
Синтезирование управляющего автомата
2 Сентября 2013
Реферат по коммуникациям
Цифровые фотоаппараты 2
2 Сентября 2013
Реферат по коммуникациям
Разработка устройства логического управления
2 Сентября 2013
Реферат по коммуникациям
Защита салона автомобиля от съема информации
2 Сентября 2013