Скачиваний:
13
Добавлен:
03.10.2022
Размер:
105.05 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНСТВО СВЯЗИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М. А. БОНЧ-БРУЕВИЧА

Кафедра сетей связи и передачи данных

Отчет по лабораторной работе №6

«Моделирование циклических кодов с использованием системы Octave»

По дисциплине: «Помехоустойчивое кодирование в инфокоммуникационных системах»

Цель работы

  • Рассмотреть на примере и получить навыки в исследовании циклических кодов с использованием системы компьютерной алгебры GNU/Octave.

Ход выполнения работы

>> p = cyclpoly (16,11)

p =

1 1 0 0 0 1

>> n = 16

n = 16

>> k = 11

k = 11

>> [H,G] = cyclgen (n,p)

H =

1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1

0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1

0 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1

0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 1

0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0

G =

1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0

0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0

0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0

0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0

1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0

1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0

0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0

0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0

1 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0

0 1 1 0 1 0 0 0 0 0 0 0 0 0 1 0

1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1

>> Msg = [0 1 0 1 0 0 1 1 0 1 1]

Msg =

0 1 0 1 0 0 1 1 0 1 1

>> Menc = encode (Msg,n,k,"cyclic")'

Menc =

1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1

>> G2 = gf(G,1,3);

>> Msg2 = gf (Msg,1,3);

>> Menc2 = Msg2*G2

Menc2 =

GF(2) array.

Array elements =

1 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1

>> Err1 = [0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0]

Err1 =

0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0

>> Merr1 = xor(Menc, Err1)

Merr1 =

1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1

>> Mdec = decode (Merr1,n,k,"cyclic")'

Mdec =

0 1 0 1 0 0 1 1 0 1 1

>> Err2 = [0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0]

Err2 =

0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0

>> Merr2 = xor(Menc, Err2)

Merr2 =

1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 1

>> Mdec2 = decode (Merr2,n,k,"cyclic")'

Mdec2 =

0 1 1 1 0 1 1 1 0 1 1

>> Err3 = [0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0]

Err3 =

0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0

>> Merr3 = xor(Menc, Err3)

Merr3 =

1 0 0 0 1 0 0 0 1 0 1 1 1 0 1 1

>> Mdec3 = decode (Merr3,n,k,"cyclic")'

Mdec3 =

0 0 0 1 0 1 1 1 1 1 1

Сравнение по методу Монте-Карло вероятностных характеристик двух циклических кодов с разной избыточностью.

n1 =16;

n2 =23;

k =11;

%

s1 = sprintf (" Cyclic code (%d ,%d)",n1 , k) ;

s2 = sprintf (" Cyclic code (%d ,%d)",n2 , k) ;

s3 = sprintf (" Without coding ") ;

%

p0 =[1e-3 5e-3 1e-2 5e-2 1e-1];

stat = zeros (3,5) ;

%

msg = randi ([0 1],1e5,k ) ;

%

menc1 = encode ( msg , n1 ,k ,'cyclic') ;

menc2 = encode ( msg , n2 ,k ,'cyclic') ;

%

for i =1:1:5

mrec1 = bsc ( menc1 , p0 ( i ) ) ;

mdec1 = decode ( mrec1 , n1 ,k ,'cyclic') ;

[ num , rate ]= biterr ( msg , mdec1 ) ;

stat (1 , i ) = rate ;

mrec2 = bsc ( menc2 , p0 ( i ) ) ;

mdec2 = decode ( mrec2 , n2 ,k ,'cyclic') ;

[ num , rate ]= biterr ( msg , mdec2 ) ;

stat (2 , i ) = rate ;

mrec3 = bsc ( msg , p0 ( i ) ) ;

[ num , rate ]= biterr ( msg , mrec3 ) ;

stat (3 , i ) = rate ;

end

%

format long ;

%

stat

%

mfig = figure ;

L3 = loglog ( p0 , stat (3 ,:) );

set ( L3 ,'LineWidth' ,3,'Color',"r");

hold on ;

L1 = loglog ( p0 , stat (1 ,:) );

set ( L1 ,'LineWidth' ,1,'Color','k');

hold on ;

L2 = loglog ( p0 , stat (2 ,:) );

set ( L2 ,'LineWidth',3,'Color','b');

hold on ;

title ( sprintf (" Cyclic codes (%d ,% d) and (%d ,% d) in BSCchannel",n1 ,k ,n2 , k ) ) ;

xlabel (" BER in BSC channel , p0") ;

ylabel (" Error rate after decoding ") ;

legend ( s3 , s1 , s2 ,0) ;

legend ('show') ;

grid on ;

print ( mfig ,'-dpng ',sprintf ("cycl -%d -% d_cycl -%d -% d_bsc_err -rate ",n1 ,k , n2 , k ) ) ;

stat =

Columns 1 through 3:

1.000000000000000e-05 5.218181818181819e-04 2.041818181818182e-03

0.000000000000000e+00 0.000000000000000e+00 2.000000000000000e-05

9.936363636363636e-04 5.021818181818182e-03 1.008000000000000e-02

Columns 4 and 5:

3.687636363636364e-02 1.029554545454545e-01

7.184545454545455e-03 5.516454545454545e-02

5.025272727272728e-02 1.001609090909091e-01