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

Цифровые системы связи и передачи данных

..pdf
Скачиваний:
99
Добавлен:
05.02.2023
Размер:
16.16 Mб
Скачать

3.Меняя значение параметра Noise, выписать показания контроллеровBER

сиспользованием кодирования и без него.

4.По полученным данным построить соответствующие графики.

5.Привести рисунки, демонстрирующие исходное сообщение, закодированное сообщение, декодированное сообщение и разницу между исходным и декодированным сообщением.

1,2

 

 

 

 

 

 

 

 

 

0,8

 

 

 

 

 

 

 

 

 

0,6

 

 

 

 

 

 

 

 

BER(Coding)

0,4

 

 

 

 

 

 

 

 

BER(No Coding)

 

 

 

 

 

 

 

 

 

0,2

 

 

 

 

 

 

 

 

 

0,02

0,04

0,06

0,08

0,1

0,12

0,14

0,16

0,18

0,2

 

 

Рис. 3.66. График зависимости BER от Noise

На графике (рис. 3.66) видно, что быстрее единицы достиг счетчик, который считал BER в канале без кодирования LDPC.

На рис. 3.67–3.79 представлены примеры работы LDPC кодера-декодера.

Рис. 3.67. Панель управления аппаратно-программного комплекса LDPC кодера-декодера

173

Рис. 3.68. Исходное сообщение

Рис. 3.69. Закодированное сообщение

Рис. 3.70. Декодированное сообщение

Рис. 3.71. Разница между исходным и декодированным сообщением

174

В ходе данной лабораторной работы были закреплены навыки работы с ПО LabVIEW, изучен учебный аппаратно-программный комплекс для визуализации и исследования методов канального кодирования/декодирования в беспроводных системах цифрового вещания и связи. Данный комплекс позволяет проводить исследование кодов LDPC. Были сделаны выводы о том, что в канале с кодированием LDPC стопроцентная ошибка возникнет лишь при значении шума, равном 0,16. Тогда как в канале без кодирования стопроцентная ошибка достигается уже при 0,1.

Моделирование LDPC-кодов в MATLAB Simulink

В рабочем поле необходимо собрать схему для работы кода LDPC. Схема представлена на рис. 3.72.

Рис. 3.72. Линия передачи с применением кода LDPC

В состав линии с кодированием входят:

Bernoulli Binary Generator;

LDPC Encoder;

Binary Symmetric Channel (канал передачи);

LDPC Decoder;

Error Rate Calculation (анализатор ошибок);

Display.

Данные блоки необходимо найти в окне «Simulink Library», представленной на рисунке.

Для упрощения поиска можно воспользоваться окошком поиска элементов. Характеристики блоков выставить следующие (рис. 3.73–3.77).

175

Рис. 3.73. Bernoulli Binary Generator

Рис. 3.74. LDPC Encoder

Рис. 3.75. Binary Symmetric Channel

176

 

Рис. 3.77. Error Rate Calculation

Рис. 3.76. BCH Decoder

(анализатор ошибок)

Представим полученные результаты (рис. 3.78–3.82).

Рис. 3.78. Комбинация на входе

177

Рис. 3.79. Закодированная последовательность

Рис. 3.80. Последовательность на выходе

178

 

 

Рис. 3.81. Работа блока оценки ошибки в канале

1,2

 

 

 

 

 

 

 

 

 

0,8

 

 

 

 

 

 

 

 

 

0,6

 

 

 

 

 

 

 

 

BER(Coding)

 

 

 

 

 

 

 

 

 

BER(No Coding)

0,4

 

 

 

 

 

 

 

 

 

0,2

 

 

 

 

 

 

 

 

 

0,02

0,04

0,06

0,08

0,1

0,12

0,14

0,16

0,18

0,2

 

 

Рис. 3.82. График зависимости BER от Noise

3.5. КАСКАДНЫЕ КОДЫ. ТУРБО КОДЫ

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

В одной из наиболее популярных систем каскадного кодирования для внутреннего кода применяется сверточное кодирование по алгоритму Витерби, а для внешнего кода — Рида — Соломона с чередованием между двумя этапами кодирования [1]. В этой системе демодулятор выдает мягко квантованные кодовые символы на внутренний сверточный декодер, который, в свою очередь, выдает жестко квантованные кодовые символы с пакетными ошибками на декодер Рида — Соломона.

179

Внешний код Рида — Соломона образуется из m-битовых сегментов двоичного потока данных. Производительность такого (недвоичного) кода Рида — Соломона зависит только от числа символьных ошибок в блоке. Код не искажается пакетами ошибок внутри m-битового символа. Иными словами, для данной символьной ошибки производительность кода Рида — Соломона такова, как если бы символьная ошибка была вызвана одним битом или т бит. Тем не менее производительность каскадных систем несколько ухудшается за счет коррелирующих ошибок в последовательных символах. Поэтому чередование между кодированиями нужно выполнять на уровне символов (а не битов). Работа представляет собой обзор каскадных кодов, которые были разработаны для дальней космической связи. Обобщенная структурная схема исследования каскадных кодов приведена на рис. 3.83.

Рис. 3.83. Обобщенная структурная схема исследования каскадных кодов

Однако в данной работе исследуется случай, когда в качестве внутреннего кодирования используются турбокоды.

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

Схема каскадного кодирования впервые была предложена Форни [23] как метод получения высокоэффективного кода посредством комбинаций двух или более компонуемых кодов (иногда называемых составными). В результате та-

180

кие коды могут корректировать ошибки в значительно более длинных кодах и имеют структуру, которая позволяет относительно легко осуществить декодирование средней сложности. Последовательные каскадные коды часто используются в системах с ограничением мощности, таких как космические зонды. Самая распространенная из этих схем содержит внешний код Рида — Соломона (выполняется первым, убирается последним), который следует за сверточным внутренним кодом (выполняется последним, убирается первым). Турбокод можно считать обновлением структуры каскадного кодирования с итеративным алгоритмом декодирования связанной кодовой последовательности.

Турбокоды впервые были введены в 1993 г. Берру, Главье и Цитимаджимой. В описываемой схеме достигалась вероятность появления ошибок при степени кодирования 1/2 и модуляции BPSK в канале с белым аддитивным гауссовым шумом с Eb/N0, равным 0,7 дБ. Коды образуются посредством компоновки двух или более составных кодов, являющихся разными вариантами чередования одной и той же информационной последовательности. Тогда как для сверточных кодов на финальном этапе декодер выдает жестко декодированные биты (или в более общем случае — декодированные символы), в каскадной схеме, такой как турбокод, для хорошей работы алгоритм декодирования не должен ограничивать себя, подавая на декодеры жесткую схему решений. Для лучшего использования информации, получаемой с каждого декодера, алгоритм декодирования должен применять, в первую очередь, мягкую схему декодирования вместо жесткой. Для систем с двумя составными кодами концепция, лежащая в основе турбодекодирования, заключается в том, чтобы передать мягкую схему принятия решений с выхода одного декодера на вход другого и повторять эту процедуру до тех пор, пока не будут получены надежные решения.

Турбокоды представляют собой сравнительно новый тип кодов для исправления ошибок, возникающих при передаче цифровой информации по каналам связи с шумами. Впервые они были введены в рассмотрение в 1993 г. и сразу же привлекли к себе пристальное внимание специалистов в области помехоустойчивого кодирования. Причина этому — уникальная способность турбокодов обеспечивать характеристики помехоустойчивости передачи информации, близкие к теоретически достижимым значениям при умеренной сложности реализации кодеков. Разработка турбокодов развивается по двум направлениям: сверточные турбокоды, образованные путем параллельного соединения двух или более сверточных кодеров, и блочные турбокоды, образованные путем последовательного соединения двух или более блочных кодеров. Как показали исследования, блочные турбокоды являются более эффективными при относительно высоких кодовых скоростях.

181

Кодирование

На рис. 3.84 представлена структурная схема турбокодера.

Рис. 3.84. Структурная схема турбокодера

Сначала на вход формирователя пакетов (PAD) поступает блок данных U длиной k бит. В формирователе пакетов к данным прибавляется еще (n-k) дополнительных бит служебной информации, соответствующих используемому стандарту формирования пакета и включающих в себя символы его начала и окончания. То есть получается пакет X0, состоящий из n бит.

Далее последовательность бит X0 поступает параллельно на M ветвей, содержащих последовательно соединенные перемежитель и компонентный кодер. Таким образом, X0 используется в качестве входных данных сразу всеми компонентными кодерами.

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

Задача перемежителя — преобразовать входную последовательность так, чтобы комбинации бит X0, соответствующие кодовым словам с низким весом (весом называется число ненулевых бит кодового слова) на выходе первого кодера, были преобразованы в комбинации, дающие кодовые слова с высоким весом на выходах остальных кодеров. Таким образом, кодеры получают на выходе кодовые слова с различными весами. При кодировании формируются кодо-

182