
ПКвИС отчет 8 лабораторная
.docxФЕДЕРАЛЬНОЕ АГЕНСТВО СВЯЗИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М. А. БОНЧ-БРУЕВИЧА
Кафедра сетей связи и передачи данных
Отчет по лабораторной работе №8
«Моделирование кодов Рида–Соломона в системе Octave»
По дисциплине: «Помехоустойчивое кодирование в инфокоммуникационных системах»
Цель работы
Рассмотреть на примере и получить навыки в исследовании недвоичных циклических кодов Рида–Соломона с использованием системы компьютерной алгебры CNU/Octave.
Ход выполнения работы
8.3.1 Для (n,k)-кода РС (15,9) определить образующий полином
g(15,9) (x) и количество исправляемых кодом ошибок.
>> n = 15;
>> k = 9;
>> [g,t] = rsgenpoly (n,k)
g =
GF(2^4) array. Primitive Polynomial = D^4+D+1 (decimal 19)
Array elements =
1 7 9 3 12 10 12
t = 3
8.3.2. Сформировать по номеру студенческого (зачетной книжки) информационный полином Msg для заданного в предыдущем пункте кода. Считать, что каждая цифра номера — это элемент поля Галуа, над которым строится код. Недостающую длину дополнить нулями.
>> Msg = gf([0 0 1 8 0 5 0 9 0],4,19)
Msg =
GF(2^4) array. Primitive Polynomial = D^4+D+1 (decimal 19)
Array elements =
0 0 1 8 0 5 0 9 0
8.3.3. Закодировать полученный в предыдущем пункте информационный вектор при помощи встроенных функций Octave.
>> Menc = rsenc (Msg,n,k)
Menc =
GF(2^4) array. Primitive Polynomial = D^4+D+1 (decimal 19)
Array elements =
0 0 1 8 0 5 0 9 0 12 4 8 9 4 10
8.3.4. Наложить на полученную в предыдущем пункте кодовую комбинацию Menc кода РС двукратную ошибку и декодировать комбинацию.
>> Err = gf (zeros(1,15),4,19)
Err =
GF(2^4) array. Primitive Polynomial = D^4+D+1 (decimal 19)
Array elements =
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
>> Err(9) = 9;
>> Err(5) = 5;
>> Err
Err =
GF(2^4) array. Primitive Polynomial = D^4+D+1 (decimal 19)
Array elements =
0 0 0 0 5 0 0 0 9 0 0 0 0 0 0
>> Merr = Menc+Err
Merr =
GF(2^4) array. Primitive Polynomial = D^4+D+1 (decimal 19)
Array elements =
0 0 1 8 5 5 0 9 9 12 4 8 9 4 10
>> Mdec = rsdec (Merr,n,k)
Mdec =
GF(2^4) array. Primitive Polynomial = D^4+D+1 (decimal 19)
Array elements =
0 0 1 8 0 5 0 9 0
Вычисление по методу Монте-Карло вероятностных характеристик кода РС.
pkg load communications
close all;
clear all;
n1 =15;
k1 =9;
%
s1 = sprintf (" RS code (%d ,%d)",n1 , k1 ) ;
s3 = sprintf (" Without coding ") ;
%
p0 =[1e-3 5e-3 1e-2 5e-2 1e-1];
stat = zeros (4 ,5) ;
N=10000;
%
for i =1:1:5
data=randi([0 15],N,k1);
cod=rsenc(gf(data,4,19),n1,k1);
%
binData = de2bi(data);
mrec1 = bsc (binData,p0(i));
decMrec1 = reshape(bi2de(mrec1),N,k1);
[ num , rate ]= symerr ( data , decMrec1 );
stat (1 , i ) = rate ;
[ num , rate ]= biterr ( binData , de2bi(decMrec1) );
stat (2 , i ) = rate ;
%
binCod = de2bi(cod.x);
mrec2 = bsc (binCod,p0(i));
decMrec2 = reshape(bi2de(mrec2),N,n1);
mdec2 = rsdec (gf(decMrec2,4,19), n1 , k1);
[ num , rate ]= symerr ( data , mdec2.x );
stat (3 , i ) = rate ;
[ num , rate ]= biterr ( binData , de2bi(mdec2.x) );
stat (4 , i ) = rate ;
end
%
format long ;
%
stat
%
mfig = figure ;
L1 = loglog (p0 , stat (1 ,:) );
set ( L1 ,'LineWidth' ,3 ,'Color','r');
hold on ;
L2 = loglog (p0 , stat (3,:) );
set ( L2 ,'LineWidth' ,1 ,'Color','k');
hold on ;
hold on ;
title ( sprintf ("RS code (%d ,%d) in BSC channel",n1 , k1 ) ) ;
xlabel (" BER in BSC channel , p0") ;
ylabel (" Symbol Error rate after decoding ") ;
legend ( s3 , s1 ,0) ;
legend (" show ") ;
grid on ;
%
mfig = figure ;
L3 = loglog (p0 , stat (2 ,:) );
set ( L3 ,'LineWidth' ,3 ,'Color','r');
hold on ;
L4 = loglog (p0 , stat (4,:) );
set ( L4 ,'LineWidth' ,1 ,'Color','k');
hold on ;
hold on ;
title ( sprintf ("RS code (%d ,%d) in BSC channel",n1 , k1 ) ) ;
xlabel (" BER in BSC channel , p0") ;
ylabel (" bit Error rate after decoding ") ;
legend ( s3 , s1 ,0) ;
legend (" show ") ;
grid on ;
stat =
Columns 1 through 3:
3.911111111111112e-03 1.993333333333333e-02 3.982222222222222e-02
9.777777777777777e-04 5.013888888888889e-03 1.011388888888889e-02
0.000000000000000e+00 7.777777777777778e-05 6.666666666666666e-04
0.000000000000000e+00 1.944444444444445e-05 1.750000000000000e-04
Columns 4 and 5:
1.845000000000000e-01 3.463000000000000e-01
4.966666666666666e-02 1.004722222222222e-01
9.293333333333334e-02 3.208666666666666e-01
2.634166666666667e-02 9.696666666666667e-02