TETRA

Канальное кодированиеTETRA

1. Общая структура канального кодирования

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

  • блочного кодирования (block-encoding);
  • сверточного кодирования (convolutional encoding);
  • перемежения (interleaving);
  • скремблирования (scrambling).

При блочном кодировании входная информация разбивается на блоки по k символов, которые преобразуются по определенному закону в n-символьные блоки, где n>k [14]. Блочное кодирование предназначено, в основном, для обнаружения одиночных и групповых ошибок в канале связи и в определенных случаях для их исправления.

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

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

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

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

Стандарт TETRA описывает процесс канального кодирования как последовательное преобразование данных на 4-х уровнях, при этом входные данные обозначаются как биты типа 1 в блоках типа 1, данные после блочного кодирования - биты типа 2 в блоках типа 2 и т. д. После блочного кодирования к битам, закодированным блочным кодом, добавляются т. н. "хвостовые" биты.

 chanell_coding_1.gif

Рис. 8.1. Общая схема канального кодирования в стандарте TETRA.

Для дальнейшего описания процедур канального кодирования введем следующие обозначения:

  • x - порядковый номер типа бит и блоков, x = 1,2,3,4,5;
  • Kx - число битов, переносимых одним блоком типа x;
  • k - номер бита, k = 1,2,..., Kx;
  • bx(k) - бит типа x в с номером k в блоке типа x.

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

Блочный кодер обозначается (K2,K1), где K1 - число символов в блоке входной последовательности, а K2 - число символов в блоке выходной последовательности. Отношение R=K1/K2 носит наименование скорости кодирования (coding rate) и характеризует меру избыточности, вносимую кодером.

При блочном кодировании в стандарте TETRA используется двоичный систематический кодер, т. е. кодер, у которого каждый символ входной и выходной последовательности соответствует одному биту, а в состав блока выходной информации полностью включается блок входной информации, который дополняется p-битовым кодом циклического контроля избыточности (CRC - Cyclic Redundancy Check). Таким образом, K1 битов типа 1 преобразуются в K2 бита типа 2, где K2=K1+p.

CRC-коды вычисляются по правилу

F(X) = Xn-K1M(X) mod G(X),

где

M(X)=b1(1)XK1-1 + b1(2)XK1-2 + ... + b1(K1-1)X! + b1(K1),

G(X) - формирующий полином, различный для разных логических каналов;
n-K1 - количество создаваемых битов четности.

Многочлен F(X) является многочленом степени (n-K1-1) с коэффициентами f(0), f(1),.., f(n-K1-1), т. е.

chanell_coding_2.gif

Тогда K2 бит типа 2 имеют вид:
b2(k) = b1(k) при k = 1,2,.., K1
b2(k) = f(k-K1-1) при k = K1+1, K1+2,.., n.

Порождающий полином для канала речевого трафика имеет вид:

G(X) = 1 + X3 +X7,

для остальных каналов:

G(X) = 1 + X5 + X12 + X16 .

Для одного из логических каналов - канала назначения доступа AACH - используется блочное кодирование на основе кода Рида-Маллера. Коды Рида-Маллера представляют собой класс линейных кодов с простым описанием и декодированием, осуществляемым методом простого голосования [15].

Порождающая матрица кода Рида-Маллера r-го порядка длиной 2m определяется как совокупность блоков

chanell_coding_3.gif

где G0 - вектор размерности n=2m, состоящий из одних единиц; Gp - (m х 2m)- матрица, содержащая в качестве столбцов все двоичные m-последовательности; строки матрицы Gp получены из строк матрицы G1 как все возможные произведения p строк из G1 [15].

При блочном кодировании канала AACH стандарта TETRA 14 бит входной информационной последовательности должно преобразовываться в 30-разрядный выходной блок в соответствии с уравнением

[b2(1), b2(2),..,b2(30)] = [b1(1), b1(2),..,b1(14)] G,

где G - порождающая матрица, имеющая вид

G = [I14GRM],

где I14 - единичная матрица размером 14х14, а GRM - порождающая матрица кода Рида-Маллера размерностью 16х14.

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

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

Сверточное кодирование обеспечивает преобразование K2 входных бит типа 2, полученных в результате блочного кодирования, в K3 бит выходной последовательности, причем K3 > K2. Каждый бит выходной последовательности получается как результат суммирования по модулю 2 нескольких следующих друг за другом битов входной последовательности.

Сверточные кодеры обычно обозначаются как n,k,K, где n - количество бит в одном символе выходной последовательности, которые формируются за один такт работы кодера (соответствует числу сумматоров по модулю 2 в схеме кодера); k - количество бит в одном символе входной последовательности, поступающих на вход кодера за один такт; K - длина ограничения (constraint length), т. е. числовое значение, соответствующее длине сдвигового регистра, который участвует в формировании одного выходного символа. (Символы могут состоять из одного или нескольких бит.) При этом отношение R = k/n, как и в блочном кодере, называется скоростью кодирования.

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

В связи с тем, что объемы блоков, а также требования по помехоустойчивости и скорости передачи информации в разных логических каналах отличны друг от друга, сверточные коды для этих логических каналов также различаются. Сверточное кодирование в стандарте TETRA состоит из двух процедур:

  • кодирования "материнским" кодом с фиксированной скоростью (для канала речевых сообщений TCH/S она соответствует 1/3, для всех остальных каналов - 1/4);
  • перфорирования (прореживания, выкалывания) полученной последовательности, т. е. пропуска некоторых кодированных символов с целью приведения структуры размещения бит в соответствие со структурой кадра. Изменение алгоритмов перфорирования позволяет обеспечить различную скорость сверточного кодирования для разных логических каналов.

Кодирование материнским кодом

При кодировании материнским кодом используется сверточный кодер (n,1,5), где n - для канала трафика речи (TCH/S) равно 3, а для всех остальных каналов - 4.

Любой из порождающих многочленов материнского кода может быть записан в виде

chanell_coding_4.gif

где gi,j = 0 или 1, j = 0,1,2,3,4.

Это означает, что закодированные биты определяются как

chanell_coding_5.gif

где сумма берется по модулю 2, а b2(k-j)=0 при k≤j.

Порождающие многочлены материнского кода имеют вид:

  • для канала трафика речи:
    G1(D) = 1 + D + D2 + D2 + D3 + D4
    G2(D) = 1 + D + D3 + D4
    G3(D) = 1 + D2 + D4

  • для остальных каналов:
    G1(D) = 1 + D + D4
    G2(D) = 1 + D2 + D3 + D4
    G3(D) = 1 + D + D2 + D4
    G4(D) = 1 + D + D3 + D4.

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

Перфорирование материнского кода

Перфорирование материнского кода производится путем отбора K3 битов из nK2 битов V(k), полученных при сверточном кодировании. Отбор, т. е. определение битов выходной последовательности,

b3(j) = V(k) (j = 1,2,..,K3),

производится с помощью т. н. коэффициентов перфорирования P(1), P(2),.., P(t), определяющих номер выбираемого бита в отрезке входной последовательности длиной Period (значение t соответствует количеству выбираемых битов в данном отрезке), в соответствии с правилом вычисления значения k

k = Period ·((i-1) div t) + P(i - t(i-1) div t)),

где div означает результат целочисленного деления.

 chanell_coding_6.gif

Рис. 8.2. Схема сверточного кодера логических каналов TETRA.

Значения Period, i, t, а также конкретные значения P(1), P(2),.., P(t) определяются для каждого типа логического канала отдельно. Для большинства каналов i=j, однако для некоторых из них значение i вычисляется более сложным образом, например, для канала TCH/4,8

i = j + (j-1) div 65.

Period для большинства логических каналов равен 8, в каналах речевого трафика он может принимать значения 12 и 24. Параметр t может принимать значения 3, 6, 9, 17.

4. Перемежение

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

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

В стандарте TETRA применяется 2 вида перемежения: блочное и перемежение по N блокам.

Блочное перемежение

Блочный перемежитель обозначается (K,J), где K означает количество бит во входном информационном блоке, а J - количество бит, на которое разносятся соседние для входного блока биты. При блочном перемежении соответствие битов выходного блока битам входной последовательности, т. е.

b4(k) = b3(i) (i = 1, 2,..,K-1),

производится по следующему правилу:

k = 1 + ((J·i) mod K).

Работу схемы блочного перемежителя можно представить как проведение последовательной построчной записи входной информационной последовательности в матрицу, в которой длина строки соответствует J (число столбцов (K div J + 1)), а затем считывания записанной информации по столбцам.

Блочное перемежение с различными параметрами преобразования используется в каналах SCH/HD, SCH/HU, SCH/F, BNCH, STCH, BSCH и TCH/S.

Перемежение по N блокам

Перемежение по N блокам применяется в логических каналах передачи данных TCH/2,4 и TCH/4,8, информация по которым передается блоками длиной 432 бита.

При данной схеме перемежения блочная перестановка битов дополняется т. н. диагональным перемежением. Его особенностью является то, что оно производится одновременно для нескольких последовательных блоков, т. е. может осуществляться перестановка битов из одного блока в другой. Количество блоков, участвующих в перемежении, (N), может быть равным 1, 4 или 8 (N=1 - вырожденный случай, при котором перемежение осуществляется в пределах одного блока). При этом в результате перемежения образуется M+N-1 блоков по 432 бита, где M - целое число, т. е. процедура перемежения по N блокам может увеличивать общее количество информационных блоков.

Таким образом, при перемежении по N блокам преобразование входной информации производится в 2 этапа: 1-й этап - диагональное перемежение с увеличением общего количества блоков, 2-й этап - блочное перемежение в каждом из полученных блоков.

Первоначально M блоков B3(1), B3(2),.., B3(M), участвующих в преобразовании, с помощью диагонального перемежителя преобразуются в M+N-1 блоков B3'(1), B3'(2),.., B3'(M+N-1). Если обозначить k-й бит блока B3'(m) как b3'(m,k), где k=1,2,..,432, а m=1,2,..,M+N-1, то

b3'(m,k) = b3(m-j, j+1+(i N)) при 1≤m-j≤M и

b3'(m,k) = 0 вне этой области, где

j = (k-1) div (432/N) и i = (k-1) mod (432/N).

Практически это означает формирование M+N-1 блоков, каждый из которых состоит из 1/M-х частей следующих друг за другом M блоков (при M=2 это половина блока, при M=3 - 1/3 блока и т. д.). Для первых и последних блоков, количество которых соответствует увеличению общего числа блоков, свободные разряды заполняются нулями (при M=2 нулями заполняется вторая половина первого и первая половина последнего блока, при M=3 нулями заполняются первые две трети первого блока, первая треть второго блока, первая треть предпоследнего блока и первые две трети последнего блока). При этом следует учитывать, что предварительно в каждом из N блоков биты также переставляются путем сборки в блоке сначала бит с номерами 1, 1+M, 1+2M,.. , затем 2, 2+M, 2+2M и т. д.

На втором этапе производится блочное перемежение битов в каждом из полученных блоков в соответствии с правилом

b4(m,i) = b3'(m,k),

где i = 1 + ((103·k) mod 432), а k = 1,2,.., 432.

Скремблирование

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

Порождающий полином шифровальной последовательности имеет вид C(X)=1+X+X2+X4+X5+X7+X8+X10+X11+X12+X16+X22+X23+X26+X32, где сложение производится по модулю 2.

Инициализация 32-разрядного сдвигового регистра с обратными связями, используемого для формирования шифровальной последовательности, производится с помощью расширенной обучающей последовательности c1, c2,.., c30, приведенной в разделе 5.2, и двух дополнительных бит, равных 1.

Особенности канального кодирования для различных логических каналов

Канальное кодирование каждого из логических каналов имеет свои отличия, касающиеся наличия или отсутствия отдельных процедур кодирования, видов блочного кодирования и перемежения, а также параметров всех процедур канального кодирования. На рис. 8.3 и 8.4 показана структура канального кодирования для всех логических каналов за исключением канала речевого трафика TCH/S.

 chanell_coding_7.gif

Рис. 8.3. Структура канального кодирования логических каналов TCH7,2; SCH/HD; SCH/HU; SCH/F; BNCH; STCH.


 chanell_coding_8.gif

Рис. 8.4. Структура канального кодирования логических каналов AACH; BSCH; TCH4,8; TCH2,4.

Особенность канального кодирования трафика речи заключается в разделении первичного информационного блока из 137 бит, поступающих с выхода речевого кодера, на 3 класса в соответствии с чувствительностью к ошибкам в канале связи. (Биты 1-го класса являются наименее чувствительными и кодируются достаточно слабо, биты класса 3 обладают высокой чувствительностью к помехам и поэтому подвергаются наиболее мощному помехоустойчивому кодированию.)

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

1-й класс включает 51 из каждого речевого кадра (2 51), 2-й класс - 56 бит (2 56), 3-й класс - 30 бит (2 56). К наиболее чувствительному 3-му классу относятся:

  • 12 бит, содержащие 4 старших разряда 3-х 8-разрядных коэффициентов линейного предсказания;
  • 6 бит, содержащие 6 старших разрядов 8-разрядного значения периода основного тона первого (из 4-х) сегмента речевого кадра;
  • 12 бит, содержащие 3 старших разряда 4-х 6-разрядных коэффициентов усиления для каждого из сегментов речевого кадра.
  • Кодирование производится раздельно для каждого из классов:
  • биты 1-го класса подвергаются только перемежению и скремблированию;
  • над битами 2-го класса производится сверточное кодирование, перемежение и скремблирование;
  • биты 3-го класса подвергаются всем видам канального кодирования: блочному и сверточному кодированию, перемежению и скремблированию.

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

Структура кодирования для канала речевого трафика представлена на рис. 8.5.

 chanell_coding_9.gif

Рис. 8.5. Структура канального кодирования речевого трафика.


Автор: Овчинников А.М.


Также смотрите - Особенности систем радиосвязи


Хотите узнать больше о системах радиосвязи?

Хотите узнать, как построить или модернизировать
систему радиосвязи?