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

Алгоритмы работы когерентных транспондеров транспортных систем связи. Монография

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
81
Лестничное
кодиров ание
Кодирование
Хемминга
Маппинг
данны х
Канал связ и Демаппинг
дек одер
Хемминга 1
дек одер
Хемминга 2
дек одер
Хемминга N
БЧХ декодер 1
БЧХ декодер 2
БЧХ декодер N
Ячейка памяти
B
i-1,L
B
i-1,R
B
i,R
B
i,L
B
i+1,L
B
i+1,R
B
i+2,R
B
i+2,L
B
i+3,L
B
i+3,R
B
i+4,R
B
i+4,L
B
i+5,L
B
i+5,R
Окно дек одера
Выходная
последоват ельность
Входная
последоват ельность
Рисунок 3.14 – Архитектура кодера cFEC
Для внутреннего кодирования используется кодер Хемминга (128, 119) с кадрами данных u по k=119-бит. В нем производится генерация кодовых
слов
v uG=
на основе генератора матриц [93]. Для передачи сигналов
используется формат модуляции 16QAM с использованием кода Грея. Биты вектора v на выходе кодера Хемминга группируются в кортежи по 4-бита (один символ векторной диаграммы 16QAM сигнала) и передаются на модулятор Маха-Зендера, где производится электро-оптическое преобразование в линейный сигнал. На приемной стороне процедура декодирования производится зеркально – сигнал после детектирования и преобразования в электрический сигнал поступает на блок демаппинга, далее
в блоке «жесткого» декодирования Хемминга производится операция
Ham
N
параллельного декодирования.
Скорость потока зависит от количества параллельных блоков декодера Хемминга и их длительности:
Ham Ham
outHam
s
TN
R
R
=
, (3.11)
где
Ham
N
количество декодеров Хемминга;
Ham
T
– длительность включения декодера;
s
R
– скорость потока.
82
Для обеспечения скорости передачи в 400 Гбит/с в стандарте 400ZR подразумевается, что количество
Ham
N
параллельно работающих декодеров
Хемминга составит 34, 37 и 40. Такое количество блоков позволит обеспечить скорость ≈ 426,78 Гбит/с с учетом скорости 0,9373 внешнего лестничного кода.
Результирующие биты, содержащие в себе
BCH
N
компонентов,
поступают на лестничный декодер, где также производится операция параллельного декодирования.
3.6.2. Процедура кодирования cFEC
Процедура кодирования для лестничного кода определяется компонентными двоичными кодами длиной n и размерностью k, определяемой через последовательность двоичных матриц
0 1 2
, , ....
i
В В В В
с
размерностью
mm
, где
/2mn=
и
2k n m=
. Данные матрицы образуют
лестничную матрицу (как было описано в пункте 3.5.1), согласно рисунку
3.13. Все четные блоки в лестничной матрице являются транспонированными.
Начало кодирования начинается с заполнения матрицы
0
В
нулевыми
значениями. Каждая следующая матрицы
,,i i L i R
В В В

=

будет состоять из
двух частей – левой боковой
,iL
В
с размерностью
()k m m−
и правой боковой
,iR
В
с размерностью
(2 )m k m−
. При этом левая боковая матрица заполняется
информационными битами, а правая боковая матрица – битами проверки на четность, которые рассчитываются в процессе кодирования.
Биты проверки четности матрицы
,iR
В
рассчитываются для каждой
строки
km
в матрице
0 1,TL
ВВ


с помощью горизонтального
компонентного кода. Для каждой закодированной строки рассчитывается
2mk
проверочных бит, которые размещаются в соответствующей строке
правой боковой матрицы
1,R
В
. Как только матрица
1
В
заполняется
полностью, матрица
2,L
В
заполняется информационными битами и каждая
строка
1 2,TL
ВВ


кодируется вертикальным компонентным словом, чтобы в
результате получить проверочную матрицу
2,R
T
В
.
После заполнения матрицы
2
В
, матрица
3,L
В
заполняется
информационными битами и каждая строка
2 3,TL
ВВ


кодируется
83
вертикальным компонентным кодом. Результатом данной процедуры будет являться матрица проверки четности
3,TR
В
. После чего процедура кодирования
продолжается до тех пор, пока на входе имеются информационные биты.
В качестве компонентного кода для стандарта 400ZR используется расширенный БЧХ код (1022, 990, 8) [94]. Для выполнения кодирования i-ой
позиции две строки, заполненные нулями, добавляются на верх матрицы
1TiВ−
[93]. После чего каждая строка матрицы
1,
T
i i L
ВВ


с размером
512 990
кодируется для получения матрицы
1,R
В
с размерностью
512 32
,
содержащей в себе биты проверки на четность с использованием дополнительных перестановок.
БЧХ код синтезируется на основе поля Галуа. Элементы генерируются с помощью образующего полинома
3 10
1 xx++
. В то время как элементы поля
Галуа могут быть представлены как
j
, где
0 1022
j

, проверочная
матрица для стандарта 400ZR определяется специальной перестановкой строк в БЧХ и будет иметь следующий вид [94]:
1
3 3 3 3
2
5 5 5 5
3
[0] [1] [2] ... [ 1] [0] [1] [2] ... [ 1] [0] [1] [2] ... [ 1]
1 0 1 ... 0 0 1 0 ... 1
a a a a n H a a a a n H a a a a n H
 
 
 
=
−     
, (3.12)
БЧХ код в 400ZR строится путем умножения полинома исходного БЧХ
кода (1023, 993,7) с коэффициентом
2
1 x+
и реализации трехбитового
укорочения. Так, первые 30 строк проверочной матрицы и соответствующие им 30 бит синдрома используются для прямой коррекции ошибок (через декодирование, ограниченное минимальным расстоянием). Последние две строки матрицы проверки на четность являются комплиментарными двоичными векторами, которые используются для определения количества ошибок путем проверки на четность.
3.7. Открытый FEC
Стандарт OpenROADM 3.0 (разработан при участии ACACIA)
определяет спецификации для одноканальных систем передачи со скоростью от 100 до 400 Гбит/с для применения в транспондерах и коммутаторах.
84
Открытый FEC по своим характеристикам превосходит конкатенированный FEC, применяемый в интерфейсе 400ZR. Стандарт описывает чистый выигрыш от кодирования на уровне 11 дБ для DP-QPSK и 11,6 дБ для DP-16QAM.
Принципиальная схема кодирования представлена на рисунке 3.15. Блок кодирования состоит из двух параллельных кодеров/декодеров, куда поступают два параллельных потока по 3552 бита. Четные биты поступают на блок кодера 0, нечетные – на блок кодера 1.
Скремблер
Кодер 0
Кодер 1
Маппинг
Интерливинг
172032 байт
3552 байта
3552 байта
7104 байта
4096 байта
4096 байта
oFEC кодер
Рисунок 3.15 – Алгоритм кодирования oFEC
В стандарте openROADM каждый из кодеров/декодеров формирует свое кодовое слово. В случае с oFEC кодовым словом будет являться матрица с количеством столбцов N=128 и полубесконечным числом строк. Основное свойство матрицы заключается в том, что каждый бит является частью двух составных кодовых слов, в котором каждое из слов представляет собой двоичный вектор x c длиной 2N. Данный вектор удовлетворяет проверке на четность, т.е.
0xH=
, где H бинарная проверочная матрица размера (2N,
2N-k).
В частности, в стандарте oFEC, Н является матрицей проверки на четность расширенного кода БЧХ (255, 239). Этот код имеет минимальное расстояние Хемминга равное 6.
3.7.1. Структура кодера oFEC
Кодовые слова составных компонентов упорядочены для обеспечения высокоскоростного параллельного кодирования/декодирования. Для определения принадлежности бит к конкретному составному кодовому слову используется следующая структура:
поток бит разделяется на квадратные матрицы размером 16 х 16
(рисунок 3.16). В каждой строке находится N/B блоков, где каждый квадратный блок определяется номером строки квадратного блока R, и номером столбца квадратного блока С (где С = 0, 1… N/B-1).
85
каждый бит в блоке определяется номером строки r (где r=0,1…B-1) и
номером столбца с (где с=0,1…B-1). То есть в данном бесконечном потоке каждый бит будет определяться набором [R, r, C, c].
количество строк защитного интервала должно быть четным и быть
равным 2G.
86
0 1 2 3 4 5 6 7
-2
-1 0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19 20 21 22 23
−
1−+
(-2,0,0,0) (-2,0,1,0)
. . .
B
B
Рисунок 3.16 – Структура oFEC
Компонент, составляющий кодовое слово, определяется номером
строки, которая содержит все биты второй части кодового слова. Любой k-ый
87
бит (k=0, 1….2N-1) составного кодового слова (R, r) является битом, определенным с помощью следующего массива:
если k < N:
( 1) 2 2 / 2[ / ] [ / ] ( % ) 1R G N B k B k B k B r +
(3.13)
если k N:
[(k N)/ ] ( % ) 1R B r k B−
(3.14)
Рисунок 3.16 наглядно иллюстрирует работу алгоритма. Допустим,
рассмотрим составное кодовое слово (20, 0). Положение бит данного слова обозначено красными вертикальными линиями в полубесконечной матрице. Биты с 0 по 15 находятся в столбце 0 блока (1, 0), биты с 16 по 31 – в столбце 0 блока (3, 1), а биты со 112 по 127 – в столбце 0 блока (15, 7). У бит со 128 по 255, расположенных в строке 0-ых блоков (20, 0) – (20, 7), индексы будут увеличиваться, по мере продвижения вправо по строке матрицы.
Поэтому биты с 0 по 127 называют передней частью составляющего
компонента кодового слова, а с 128 по 255 – задней частью. Необходимо обратить внимание, что если задняя часть составного кодового слова располагается в нечетном ряду квадратной матрицы (желтый ряд), то передняя часть будет в четном ряду (синий ряд), и наоборот.
Блоки, расположенные в начальной и конечной части кодового слова,
являются защитными блоками по отношению к интересующему кодовому слову.
3.7.2. Процедура кодирования oFEC
Процедура кодирования осуществляется последовательно, в порядке
возрастания индекса строки. В момент кодирования составного кодового слова (R, r) все составные компоненты кодового слова (R’, r’), R’ < R – 2G должны быть уже закодированы.
На вход декодера поступают квадратные блоки с размером (2B) × (2N –
k) = 32 × 111 bits. Для идентификации блоки на входе декодера нумеруются. Каждый i-ый входящий бит размещается на входе блока кодера [i / (32 ×
111)] на место, указанное значением i % (32 × 111), согласно рисунку 3.17.
88
Стоит отметить, что входные блоки кодера имеют размер 16 × 16 бит, за исключением крайне правой стороны, где размер блока 16 × 15.
Бит k=0, 1, 2 … строки p в блоке P кодера размещается на позиции N+k
составного компонента кодового слова (2 P + [p/B], p % B). После кодирования выходная структура из блока кодера имеет вид прямоугольных блоков с размером (2 B) × N = 32 × 128 bits.
Бит k=0, 1, 2 … строки p в прямоугольном блоке P будет уже являться
битом (2P + [p/B], [p/B], k/B, p % B) полубесконечного массива. В этом случае выходная структура блока будет иметь вид, представленный на рисунке 3.18.
Рисунок 3.17 – Структура последовательностей на входе кодера
Рисунок 3.18 – Структура последовательностей на выходе кодера
0 1 … 15
16 17 ... 31
32…
.
.
. .
240 .. . 255
512…
. . .
.
. .
… 767
1024 …
. . .
.
. .
… 1279
1536 …
. . .
.
. .
… 1791
2048 …
. . .
.
. .
… 2303
2560 …
. . .
.
. .
… 2815
3072
3073 … 3086
3087 … 3101 3102 … 3599
.
.
. .
3297 … 3311
256… 271
272
. .
. .
496 511
768
.
. .
. .
…. 1023
1280
.
. .
. .
… 1535
1792 ..
.
. .
. .
… 2047
2304…
.
. .
. .
… 2559
2816.. .
. .
. .
… 3071
3312 … 3326 3327 …
. .
. .
3537 … 3551
0 1 … 15
16 17 ... 31
32…
.
. .
.
240 .. . 255
512…
. . .
. .
.
… 767
1024 …
. . .
. .
.
… 1279
1536 …
. . .
. .
.
… 1791
2048 …
. . .
. .
.
… 2303
2560 …
. . .
. .
.
… 2815
3072
. . .
. .
.
… 3327
3584
. . .
. .
.
… 3839
256… 271
272
.
. .
.
.
496 511
768
. .
. .
. .
…. 1023
1280
. .
. .
. .
… 1535
1792 ..
. .
. .
. .
… 2047
2304…
. .
. .
.
.
… 2559
2816.. . .
. .
.
.
… 3071
3328
. .
. .
. .
… 3583
3840
. .
. .
. .
… 4095
89
Любой из итеративных алгоритмов, предназначенных для турбокодов,
может быть адоптирован для декодирования кодовых слов открытого FEC.
Для обеспечения синхронизации в работе модулей с кодированием oFEC
используются тренировочные (обучающие) и пилотные последовательности, которые отправляются после начала работы когерентного модуля. По стандарту последовательность таких символов устанавливается на внешних четырех точках конселяционной диаграммы DP-nQAM. Пилотная последовательность представляет собой псевдослучайную последовательность QPSK-сигнала с различными значениями для X- и Y- поляризации (рисунок 3.19).
X
Псеводслучайная
последовательностъ
0х19Е
QPSK Маппер
2х115=230 бит
Псеводслучайная
последовательностъ
0х0D0
QPSK Маппер
2х115=230 бит
Y
Рисунок 3.19 – Пилотная последовательность для 16QAM
В качестве генератора пилотной последовательности используется
полином
10 8 4 3
1x x x x+ + + +
. Пилотные символы вставляются через каждые 32 символа, начиная с момента передачи первого символа в кадре. При этом каждый подкадр начинается с обучающей последовательности.
3.8. Перспектива помехоустойчивого кодирования
В данной главе были рассмотрены основные вопросы, связанные с использованием помехоустойчивого кодирования для когерентных систем оптической связи со скоростью более 100 Гбит/с. Наиболее привлекательными алгоритмами, используемыми для протяженных систем связи, являются SD-FEC на базе третьего поколения FEC. Один из самых известных и часто используемых кодов – это LDPC-код, кроме него хорошо зарекомендовал себя лестничный код с избыточностью порядка 20%. Для коротких расстояний используются унифицированные oFEC и cFEC коды, в основе которых также предлагается использовать лестничные коды.
Если смотреть более широко, то роль помехоустойчивого кодирования весьма важна не только для применения в сегменте передачи информации по различным каналам связи, будь то оптическое волокно, медножильные
90
провода или атмосферные каналы, но и в сегменте обеспечения надежности хранения данных, который базируется на анализе ошибок, а также на процедуре их поиска и коррекции.
Возможность использования виртуализации данных и инструментов репликации между распределенной сетью ЦОДов позволяют обеспечить высокий уровень надежности вкупе с помехоустойчивым кодированием. Такие коды позволяют оптимизировать работу распределенных систем хранения данных, позволяя достичь оптимального соотношения между объемом хранимой информации и нагрузкой, оказываемой на сеть передачи данных.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]