Конспект лекций

Производственный менеджмент на предприятиях почтовой связи

Конспект лекций | назад | содержание | вперед

Лекция 8. ПОВЫШЕНИЕ ПОМЕХОУСТОЙЧИВОСТИ ЦИФРОВОГО КАНАЛА ПЕРЕДАЧИ

8.1. НАЗНАЧЕНИЕ КАНАЛЬНОГО КОДИРОВАНИЯ

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

Одним из важнейших средств в обеспечении достоверности передачи цифровых данных является использование канального кодирования с исправлением ошибок (FEC coding).

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

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

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

Рисунок 8.1 - Иллюстрация процессов канального кодирования

Обсудим простые модели канала, описывающие процессы, происходящие между кодером и декодером. На рисунке 8.2 представлено несколько базовых моделей каналов, применимых для анализа канального кодирования.

Наиболее простая модель называется двоичным симметричным каналом (ДСК) без памяти (рисунке 8.2.а). Входы и выходы этого канала - двоичные. Переданные и принятые блоки данных соблюдают побитовый порядок и на входе, и на выходе модели канала. Каждый бит кодируемой последовательности приходит на выход канала в неизменном виде с вероятностью 1 – Рош. С вероятностью Рош передаваемые биты инвертируются, т.е. возникают битовые ошибки. Декодер принимает решение о переданной закодированной последовательности c по принятой двоичной последовательности r. В процессе принятия решения декодером могут применяться только те отношения алгебраической независимости между отдельными битами переданной последовательности, которые были установлены правилом кодирования. Отсутствие у рассматриваемой модели памяти приводит к тому, что ошибки статистически становятся взаимно независимыми, т.е. возникновение ошибок в предшествующие моменты времени никак не влияет на вероятность появления ошибок в текущий момент.

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

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

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

Если каждому возможному уровню квантования поставить в соответствие число от 0 до М – 1, то будет получена модель канала с двоичным входом и т-ричным выходом (рисунке 8.3). В такой модели сигнал на выходе канала измеряется намного точнее, чем в модели двоичного канала.

Рисунок 8.3 - Модель двоичного канала, обеспечивающего мягкие решения при M = 8

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

8.2 КЛАССИФИКАЦИЯ КОДОВ

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

Второй критерий – это способ создания кодов. К ним относятся блочные коды и сверточные коды.

Третий критерий классификации основан на количестве различных символов, из которых строятся кодовые слова. Код, в котором кодовые слова состоят из двоичных символов, называется двоичным кодом. В некоторых приложениях используются недвоичные коды. Символы, составляющие кодовое слово недвоичного кода, выбирается из набора цифр {0,…, (2m-1)}.

Еще один критерий классификации лежит в основе подразделения кодов на систематические и несистематические. При систематическом кодировании информационные блоки представляются в явном виде, и за каждым блоком следует бит четности. В несистематическом кодировании информационные блоки представляются в неявном виде.

8.3. КОДИРОВАНИЕ СИГНАЛА

Кодер канала следует после кодера речи и предшествует модулятору. Главной его задачей является помехоустойчивое кодирование речевого сигнала, т. е. такое кодирование, которое позволяет обнаруживать и в значительной мере исправлять ошибки, возникающие при распространении сигналов по радиоканалу от передатчика к приемнику.

Помехоустойчивое кодирование осуществляется за счет введения в состав передаваемого сигнала достаточно большого объема избыточной информации; при этом может реализоваться кодирование с упреждающей коррекцией ошибок — FEC coding {Forward Error Correcting coding).

Тему канального кодирования можно условно разделить на два раздела: кодирование сигнала и структурирование последовательности.

Наиболее популярные коды сигнала называются ортогональными и биортогональными.

8.3.1. Ортогональные коды

Набор однобитовых данных можно преобразовать с помощью ортогональных кодовых слов, состоящих из двух разрядов каждое, которые описываются строками показанной ниже матрицы, называемой матрицей Адамара.

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

Вообще, для набора k-битовых данных из матрицы Hk-1 можно построить набор кодовых слов Hk с размерами 2k х 2k, который называется матрицей Адамара.

Каждая пара слов в каждом наборе кодовых слов H1, H2, H3..., Hk... содержит одинаковое количество совпадающих и несовпадающих разрядов. Поэтому и каждый из этих наборов ортогонален.

8.3.2.Биортогональные коды

Биортогональный набор сигналов, состоящий из М сигналов или кодовых слов, получается из ортогонального набора, состоящего из М/2 сигналов, путем дополнения последнего отрицанием каждого сигнала:

Например, набор 3-битовых данных можно преобразовать в биортогональный набор кодовых слов следующим образом:

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

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

8.4. СТРУКТУРИРОВАННЫЕ ПОСЛЕДОВАТЕЛЬНОСТИ

Метод структурированных последовательностей - это преобразование последовательности данных в новую, улучшенную последовательность, обладающую структурной избыточностью (которая вмещает избыточные биты). Эти избыточные разряды служат для определения и исправления ошибок. На выходе процедуры кодирования получается закодированный (формой сигнала или структурированной последовательностью) сигнал, имеющий лучшие пространственные характеристики, чем некодиро-ванный.

Структурированные последовательности делятся на 3 категории:

- блочные (блоковые),

- сверточные (древовидные)

- турбо-коды.

В современных цифровых системах связи и вещания для обнаружения и исправления ошибок применяют либо блочные (блоковые) корректирующие (n,k)-коды, либо сверточные коды (СК). Определяющее различие между кодерами для кодов этих двух типов состоит в наличии или отсутствии памяти.

8.4.1. Блочное кодирование

Структурная схема на рисунке 8.4 поясняет процесс передачи сообщений в системе с блочным кодированием.

Рисунок 8.4. - Структурная схема системы с блочным кодированием

Кодер для блочного кода отображает последовательности из k входных символов в последовательности из n выходных символов, причем всегда n > k. При этом каждый блок из n символов зависит только от соответствующего блока из k символов и не зависит от других блоков. Параметрами блокового кода являются n, k, R = k/n – скорость кода и d - кодовое расстояние. Кодовое расстояние является основным показателем корректирующей способности кода. Оно равно минимальному числу позиций, в которых кодовые комбинации отличаются друг от друга. Если в пределах блока кода при передаче появляется q ошибочных символов, то считают, что произошла ошибка кратности q. Кратность обнаруживаемых qо и исправляемых qи кодом ошибок связаны с кодовым расстоянием соотношением d = qо + qи + 1, причем всегда qо ³ qи. Конкретный тип кода задается тремя параметрами: n, k и d. При q > 3…5 эффективность блоковых кодов заметно снижается, то есть существенно возрастает требуемая при этом избыточность.

Коды с повторением

Наиболее простой блоковый код вида (n, 1), который позволяет понять концепцию исправления ошибок и оценить характеристики кода, известен как код повторений. В нем значение информационного символа повторяется (n-1) раз, т.е. (n-1) проверочных символов являются повторением информационного. Кодовая скорость 1 /n при достаточно больших n оказывается крайне низкой. Минимальное расстояние кода равно n, и при достаточно больших n коды повторений обладают высокой исправляющей способностью.

Поскольку минимальное расстояние равно n, то кратность исправляемых ошибок в кодовом слове будет составлять e=(n-1)/2.

Если все переданные слова равновероятны, а канал связи не имеет памяти, то в качестве наиболее вероятного переданного слова выбирается то, которое ближе всего в смысле хеммингова расстояния находится к принятому кодовому слову.

Расстояние Хемминга между последовательностями Y и Z оценивается как вес (число двоичных единиц) слова, образованного путем посимвольного сложения по модулю 2 последовательностей Y и Z.

Коды с контролем четности

Код с одним контрольным битом

Коды с контролем четности для обнаружения или исправления ошибок используют линейные суммы информационных битов, которые называют символами, или битами четности. Код с одним контрольным битом - это прибавление к блоку информационных битов одного контрольного бита. Этот бит может быть равен 0 или 1, причем его значение выбирается так, чтобы сумма всех битов в кодовом слове была четной или нечетной. В операции суммирования используется арифметика по модулю 2 (XOR). Если бит четности выбран так, что результат четный, то говорят, что схема имеет положительную четность; если при добавлении бита четности результирующий блок данных является нечетным, то говорят, что он имеет отрицательную четность. В приемном оконечном устройстве производится декодирование, заключающееся в проверке, дают ли нуль суммы принятых битов кодового слова по модулю 2 (положительная четность). Если полученный результат равен 1, то кодовое слово заведомо содержит ошибки. Степень кодирования такого кода можно записать как k/(k+1).

Прямоугольный код

Прямоугольный код, называемый также композиционным, можно представить в виде параллельной структуры кода, изображенной на рисунке 8.5. Код создается следующим образом. Вначале из битов сообщения строятся прямоугольники, состоящие из M строк и N столбцов; затем к каждой строке и каждому столбцу прибавляется бит четности, что в результате дает матрицу с размерами (M+1)*(N+1). Степень кодирования прямоугольного кода может быть записана следующим образом:

к/n = M*N/(M+1 )/(N+1).

Рисунок 8.5.- Прямоугольный композиционный код

Любая отдельная ошибка в разряде приведет к нарушению четности в одном из столбцов и в одной из строк матрицы. Следовательно, прямоугольный код может исправить любую единичную ошибку, поскольку расположение такой ошибки однозначно определяется пересечением строки и столбца, в которых была нарушена четность. В примере, показанном на рисунок 8.5, размеры информационной матрицы равны 5x5. Следовательно, на рисунке отображен код (36,25), способный исправлять единичные ошибки, расположенные в любом из 36 двоичных разрядов. Вычислим для такого блочного кода с коррекцией ошибок вероятность появления неисправленной ошибки, для чего учтем все способы появления ошибки сообщения. Исходя из вероятности наличия j ошибок в блоке из n символов, можно записать вероятность ошибки сообщения, называемой также блочной ошибкой, или ошибочным словом, для кода, который может исправить модели ошибок, состоящие из t или менее ошибочных битов:

Здесь - вероятность получения ошибочного канального символа. В примере код может исправить все однобитовые ошибки (t = 1) в прямоугольном блочном коде, состоящем из n = 36 бит. Следовательно суммирование в уравнении начинается с j = 2.

При малом p наибольший вклад дает первое слагаемое суммы. Следовательно, для примера с прямоугольным кодом (36,25) можно записать следующее:

Точная вероятность битовой ошибки P зависит от конкретного кода и используемого декодера.

8.4.2. Сверточное кодирование

В современных СПРС используются более эффективные сверточные коды.

Сверточный код - это линейный рекуррентный код. В общем случае он образуется следующим образом. В каждый тактовый момент времени на вход кодирующего устройства (регистр сдвига с K ячейками) поступает m символов сообщения; n выходных символов формируются с помощью рекуррентного соотношения из K = m + q символов сообщения, среди которых m поступили в данный тактовый момент времени, а q - в предшествующие. Символы сообщения, из которых формируются выходные символы, хранятся в памяти кодера. Параметр K часто называют длиной кодового ограничения данного кода. Сверточный код характеризуются также скоростью R = m / n и свободным расстоянием dсв. Типичные значения параметров cверточных кодов: m, n = 1 - 8, R = 1/4 - 7/8, K = 3 -10.

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

Положительным эффектом помехоустойчивого кодирования является либо снижение вероятности ошибки, либо снижение энергетики передачи при той же вероятности ошибки, либо и то, и другое одновременно.

Обычно качество системы связи характеризуется отношением энергии, приходящейся на один информационный символ, к односторонней спектральной мощности шума, т.е. отношением сигнал-шум : h0 = Еб / N0, которое требуется для достижения заданной вероятности ошибки Рош. Уменьшение отношением сигнал-шум (при заданном уровне Рош), достигнутое благодаря кодированию канала, характеризует энергетический выигрыш кодирования.

При использовании блочных кодов величина энергетического выигрыша кодирования (при Рош » 1´10-5), как правило, не превышает 2,5...3,5 дБ. Применение сверточных кодов декодируемых по алгоритму Витерби с мягкими решениями позволяет получить оценку для энергетического выигрыша кодирования 4…6 дБ.

8.5. Перемежение и скремблирование

Кодирование канала сопровождается двумя весьма простыми, но чрезвычайно эффективными процедурами – перемежением символов и скремблированием цифровых потоков. Использование перемежения как одного из основных методов повышения верности передачи дискретных сообщений в каналах с группирующимися ошибками является характерной особенностью сотовой связи. Это следствие неизбежных глубоких замираний сигнала в условиях многолучевого распространения, которое практически всегда имеет место, особенно в условиях плотной городской застройки. При этом группа следующих один за другим символов, попадающих на интервал замирания (провала) сигнала, с большой вероятностью оказывается ошибочной. Если же перед выдачей информационной последовательности в радиоканал она подвергается процедуре перемежения, а на приемном конце восстанавливается прежний порядок следования символов, то пакеты ошибок с большой вероятностью рассыпаются на одиночные ошибки. Таким образом, простое перемежение (перестановка во времени) символов позволяет декоррелировать ошибки в канале, то есть преобразовать пакеты ошибок большой кратности в одиночные, сведя, в первом приближении, канал с памятью к ДСК без памяти.

Скремблирование — это обратимое преобразование цифрового потока без изменения скорости передачи с целью получения свойств случайной последовательности.

Скремблирование наряду с избыточным кодированием является способом логического кодирования информации. Методы скремблирования заключаются в побитном вычислении результирующего кода на основании битов исходного кода и полученных в предыдущих тактах битов результирующего кода. Например, скремблер может реализовывать следующее соотношение:

Здесь Вi – двоичная цифра результирующего, полученная на i-м тракте работы скремблирования. Аi – двоичная цифра исходного кода, поступающая на i-м тракте на вход скремблера, Вi-3 и Вi-5 - двоичные цифры результирующего кода полученные на предыдущих тактах работы скремблера, соответственно на 3 и на 5 тактов ранее текущего такта, и объединенные операцией исключающего ИЛИ (сложение по модулю 2).

Например, для исходной последовательности 110110000001 скремблер даст следующий результирующий код (первые три цифры результирующего кода будут совпадать с исходным кодом, так как еще нет нужных предыдущих цифр):

Таким образом, на выходе скремблера появится последовательность 110001101111, в которой нет последовательности из шести нулей, присутствовавшей в исходном коде.

После получения результирующей последовательности приемник передает ее дескремблеру, который восстанавливает исходную последовательность на основании обратного соотношения:

Различные алгоритмы скремблирования отличаются количеством слагаемых, дающих цифру результирующего кода, и сдвигом между слагаемыми. Так, в сетях ISDN при передаче данных от сети к абоненту используется преобразование со сдвигами в 5 и 23 позиции, а при передаче данных от абонента в сеть — со сдвигами 18 и 23 позиции.

Вопросы для самоконтроля

1. Назначение канального кодирования.
2. Методы скремблирования.
3. Что такое перемежение.
4. Классификация кодов.

наверх

назад | содержание | вперед