ПКвИС отчет 7 лабораторная
.docxФЕДЕРАЛЬНОЕ АГЕНСТВО СВЯЗИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М. А. БОНЧ-БРУЕВИЧА
Кафедра сетей связи и передачи данных
Отчет по лабораторной работе №7
«Моделирование кодов БЧХ с использованием системы Octave»
По дисциплине: «Помехоустойчивое кодирование в инфокоммуникационных системах»
Цель работы
Рассмотреть на примере и получить навыки в исследовании циклических кодов Боуза–Чоудхури–Хоквингема (БЧХ) с использованием системы компьютерной алгебры GNU/Octave.
Ход выполнения работы
>> n = 15
n = 15
>> k = 5
k = 5
>> [g,minpol,c] = bchpoly (n,k)
g =
1 1 1 0 1 1 0 0 1 0 1
minpol =
1 1 0 0 1
1 1 1 1 1
1 1 1 0 0
c =
{
[1,1] =
GF(2^4) array. Primitive Polynomial = D^4+D+1 (decimal 19)
Array elements =
1
[1,2] =
GF(2^4) array. Primitive Polynomial = D^4+D+1 (decimal 19)
Array elements =
2 3 4 5
[1,3] =
GF(2^4) array. Primitive Polynomial = D^4+D+1 (decimal 19)
Array elements =
8 10 12 15
[1,4] =
GF(2^4) array. Primitive Polynomial = D^4+D+1 (decimal 19)
Array elements =
6 7
[1,5] =
GF(2^4) array. Primitive Polynomial = D^4+D+1 (decimal 19)
Array elements =
9 11 13 14
}
>> de2bi(127)
ans =
1 1 1 1 1 1 1
>> Msg = [1 1 1 1 1]
Msg =
1 1 1 1 1
>> Menc = bchenco (Msg,n,k)
Menc =
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
>> Menc = encode (Msg,n,k,"bch")'
Menc =
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
>> Err = [0 1 0 0 0 0 0 0 1 0 0 0 0 0 0]
Err =
0 1 0 0 0 0 0 0 1 0 0 0 0 0 0
>> Merr = xor (Menc,Err)
Merr =
1 0 1 1 1 1 1 1 0 1 1 1 1 1 1
>> Mdec = decode (Merr,n,k,"bch")'
Mdec =
1 1 1 1 1
>> Mdec = bchdeco (Merr,k,3)
Mdec =
1 1 1 1 1
Сравнение по методу Монте-Карло вероятностных характеристик двух кодов БЧХ с разной избыточностью.
n1 =63;
k1 =45;
n2 =15;
k2 =7;
%
s1 = sprintf (" BCH code (%d ,%d)",n1 , k1 ) ;
s2 = sprintf (" BCH code (%d ,%d)",n2 , k2 ) ;
s3 = sprintf (" Without coding ") ;
%
p0 =[1e-3 5e-3 1e-2 5e-2 1e-1];
stat = zeros (3 ,5) ;
%
msg1 = randi ([0 1] ,1e3 , k1 ) ;
msg2 = randi ([0 1] ,1e3 , k2 ) ;
%
menc1 = encode ( msg1 , n1 , k1 ,'bch') ;
menc2 = encode ( msg2 , n2 , k2 ,'bch') ;
%
for i =1:1:5
mrec1 = bsc ( menc1 , p0 ( i ) ) ;
mdec1 = decode ( mrec1 , n1 , k1 ,'bch') ;
[ num , rate ]= biterr ( msg1 , mdec1 ) ;
stat (1 , i ) = rate ;
mrec2 = bsc ( menc2 , p0 ( i ) ) ;
mdec2 = decode ( mrec2 , n2 , k2 ,'bch') ;
[ num , rate ]= biterr ( msg2 , mdec2 ) ;
stat (2 , i ) = rate ;
mrec3 = bsc ( msg1 , p0 ( i ) ) ;
[ num , rate ]= biterr ( msg1 , 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 ("BCH codes (%d ,%d) and (%d ,%d) in BSC channel",
n1 , k1 , n2 , k2 ) ) ;
xlabel (" BER in BSC channel , p0") ;
ylabel (" Error rate after decoding ") ;
legend ( s3 , s1 ,s2 ,0) ;
legend (" show ") ;
grid on ;
print ( mfig ,'-dpng ',sprintf ("bch -%d -% d_cycl -%d -% d_bsc_err - rate",n1 , k1 , n2 , k2 ) ) ;
stat =
Columns 1 through 3:
0.000000000000000e+00 0.000000000000000e+00 2.888888888888889e-04
0.000000000000000e+00 0.000000000000000e+00 2.857142857142857e-04
8.666666666666666e-04 4.888888888888889e-03 1.033333333333333e-02
Columns 4 and 5:
3.335555555555555e-02 1.014444444444444e-01
8.857142857142857e-03 4.714285714285715e-02
4.973333333333333e-02 1.003777777777778e-01
7.3.6.
Подобрать три кода БЧХ, обеспечивающих исправляющую способность не хуже заданной. Выбрать из них код с наименьшей избыточностью.
(Вариант 0)
Большей точностью к заданным значениям и наименьшей избыточностью обладает код (127,106).