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

Лекции по ТПС

.pdf
Скачиваний:
55
Добавлен:
16.07.2022
Размер:
5.31 Mб
Скачать

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

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

Представим кодовые комбинации кода (5,4) с проверкой на четность в виде Ui=a1,a2,a3,a4, a5, где символы a1,a2,a3,a4 - информационные. Контрольный символ a5 определяется суммированием по модулю 2 (mod2) информационных символов: a5=a1+a2+a3+a4. Если число единиц в информационной последовательности a1,a2,a3,a4 четное, то проверочный символ a5 в кодовой комбинации Ui равен нулю. Если число единиц в информационной последовательности a1,a2,a3,a4 нечетное, то контрольный символ a5=1 и его добавление к информационным символам доводит число единиц в комбинации Ui до четного. Такой код обнаруживает все ошибки нечетной кратности, коэффициент избыточности равен 1/5: один избыточный символ на пять символов кодовой комбинации. Структурные схемы кодера и устройства обнаружения ошибки кода (5,4) с проверкой на четность показаны на рисунок 9.1а и 9.1б и состоят из регистров сдвига на пять символов и четырехвходовых сумматоров по модулю 2.

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

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

Рассмотренный пример работы системы передачи принято называть методом запроса с остановками. Его недостатком является низкая скорость передачи сообщений. Для ее повышения используется метод запроса с выборочным по-

141

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

Pно C52 pe 2 (1 pe )3 C54 pe 4 (1 pe ) 10 pe 2

и она тем меньше, чем меньше pe.

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

Кодовые комбинации инверсного кода образуются повторением информационной последовательности по следующему правилу: если число единиц в исходной последовательности четное - она повторяется в неизменном виде; если число единиц нечетное, то при повторении все символы исходной последовательности инвертируются (нули заменяются единицами, а единицы - нулями). Например, информационной последовательности вида 10111 (k=5) соответствует кодовая комбинация 1011110111 (n=2k=10), а информационной последовательности 01101 – кодовая комбинация 0110110010. Обнаружение ошибок в кодовых комбинациях инверсного кода выполняется в два этапа: суммируются единицы, содержащиеся в первых k символах; если число единиц четное, k последующих символов сравниваются попарно с первыми k символами. Если число единиц в первых k символах нечетное, последующие символы перед сравниванием инвертируются. Несовпадение хотя бы одной из пар сравниваемых кодовых символов указывает на наличие ошибки в кодовой комбинации. Ошибка не обнаруживается, если одновременно искажается четное число символов в информационной последовательности (первые k символов) и соответствующие им кодовые символы в последовательности повторяемых k символов.

Вероятность необнаруженной ошибки при использовании рассмотренного инверсного кода в канале с независимыми ошибками равна

Pно C52 pe 4 (1 pe )6 C54 pe8 (1 pe )2 10 pe4 ,

то есть почти на два порядка меньше, чем Pно для кода (5,4) с проверкой на четность, при этом коэффициент избыточности инверсного кода существенно выше и равен 0,5.

142

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

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

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

тическим.

Возможно применение кодов, при которых передаваемая информация не подразделяется на части. Такие коды называют непрерывными, древовидны-

ми, или цепными.

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

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

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

143

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

 

h2

 

ЭВК 10 lg

1

дБ,

a h2

 

 

 

2

 

где h12, h22 - отношения сигнал/помеха в системах передачи с кодированием и без кодирования при одинаковой вероятности ошибок на выходе;

a-коэффициент, выравнивающий скорость передачи информации в сравниваемых системах передачи.

Принцип обнаружения и исправления ошибок помехоустойчивыми ко-

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

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

Из рассмотренного примера следует, что под помехоустойчивым кодированием дискретных сообщений в общем случае понимается взаимно - однозначное отображение множества Nр сообщений источника на множество N = 2n возможных кодовых комбинаций.

Из-за воздействия помех при передаче разрешенной кодовой комбинации через канал в ней могут возникнуть ошибки. В результате разрешенная кодовая комбинация превращается в одну из запрещенных комбинаций и тогда ошибка

144

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

Исправление ошибок является более сложной операцией, требующей кроме обнаружения ошибки в принятой кодовой комбинации, определения местоположения искаженного кодового символа.

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

t

t

 

2n 2k Cni

или 2n k Cni ,

(18.1)

i 0

i 0

 

где Сni – число сочетаний, n – длина кодовой комбинации, i – кратность ошибки, i=0,1,…n.

Неравенство (18.1) называется границей Хэмминга и является нижней оценкой необходимого числа контрольных символов двоичного (n, k) кода, способного исправлять t ошибок. Коды, параметры которых (n, k) переводят неравенство в равенство, называются совершенными.

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

КОНТРОЛЬНЫЕ ВОПРОСЫ:

1.На каком понятии построена теория помехоустойчивого кодирования?

2.В чем состоит основная задача теории помехоустойчивого кодирования?

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

4.Какой код называется совершенным или плотноупакованным?

5.Что определяет граница Хэмминга?

145

ЛЕКЦИЯ 19. БЛОЧНЫЕ СИСТЕМАТИЧЕСКИЕ КОДЫ

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

ными являются двоичные блочные разделимые систематические коды. Кодовые комбинации такого кода имеют вид

U=(a1 a2 a3…ak ak+1…an).

В ней первые k символов информационные, n – k - контрольные. Кодовые комбинации часто называют кодовыми словами, а символы –элементами.

Каждый из контрольных символов определяется через информационные соотношением вида

 

i k

 

ak j

Cij ai , j=1,2…,(n-k);

(19.1)

 

i 1

 

все символы комбинаций - проверками

 

i k

 

 

Cij ai ak j 0, j=1,2…,(n-k);

(19.2)

i 1

где Cij – коэффициенты, определяющие меру участия ai в формировании контрольного символа ak+j (для двоичных кодов они принимают значения 0 или 1); ai – информационные символы, участвующие в формировании контрольного символа; k+j – номер контрольного символа.

В соотношениях (19.1), (19.2) суммирование осуществляется по модулю 2 (0+0=0; 0+1=1; 1+0=1; 1+1=0 или 1=-1 – это означает, что действие сложения и действие вычитания по mod2 дают одинаковый результат).

Соотношение (9.3) в обобщенном виде определяет запись проверок, которым должны удовлетворять символы кодовых комбинаций помехоустойчивого кода. Блочный помехоустойчивый код – это совокупность кодовых комбинаций, символы которых удовлетворяют уравнению (9.3). Такие помехоустойчивые коды называю (n,k) кодами.

Длина кодовой комбинации n определяет число возможных двоичных комбинаций этой длины: N = 2n. Число информационных символов k определяет число кодовых комбинаций, принадлежащих (n,k) коду: Nр=2k. Число контрольных символов (n-k) определяет способность кода обнаруживать и исправлять ошибки.

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

146

как векторы в n – мерном пространстве над полем двоичных чисел 0,1 - полем Галуа: алгебраической структуры, образованной двумя объектами – 0 и 1, в которой выполняются четыре действия: два прямых – сложение и умножение, и два обратных – вычитание и деление. Пространство векторов – кодовых комбинаций является линейным и замкнутым: сумма (разность) векторов по mod2 дает вектор, принадлежащий этому коду, и образует алгебраическую структуру, называемую группой: в ней выполняется только операция сложения (вычитания) по mod2. По этой причине такие коды называют также групповыми.

Образованное кодовыми комбинациями – векторами линейное пространство означает, что в нем определено правило вычисления расстояния между векторами. Это расстояние называют кодовым расстоянием d, или расстоянием Хэмминга, оно представляет собой число символов, различных у двух кодовых комбинаций. Например, U1=101001 и U2=111010, то d(U1,U2)=3. Кодовое расстояние d представляет собой также число ошибок, которое переводит одну кодовую комбинацию в другую.

Число ошибочных символов в кодовой комбинации называется кратностью ошибки t и при длине комбинации из n символов она изменяется в пределах от 0 до n. Поскольку кратность ошибки t в геометрическом представлении является расстоянием между переданной комбинацией и принятой искаженной, то для обнаружения ошибок кратности tоб требуется кодовое расстояние, равное

d tоб 1.

Для исправления ошибок кратности tис требуется кодовое расстояние d 2tис 1.

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

Учитывая, что число кодовых комбинаций – векторов равно 2k из общего числа всех возможных комбинаций – векторов, равного 2n, можно определить (n,k) код как множество векторов, лежащих в k – мерном подпространстве n – мерного пространства кодовых комбинаций.

Количество ненулевых составляющих в кодовом векторе называют его весом. Поскольку все кодовые векторы лежат в k – мерном подпространстве, то расстояние между двумя векторами равно весу некоторого третьего вектора и минимальное расстояние для кода равно минимальному весу всех его ненулевых

147

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

Описание кодов при помощи матриц. При рассмотрении помехоустойчи-

вых кодов используется матричная форма их описания. Любой набор из k линейно независимых векторов линейного n – элементного кода C можно рассматривать как строки матрицы G, называемой производящей или порождающей матрицей (n,k) кода. Вектор является кодовым вектором только тогда, когда он представляет собой линейную комбинацию строк матрицы G. Различные линейные комбинации строк матрицы дают разные векторы. Например, пусть n=7, k=4. Подпространство C содержит 2k кодовых векторов -16, они и образуют (n,k) код (7, 4). Матрица G кода содержит четыре строки, в каждую из которых входит один из k=4 линейно независимых векторов кода C

1000111

 

 

 

 

0100110

G

0010101

.

 

 

 

 

 

 

 

0001011

Составление линейно независимых векторов осуществляется просто: в качестве первых четырех составляющих a1,a2, a3,a4 берутся 1000, 0100, 0010, 0001

– базисные линейно независимые векторы четырехмерного подпространства. Наличие этих составляющих обеспечивает их линейную независимость при любых a5,a6,a7. Последние выбираются как линейные комбинации первых четырех информационных. В матрице G выбрано: a5 = a1 a2 a3; a6 = a1 a2 a4; a7 = a1 a3 a4.

Таким образом, для задания кода (7, 4) вместо перечисления всех 16 векторов достаточно указать матрицу G их четырех строк. Очевидно, что эффективность матричной записи возрастает с увеличением n. По матрице G просто определить минимальное кодовое расстояние кода: как наименьшее число единиц в строке или строках матрицы – dmin=3.

Из приведенного примера следует, что кодирование k информационных символов с использованием (n,k) кода заключается в добавлении к ним (n-k) контрольных.

Среди векторов 2n n – мерного пространства всегда есть 2n-k векторов, образующих подпространство C , ортогональное пространству C. Любой вектор из C ортогонален любому вектору из C. Порождающую матрицу этого подпростран-

148

ства обозначают H. Число ее строк равно (n-k). Для рассмотренного примера ко-

да (7, 4)

1110100

H 11010101011001

Строки этой матрицы соответствуют проверкам: единицы стоят на местах символов, входящих в проверку. Подпространство C содержит восемь векторов: три из них – строки матрицы H (1110100, 1101010, 1011001), остальные пять образуются линейной комбинацией этих трех векторов, каждый из них ортогонален любому вектору из C, содержащемуся в матрице G. Два вектора ортогональны, если их скалярное произведение равно нулю. Два двоичных вектора ортогональны, если число ненулевых составляющих одного вектора, которым соответствуют ненулевые составляющие другого вектора, четное. Поэтому проверку двоичных векторов на взаимную ортогональность часто называют проверкой на четность.

Задание матрицы H есть второй способ матричного представления кода C. Матрицу H называют проверочной, так как ее векторы можно использовать для проверки принадлежности принятой комбинации коду C .

Таким образом, (n,k) код может быть задан одним из трех способов: системой проверок, производящей и проверочной матрицами.

Для рассмотренного примера кода (7,4) покажем взаимосвязь между ними. a1 a2 a3 a5=0

 

 

 

 

 

 

 

 

1110 100

 

1000 111

 

 

 

 

 

 

 

 

 

 

0100 110

 

 

1101 010

 

a1 a2 a4 a6 =0

 

0010 101

 

H 1011 001

 

 

G

 

 

 

 

 

 

0001 011

 

RT

 

 

 

E

 

 

 

 

 

 

 

E R

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a1 a3 a4 a7 =0

Каждая из матриц состоит из двух подматриц (пунктирные линии). Матрица G состоит из единичной матрицы порядка k (в примере четвертого порядка) и матрицы R. В матрицу H входит транспонированная матрица RT и единичная по-

149

рядка (n-k) (в примере третьего порядка). Эта связь позволяет легко по известной матрице G получить матрицу H и наоборот. Матрица H является символической записью уравнений проверок: единицами в ней обозначены символы, участвующие в проверках.

Декодирование комбинаций линейных кодов. Для декодирования кодо-

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

Кратко рассмотрим процедуру декодирования по максимуму правдоподобия при передаче дискретных сообщений (n,k) кодом через двоичный симметричный канал с независимыми ошибками. Обозначим вероятность ошибки в канале pe, вектор ошибки - e длиной n. Вероятность ошибочной передачи символов (n,k) кода для различных сочетаний ошибок будет определяться как

P e 00000...0 (1 pe )n

P e 10000...0 pe (1 pe )n 1

P e 101011...10 pi e (1 pe )n i ,

где i – вес вектора ошибки, например, e=101011..10 имеет вес равный 5.

Поскольку pe ˂ 0,5, 1- pe˃ pe,

тогда

справедлива

цепочка неравенств

(1 pe )n ˃ pe (1 pe )n 1 ˃…˃ pi e (1 pe )n i ˃….

Это

значит, что

наиболее вероятна

ошибка первой кратности (вес вектора ошибки равен 1: e=1000…0), чем ошибка второй кратности (вес вектора ошибки равен 2: е=10010…0) и так далее. Тогда используется следующая стратегия декодирования: принятая кодовая комбинация декодируется в ближайшую кодовую комбинацию, то есть выбирается вектор ошибки наименьшего веса. Декодирование осуществляется полным перебором кодовых комбинаций и целесообразно при малых значениях параметров кода. Для повышения эффективности декодирования по максимуму правдоподобия используется таблица стандартного размещения. Рассмотрим таблицу 19.1 на примере систематического кода (4,2), заданного производящей

1011

матрицей G .0101

Таблица 19.1

150

Соседние файлы в предмете Теория передачи сигналов