Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2Goga

.docx
Скачиваний:
23
Добавлен:
17.03.2016
Размер:
54.66 Кб
Скачать

Национальный технический университет Украины

«Киевский политехнический институт»

Институт телекоммуникационных систем

Дисциплина «Программные средства в телекоммуникационных системах2»

Лабораторная работа №2

Моделирование цифровых каналов передачи информации в Matlab. Помехоустойчивое кодирование с прямой коррекцией ошибок.

Выполнил: студент группы TС-11

Георгин Дмитрий

(ФИО)

Проверил: ст.преподаватель

_______________ Кайденко Н.Н.

«_____»_______________2013г.

Киев 2013

Лабораторная работа 2

Моделирование цифровых каналов передачи информации в Matlab. Помехоустойчивое кодирование с прямой коррекцией ошибок.

1 Цель работы

Целью работы является приобретение навыков построения моделей цифровых каналов передачи информации в среде MatLab.

2 Состав рабочего места

2.1 Оборудование: IBM-совместимый персональный компьютер (ПК).

2.2 Программное обеспечение: операционная система WindowsХРи выше, система MatLab версии R2006a и выше.

3 Краткие теоретические сведения

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

Теоретические сведения по используемым функциям в данной лабораторной работе приведены в лекции 3.

4 Порядок выполнения работы

4.1 В модели канала передачи информации используются созданные в лабораторной работе №1 скрипт-файлы и файл-функции.

4.2 Создать файл-функции, реализующие кодер сверточного кода и декодер сверточного кода, работающий по алгоритму Витерби. Возможно создание одной файл-функции.

4.3 Добавить в модель канала передачи информации функции помехоустойчивого кодирования (перед модулятором и после демодулятора). Параметры кода: сверточный код - перфорированный на основе порождающего многочлена [171 133], начальная задержка кодера - 7, количество путей декодера Витерби (traceback) – 5, векторы пунктурирования [1 0 1 1] для скорости 2/3; [1 0 1 1 1 0 ] для скорости ¾. Остальные параметры согласно варианта задания из таблицы 1. Тип декодера для всех вариантов с «жесткими решениями».

4.4 Провести моделирование канала передачи информации в диапазоне значений отношения сигнал/шум, получить характеристику помехоустойчивости в диапазоне значенийBER 10-2-10-5. Сравнить полученную характеристику с теоретической и с характеристикой для канала без помехоустойчивого кодирования.

4.5 Создать файл-функции, реализующие кодер Рида-Соломона и декодер Рида-Соломона.

4.6 Модернизировать скрипт-файл модели канала для работы с пакетами данных. Длина пакета определяется параметрами кода Рида-Соломона.

4.7 Добавить в модель канала передачи информации функции помехоустойчивого кодирования кодом Рида-Соломона, (перед кодером сверточного кода и после декодера Витерби). Параметры кода: Рида-Соломона перфорированный на основе систематического кода (255,239,16), остальные параметры согласно таблице 1.

4.8 Провести моделирование канала передачи информации для фиксированного отношения сигнал/шум, результатом моделирования должен быть коэффициент битовых ошибок (BER). Сравнить полученную характеристику с полученными ранее характеристиками помехоустойчивости.

Таблица 1 – Варианты заданий.

Тип

модуляции

Отобра-жение

Рекомендуемые

Функции Матлаб, класс modem

Скорость

СК

Код РС

5

8-PSK

binary

pskmod, pskdemod

2/3

(128,112,16)

clear all

M=8;

InputRandData = randint(10000,1,M); %Матриця- рядок випадкових чисел довжиною 10000 біт %

punc23=[1 0 1 1 ]; % Вектор пунктування 2/3 (1101)%

msg = randint(300000,1,2); %випадкові дані %

msg=InputRandData;

L_c=length(msg)

% модулювання завадостійкості %

N_bit=1e3;

% Для профіля 3 згідно стандарта IEEE 802.16-2009 %

L_block=112; % Кількість кодованих байт %

T_block=16; % Кількість байт провірочних символів %

L_block_b=L_block*8;

N_block=fix(N_bit/(L_block_b));

Data_in=randint(N_bit,1);

tic

% Формування матриці вхідних даних , розбитих на блоки %

for i=1:N_block

Data_block(i,:)=Data_in((i-1)*L_block_b+1:i*L_block_b);

end

% Перетворення із бітового формата в байтовий %

n=1;

while n<=N_block

for i=1:L_block

Data_blockB(n,i)=bi2de(Data_block(n,(8*(i-1)+1):8*i),'left-msb');

end

n=n+1;

end

% Кодуванняе кодом Ріда-Соломона

% Систематичний код RS (255,239,8) у відповідності з IEEE 802.16-2009 %

RS_enc_obj = fec.rsenc(255,239); % Систематичний код РС %

RS_enc_Short = copy(RS_enc_obj);

RS_enc_Short.ShortenedLength=239-L_block; % Укорочення кода

RS_enc_Short.PuncturePattern(T_block+1:end)=0; % Перфоріровання по масці %

RS_enc_SP=encode(RS_enc_Short,Data_blockB'); % Кодування %

%переиворення із байтів в біти %

RS_enc_SP_b=de2bi(RS_enc_SP);

%%%Модуляція %%%

M_PSK=functmod(M,RS_enc_SP_b);

% Адитивный білий гаусовий шум %

EbNo=3;%відношення сигнал/шум

k=log2(M);

PSK_sh=awgn(M_PSK,EbNo+10*log10(k)-10*log10(1));

%Демодуляцsія

DEM_PSK=functdemod(M,PSK_sh);

DEM_PSK_B=bi2de(DEM_PSK);

% Декодування з використанням обєктів Matlab R.2008a

RS_dec_obj = fec.rsdec(RS_enc_Short); % Обєкт декодер

[RS_dec_SP,cnumerr] = decode(RS_dec_obj,DEM_PSK_B); % Декодування %

ck_d = isequal(RS_dec_SP,Data_blockB') % Првірка правильності декодування %

disp=(ck_d)

%%% Підрахунок коефіцієнта помилок %%%

[number,ratio]=biterr(Data_blockB',RS_dec_SP)

%%%%%Теоретичний Bit Error Rate

Ber_t=berawgn(EbNo,'psk',M,'nondif');

результат:

L_c =

10000

ck_d =

0

disp =

0

number =

26

ratio =

0.0290

clear all

M=8;

InputRandData = randint(10000,1,M); %Матриця- рядок випадкових чисел довжиною 10000 біт %

punc23=[1 0 1 1 ]; % Вектор пунктування 2/3 (1101)%

msg = randint(300000,1,2); %випадкові дані %

L_c=length(msg)

%Кодер%

tr_st = poly2trellis(7, [171 133]); %визначення треліс структури, затримка-7

code = convenc(msg,tr_st);

coded_word=convenc(msg,tr_st,punc23);

L_cp=length(coded_word)

C_Rate=L_c/L_cp

%Модуляция%

M_PSK=functmod(M,coded_word);

scatterplot(M_PSK);grid % Побудова графіка модуляції %

% Аддитивнийбілий гаусовий шум %

EbNo=6;%Отношение сигнал/шум

k=log2(M);

PSK_sh=awgn(M_PSK,EbNo+10*log10(k)-10*log10(1));

scatterplot(PSK_sh);grid

%Демодуляция%

DEM_PSK=functdemod(M,PSK_sh);

scatterplot(DEM_PSK);grid % Побудова графіка демодуляції %

%Декодер%

tblen = 5; % traceback

decoded_word =vitdec(coded_word,tr_st, tblen, 'trunc','hard',punc23);

[N_err, ber] =biterr(decoded_word,msg)

%Підрахунок коефіцієнта помилок%

%[number,ratio]=biterr(InputRandData,decoded_word);

disp([N_err, ber])

%Теоретичний Bit Error Rate%

Ber_t=berawgn(EbNo,'psk',M,'nondif');

%bertool%

disp('Получено Отпротправленно')

disp([msg,decoded_word])

результат:

Получено Отпротправленно

0 0

0 0

1 1

0 0

1 1

1 1

1 1

0 0

1 1

0 0

1 1

0 0

0 0

0 0

0 0

0 0

1 1

0 0

1 1

0 0

0 0

1 1

0 0

0 0

0 0

1 1

1 1

1 1

0 0

0 0

0 0

1 1

1 1

0 0

0 0

1 1

0 0

1 1

0 0

1 1

0 0

1 1

0 0

1 1

0 0

1 1

1 1

1 1

0 0

0 0

0 0

0 0

1 1

1 1

1 1

1 1

0 0

1 1

0 0

1 1

Вывод

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]