Файл: Кодирование и декодирование ЦСК.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 05.06.2019

Просмотров: 360

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Information vector – Информационный вектор, представляет собой информационную часть кодового вектора, длиной m.

Поле необходимо заполнять в формате [1 0 0 1 0]. Надо ввести передаваемый информационный вектор, число единиц и нулей должно соответствовать заданному в варианте числу информационных символов m. Не допускается ставить лишние пробелы между цифрами или писать слитно несколько цифр. Между каждыми двумя битами ставится строго один пробел.

Code vector length – Полная длина кодового вектора, равная n.

Error vector – Вектор ошибки. Напомним, что в векторе ошибки при аддитивной модели канала связи единицы ставятся в тех разрядах, где при передаче наличествует искажение. Т.е. в принимаемом векторе искажены будут те разряды (биты), где в соответствующих разрядах вектора ошибки установлены единицы.

Поле необходимо заполнять в формате [1 0 0 1 0]. Надо ввести вектор вносимой ошибки, число единиц и нулей должно соответствовать расчетной длине вектора n. Не допускается ставить лишние пробелы между цифрами или писать слитно несколько цифр. Между каждыми двумя битами ставится строго один пробел.

Закрыв окно генератора сигналов, вернемся к главному виду модели





3.3. Ознакомление с блоком просмотра временных диаграмм сигналов


Двойным щелчком на блоке Scope открывается окно временных диаграмм, представленное на рисунке 3.3. Данный блок необходим для просмотра временных диаграмм сигналов.

Отображаются временные диаграммы следующих сигналов (по порядку следования), контрольные точки снятия диаграмм можно проследить на структурной схеме (рис 3.1):

  • Таковой частоты

  • Информационного вектора

  • Полного передаваемого кодового вектора

  • Вектора ошибки

  • Полного принимаемого кодового вектора

  • Полного кодового вектора на выходе декодера


Рис 3.3. Временные диаграммы


Закрыв окно диаграмм, вернемся на главный вид модели.


4. Исследование принципов построения кодеров ЦСК с использованием модифицируемой базовой модели


При построении функциональной модели кодера ЦСК используется базовая функциональная модель в среде MATLAB, в которой модифицируются блоки с учетом индивидуального задания.

В данном пункте вам предстоит изменить структуру проекта (а вы не забыли сделать копию?) в соответствии с выбранным кодом. Требуется построить функциональную модель кодера ЦСК и убедиться в ее работоспособности.

Двойным щелчком на блоке Coder раскрывается подсистема кодера БЧХ кода:

Рис 4.1. Подсистема кодера


Подсистема кодера реализует кодирование информационного вектора U с использованием методики кодеров по g(x) циклических БЧХ кодов. Рассмотрим назначения блоков:


4.1. Установка временных интервалов кодирования


Блок Step служит для разделения во времени периодов, когда в канал связи передается информационная часть непосредственно от источника и периода передачи избыточной части. Этот сигнал разделит такты кодирования на m тактов «выталкивания» информационной части в канал связи (с одновременным вычислением избыточной части); и k тактов «выталкивания» избыточной части кодового вектора.

Step: установите параметр «Step Time» равное m


Блок Step1 служит для определения конца передачи кодового вектора. Этот блок вырабатывает сигал по прошествии n тактов. Этот сигнал ограничит такты кодирования, т.е. такты, за которые весь кодовый вектор уйдет в канал связи, и в последующие такты никакие биты не будут уходить в канал.

Step1: параметр «Step Time» равное n.


4.2. Построение блока деления на полином в составе кодера


Блок Divider реализует блок деления на полином. В рамках данной лабораторной работы будет необходимо перестроить структуру блока деления на полином в соответствии с выбранным кодом.

Control Block – реализует разделение временных каналов (с использованием сигналов от Step и Step1) и функции обратной связи. Обратная связь должна быть активна только лишь в один из временных отрезков. Блок в рамках лабораторной работы не подлежит изменению и является служебным.

Двойным щелчком на блоке Divider раскроем подсистему блока деления на полином:

Рис 4.2. Блок деления на полином кодера.


В этом окне вам будет необходимо на последующем этапе данной лабораторной работы построить блок деления на полином в составе кодера.

Двойным щелчком левой кнопки мыши открывается окно просмотра временных диаграмм состояния ячеек памяти, представленное на рисунке 4.3.


Рис 4.3. Просмотр временных диаграмм кодера


В подсистеме Divider требуется построить блок деления на полином. Блок деления на полином за первые m тактов кодирования вычислит k избыточных символов кодового вектора.


Копируя блоки «D триггеров» и «сложение по модулю 2», постройте блок деления на полином, соответствующий выбранному порождающему полиному g(x).


Входные сигналы:

CLK – Синхронизирующий сигнал тактовой частоты;

U – Входной вектор на кодирование;

FromFeedBack – Сигнал обратной связи.

Выходной сигнал:

ToFeedBack - Сигнал в обратную связь, реализуемую служебным блоком ControlBlock подсистемы кодера.


4.3. Настройка отображения сигналов с делителя полиномов в составе декодера


Требуется завести сигналы со всех триггеров (по порядку) на блок индикации Scope, находящийся в подсистеме делителя полиномов кодера.

* Сделайте скриншот подсистемы блока деления на полином и временных диаграмм его функционирования.


4.4. Верификация функциональной модели кодера


Запустите процесс моделирования. Сравните временные диаграммы состояния работы кодера с временными диаграммами, полученными в пункте 1, проведя побитовое сравнение. При совпадении делается вывод о корректной работе функциональной модели кодера.










5. Исследование принципов построения декодеров ЦСК с использованием модифицируемой базовой модели


При построении функциональной модели декодера ЦСК используется базовая функциональная модель в среде MATLAB, в которой модифицируются блоки с учетом индивидуального задания.


Двойным щелчком мыши на блоке Decoder открывается подсистема декодера:

Рис 5.1. Подсистема декодера.


В рамках данной подсистемы реализуется декодер Меггита с предварительным умножением на xk. Подсистема реализует прием и декодирование кодового вектора за 2n тактов.

Определим функциональное назначение блоков:

Invertor – Инвертирует сигнал тактовой частоты для того, чтобы вся подсистема декодера срабатывала по заднему фронту сигнала, что позволяет стробировать битовые сигналы посередине;

Register – Сдвиговый регистр, «запоминающий» пришедший кодовый вектор;

Divider – Делитель полиномов, реализующий собой генератор синдрома;

Selector – Селектор, настраиваемый на определенные синдромы (в соответствии с выбранным кодом);

m2 – Устройство внесения коррекции битовых сигналов, сигнал коррекции вырабатывается селектором;

Step – Формирует временные отрезки тактов приема вектора и тактов декодирования, на вторых n тактах происходит, при необходимости, коррекция битов;

Erase block – формирует сигнал стирания.

Step1 – разрешает генерировать сигнал стирания после 2n тактов декодирования.

System – служебный блок.


5.1. Установка временных интервалов декодирования


В подсистеме декодера устанавливаем элементы:

Step: параметр «Step Time» равное (n +0.5). Задержка на 0.5 обусловлена стробированием сигнала по заднему фронту. Данный сигнал разделяет такты приема кодового вектора и такты декодирования.

Step1: параметр «Step Time» равное (2n +0.5). Задержка на 0.5 обусловлена стробированием сигнала по заднему фронту. Данный сигнал разрешает сигнал стирания после тактов декодирования сообщения.


5.2. Настройка регистра


Двойным щелчком на блоке Register раскрывается подсистема сдвигового регистра, представленная на рисунке 5.2. Регистр реализует смещение кодового вектора на n тактов. Структуру этой подсистемы Вам предстоит изменить в соответствии со своим кодом.


Рис 5.2. Подсистема сдвигового регистра.


В подсистеме сдвигового регистра, копируя блоки «триггеров», постройте сдвиговый регистр нужной длины (равной n).

Входные сигналы подсистемы:

CLK – Синхронизирующий сигнал тактовой частоты;

V+e – Входной вектор на декодирование;

Выходной сигнал:

Out1 – Выход регистра – смещенный на n тактов вектор для декодирования.

* Сделайте скриншот подсистемы сдвигового регистра.


5.3. Настройка генератора синдрома


Закрыв схему регистра, вернемся к подсистеме декодера. Двойным щелчком на блоке Divider раскрывается подсистема генератора синдрома:


Рис 5.3. Генератор синдрома декодера.


Здесь реализована структура генератора синдрома. Подсистема работает на тактовой частоте CLK и реагирует на возникающий сигнал коррекции Correct.

В подсистеме делителя полиномов в составе декодера (блок Divider) требуется построить генератор синдрома:

Копируя блоки «триггеров» и «сложение по модулю 2», постройте делитель полиномов, соответствующий выбранному порождающему полиному g(x).

Входные сигналы:

CLK – Синхронизирующий сигнал тактовой частоты;

V+e – Входной вектор на декодирование;

Correct – Сигнал коррекции от селектора.

Выходной сигнал:

Q0, Q1… – Состояния триггеров, передаваемые на селектор. Число выходов должно быть равно числу ячеек памяти, т.к. синдром целиком требуется передать на селектор.

* Сделайте скриншот подсистемы генератора синдрома.


5.4. Настройка селектора;


Закроем окно генератора синдрома. Двойным щелчком на блоке Selector раскрывается подсистема селектора:

Рис 5.4.Селектор подсистемы декодера.


Селектор настраивается на определенные состояния ячеек памяти генератора синдрома и вырабатывает сигнал коррекции. Сигнал вырабатывается только на тактах декодирования (вторые n тактов).

В подсистеме селектора в составе декодера (блок Selector) требуется построить селектор, настроенный на выбранный код. Селектор должен вырабатывать сигнал коррекции, если состояние ячеек памяти генератора синдрома совпадает с любой из нужных настроек селектора.

Входными сигналами будут состояния триггеров делителя полиномов, а выходным сигнал коррекции. Селектор активен только на тактах декодирования (обеспечивается блоком Enable).

* Сделайте скриншот подсистемы селектора.


5.5. Настройка блока формирования сигнала стирания;


Закроем окно селектора. Двойным щелчком на блоке Erase block раскрывается подсистема блока формирования сигнала стирания:

Рис 5.5.Выработка сигнала стирания.


В подсистеме выработки сигнала стирания в составе декодера (блок Erase block) требуется построить структуру, соответствующую выбранному коду. Блок должен вырабатывать сигнал стирания, если состояние ячеек памяти генератора синдрома после 2n тактов ненулевое.

Входными сигналами будут состояния триггеров генератора синдрома, а выходным сигнал стирания. Блок активен только после 2n тактов декодирования (обеспечивается блоком Enable).


* Сделайте скриншот подсистемы блока выработки сигнала стирания.


5.6. Верификация функциональной модели декодера


Запустите процесс моделирования. Сравните временные диаграммы состояния генератора синдрома с временными диаграммами, полученными в пункте 1, проведя побитовое сравнение. При совпадении делается вывод о корректной работе функциональной модели декодера.


* Сделайте скриншот подсистемы декодера и временных диаграмм функционирования.

Поочередно закрыв подсистемы селектора и декодера, вернемся к структурной схеме.








6. Верификация СПД


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

Если СПД реагирует в соответствии с заданными параметрами помехоустойчивости, то делается вывод о корректности работы функциональной модели СПД.








Содержание отчета


    1. Титульный лист;

    2. Цель работы;

    3. Структуры кодеков, таблицы переходов и временные диаграммы их функционирования в соответствии с пунктом 1;

    4. Структуры функциональных моделей и временные диаграммы подсистем в соответствии с пунктами 4 и 5;

    5. Временные диаграммы этапа верификации СПД в соответствии с пунктом 6;

    6. Вероятностные характеристики СПД;

    7. Выводы;

* пункты 3…6 должны быть выполнены для каждого ЦСК из таб.1.