СПОСОБ ДЛЯ КОДИРОВАНИЯ СООБЩЕНИЯ K' ДАННЫХ ДЛЯ ПЕРЕДАЧИ ОТ ПЕРЕДАЮЩЕЙ СТАНЦИИ К ПРИНИМАЮЩЕЙ СТАНЦИИ И СПОСОБ ДЛЯ ДЕКОДИРОВАНИЯ, ПЕРЕДАЮЩАЯ СТАНЦИЯ, ПРИНИМАЮЩАЯ СТАНЦИЯ И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
METHOD FOR ENCODING DATA MESSAGE FOR TRANSMISSION FROM TRANSMITTING STATION TO RECEIVING STATION AND DECODING METHOD, TRANSMITTING STATION, RECEIVING STATION AND SOFTWARE

Изобретение относится к способу кодирования сообщения K' данных для передачи от передающей станции к принимающей станции, а также к способу для декодирования, соответствующей передающей станции, соответствующей принимающей станции и соответствующему программному обеспечению.
Создание хороших имеющих малую плотность кодов проверки четности (кодов LDPC) стало в последнее время одной из самых насущных тем исследований в теории кодирования. Несмотря на существенный прогресс в асимптотическом анализе кодов LDPC [1], создание практических кодов короткой и умеренной длины все еще остается открытой проблемой. Главная причина этого состоит в том, что анализ эволюции плотности требует формирования нерегулярных кодов LDPC, в то время как большинство способов проектирования алгебраических кодов, разработанных до сих пор, может сформировать только регулярные конструкции, которым внутренне присущ недостаток в поведении приближения к возможностям. Кроме того, характеристика практической длины кодов LDPC зависит не только от порога асимптотического итерационного декодирования, но также и от кодового минимального расстояния.
Для высокоскоростных кодов минимальное расстояние представляется доминирующим фактором. Это позволяет решать проблему конструирования кодов с использованием традиционных способов теории кодирования, таких как конечные геометрии, разностные наборы и т.д. (см., например, [2, 3, 4]). Но для более низкоскоростных кодов (например, со скоростью 1/2) нужно найти компромисс между минимальным расстоянием и порогом итерационного декодирования. Это типично достигается выполнением некоторого рода обусловленного случайного поиска [5, 6, 7]. Коды, получаемые этими способами, демонстрируют очень хорошие характеристики, но являются очень трудными для реализации из-за отсутствия какой-либо структуры. Один способ решить эту проблему состоит в том, чтобы изменить структурированную регулярную матрицу проверки четности так, чтобы она стала нерегулярной [8, 9]. Однако нет никакого формализованного способа выполнить такую модификацию, и много испытаний необходимо выполнить, прежде чем будет найден хороший код.
c
T
T
Коды LDPC представляют подкласс линейных кодов. Любое кодовое слово  линейного кода удовлетворяет уравнение Hc=0, где H - матрица проверки четности кода. С другой стороны, для заданного сообщения К данных соответствующее кодовое слово может быть получено как с=KG, где G - генераторная матрица кода. Это подразумевает, что матрица Н проверки четности и генераторная матрица G должны удовлетворять уравнению HG=0. Для заданной матрицы Н проверки четности можно сконструировать много различных генераторных матриц G. Всегда возможно (вероятно, после применения перестановки столбцов к матрице Н проверки) сконструировать генераторную матрицу формы G=[A I], где I - единичная матрица, и A - некоторая другая матрица. В этом случае кодовое слово, соответствующее сообщению К данных, подобно с=KG=[KA K], то есть сообщение К данных появляется как подвектор кодового слова. Это известно как систематическое кодирование. Преимущество систематического кодирования состоит в том, что, как только все ошибки канала удалены из кодового слова, сообщение данных может быть немедленно извлечено из него, без какой-либо постобработки. В некоторых случаях можно сконструировать другие способы для систематического кодирования сообщений данных, более эффективные, чем умножение на генераторную матрицу в систематической форме. Однако способ кодирования не влияет на способность исправления ошибок кода.
ij
z
i
Также верно, что если H - матрица проверки четности некоторого линейного кода, то произведение SH также является матрицей проверки четности для того же самого кода, где S - несингулярная матрица. В частности, если S - матрица перестановки, и H - матрица низкой плотности, исполнение алгоритма декодирования LDPC распространения достоверности [10] на матрице SH дало бы те же самые результаты, что и для случая исходной матрицы H. Многие конструкции кода LDPC основаны на расширении матрицы Р шаблона путем подстановки вместо заданных записей p матриц перестановки p×p, где p - коэффициент расширения. Используя конструкцию согласно фиг. 2-8, могут генерироваться коды с различной длиной, но той же самой скорости, начиная с единственной матрицы шаблона. Более определенно, их матрица проверки четности задана двумя подматрицами, первая H является двойной диагональной матрицей, реализующей так называемый зигзагообразный шаблон, и вторая H сконструирована на основе расширения матрицы шаблона, то есть путем замены элементов перестановкой и нулевыми матрицами. Путем изменения коэффициента расширения получаются коды различных длин. Очевидно, это требует использования различных матриц перестановок. Несмотря на простоту этой операции, изменение коэффициента расширения требует переадресации краев в графе Таннера соответственно матрице проверки четности. Так как структура графа Таннера реализована для так называемого декодирования "прохождения сообщения" или "распространения достоверности" в приемнике, изменение в его структуре может привести к существенной сложности аппаратных средств при рассмотрении всего семейства кодов.
Возможность получить более длинные коды из более коротких кодов обеспечивается посредством конкатенированного кодирования [3]. Однако это обычно изменяет также кодовую скорость. Кроме того, коды LDPC, как известно, работают не так хорошо, если используются в конкатенированных кодовых конструкциях. Причина состоит в том, что чрезвычайно трудно получить хорошее распределение степени узлов в графе Таннера конкатенированного кода.
Целью настоящего изобретения является создание улучшенного способа для кодирования сообщения данных с использованием кода, длина которого может быть выбрана таким образом, чтобы можно было преодолеть вышеупомянутые недостатки относительно структуры декодера и кодовой скорости. Другой целью изобретения является создание соответствующего способа для декодирования, соответствующей передающей станции и соответствующей принимающей станции, а также соответствующего программного обеспечения.
Цель достигается способом для кодирования, способом для декодирования, передающей станцией, принимающей станцией и программным обеспечением согласно независимым пунктам формулы изобретения.
Предпочтительные варианты осуществления представлены в зависимых пунктах формулы изобретения.
0
0
z
i
z
0
0
i
0
0
0
i
i
i
0
0
0
i
z
i
0
z
0
0
T
(w)
Согласно заявленному способу для кодирования сообщения K' данных для передачи от передающей станции к принимающей станции, кодирование генерирует кодовое слово c' длины n=w·n, где w и n - целые числа, и генерация кодового слова c' реализуется и/или математически записывается как умножение сообщения K' данных на генераторную матрицу G', c'=K'G', тогда как генераторная матрица G' является решением матричного уравнения H'G'=0, при H'=[H' H'], где H' является матрицей w·m×w·m с двумя смежными диагоналями из 1, имеющей 0 во всех других позициях, и H' является матрицей w·m×w·(n-m), и H' является матрицей, полученной чередованием строк блочно-диагональной матрицы H', имеющей w матриц H размера m×(n-m) на диагонали и 0 во всех других позициях, причем H дополнительно выбрана таким образом, что H=[H H] является матрицей проверки четности кода с длиной n, где H является матрицей m×mс двумя смежными диагоналями из 1, имеющей 0 во всех других позициях.
0
0
Изобретение обеспечивает возможность создания кодов с w-кратной длиной кода-прототипа с длиной n, не изменяя соответствующую структуру графа Таннера. Поэтому структура декодера, например, компоненты аппаратных средств, используемые для кода-прототипа длиной n, могут также использоваться для декодирования кодовых слов, кодированных согласно заявленному способу.
В дополнение к чередованию строк, также возможно чередовать столбцы матрицы H'. Получающийся код эквивалентен и имеет ту же самую характеристику, что и код, генерированный без чередования столбцов.
i
0
z
i
z
0
0
c
T
Предпочтительным образом H дополнительно выбирается таким образом, что кодирование сообщения К данных, используя генераторную матрицу G, генерирует кодовое слово  длины n, с=KG, где генераторная матрица G является решением матричного уравнения HG=0, при H=[H H], где H является матрицей mx m с двумя смежными диагоналями из 1, имеющей 0 во всех других позициях.
i
u
Предпочтительным образом H получается чередованием строк первой матрицы H, которая является блочной матрицей, состоящей из матриц перестановки и нулевых матриц.
z
u
z
u
u
z
u
-1
-1
Это означает, что матрица H проверки четности соответствующего кода определяется как H=[H SH]=S[SH H], где S - матрица перестановки, используемая для чередования строк первой матрицы H. Поскольку перестановка строк матрицы проверки четности не изменяет код, можно использовать также матрицу проверки четности в форме [SH H].
z
i
-1
T
Предпочтительным образом используется генераторная матрица G', которая удовлетворяет условию G'=[((H') H') I].
z
i
i
z
z
z
i
z
i
i
i
i
i
i
z
T
-1
T
-1
(w)
(w)
T
(w)
-1
Поэтому, если кодовое слово c' математически записано как c'=[c' c'], то умножение сообщения K' данных и этой генераторной матрицы G' приводит к c', являющемуся сообщением K' данных, в то время как c' задается как c'=(H')H'K'. Умножение на подматрицу (H')H' может быть реализовано или прямо, или как последовательность следующих преобразований. Поскольку H'=S'H', где S' - матрица перестановки, используемая для чередования строк блочно-диагональной матрицы H', можно или умножить вектор K' (сообщение данных) непосредственно на H' или умножить его сначала на H' и затем чередовать элементы полученного вектора. Умножение вектора на матрицу H' может быть осуществлено посредством фильтра с передаточной функцией 1/(1+D').
i
(w)
Предпочтительным образом прямоугольный перемежитель используется для перемежения (чередования) строк блочно-диагональной матрицы H', то есть с использованием перестановки
u
ij
ij
ij
ij
ij
Предпочтительным образом первая матрица H сгенерирована расширением матрицы Р шаблона размером s×t, причем расширение выполняется заменой всех элементов pматрицы Р шаблона, которые удовлетворяют условию 0≤p<∞, матрицами циклических перестановок размера p x p, имеющими значение 1 в позициях (r, (p+r) mod p), при r=0.. p-l, i=0.. s-l и j=0.. t-1, и заменой всех других элементов P, которые удовлетворяют условию p=∞ или p<0, нулевыми матрицами размера p x p.
0
i
z
0
0
Изменяя коэффициент расширения p, различные значения для n могут быть выбраны, потому что изменение p изменяет размер H и H, то есть n и m.
u
Предпочтительным образом прямоугольный перемежитель используется для перемежения (чередования) строк блочно-диагональной матрицы H, то есть с использованием перестановки
T
Заявленный способ для декодирования сообщения K' данных из кодового слова c', принятого от передающей станции, показывает все необходимые этапы для декодирования кодового слова c' и использует матрицу Н' проверки четности, которая построена согласно заявленному способу для кодирования. Согласно заявленному способу для кодирования, матрица H' проверки четности используется в уравнении H'G' =0, которому должна удовлетворять генераторная матрица G', которая используется для того, чтобы математически выразить кодирование сообщения K' данных.
0
0
z
i
z
0
0
i
0
0
0
i
i
i
0
0
0
i
z
i
0
z
0
0
T
(w)
Соответствующая изобретению передающая станция содержит блок кодирования, чтобы кодировать сообщение K' данных в кодовое слово c' длины n=w·n, где w и n - целые числа, и генерация кодового слова c' реализуется и/или математически записывается как умножение сообщения K' данных на генераторную матрицу G', c'=K'G', тогда как генераторная матрица G' является решением матричного уравнения H'G'=0, при H'=[H' H'], где H' является матрицей w·m×w·m с двумя смежными диагоналями из 1, имеющей 0 во всех других позициях, и H' является матрицей w·m×w·(n-m), и H' является матрицей, полученной чередованием строк блочно-диагональной матрицы H', имеющей w матриц H размера m x (n-m) на диагонали и 0 во всех других позициях, причем H дополнительно выбрана таким образом, что H=[H H] является матрицей проверки четности кода с длиной n, где H является матрицей m×mс двумя смежными диагоналями из 1, имеющей 0 во всех других позициях.
Заявленная принимающая станция содержит средство декодирования для декодирования кодового слова c', принятого от передающей станции, используя матрицу H' проверки четности, построенную согласно заявленному способу для кодирования, для проверки четности кодового слова c'.
Соответствующее изобретению программное обеспечение для кодирования сообщения K' данных содержит код программы, который выводит кодовое слово c' из входного сообщения K' данных, если программное обеспечение исполняется на компьютере, с использованием заявленного способа для кодирования. Далее, соответствующее изобретению программное обеспечение декодирования кодового слова c' содержит код программы, который выводит сообщение K' данных из входного кодового слова c' и использует матрицу H' проверки четности, построенную согласно заявленному способу для кодирования, если программное обеспечение исполняется на компьютере.
Далее изобретение описано согласно вариантам осуществления, показанным на чертежах:
Фиг. 1 - граф Таннера приведенного для примера кода (уровень техники),
Фиг. 2 - матрица проверки четности и граф Таннера с зигзагообразным шаблоном,
Фиг. 3 - первый вариант осуществления кодера,
Фиг. 4 - второй вариант осуществления кодера,
Фиг. 5 - матрица Р шаблона для кодов 1/2 скорости,
Фиг. 6 - характеристика кодов 1/2 скорости,
Фиг. 7 - характеристика кодов 2/3 скорости,
Фиг. 9 - характеристика кодов 2/3 скорости с длинами w·360, w=1, 2, 3, построенных согласно заявленному способу кодирования, и кодов 2/3 скорости с длинами 720 и 1080, построенных с использованием различных коэффициентов р расширения.
Передающая станция является, например, терминалом или базовой станцией системы радиосвязи.
Принимающая станция является, например, терминалом или базовой станцией системы радиосвязи.
Терминал является, например, мобильным радиотерминалом, в частности, мобильным телефоном или адаптером стационарного устройства, для передачи данных изображений и/или звуковых данных, для факсимильной передачи, сообщений службы коротких сообщений (SMS) и/или сообщений электронной почты, и/или для доступа в Интернет.
Изобретение может предпочтительным образом использоваться в коммуникационной системе любого типа. Коммуникационная система является, например, компьютерной сетью или системой радиосвязи.
Системы радиосвязи представляют собой системы, в которых передача данных между терминалами выполняется по воздушному интерфейсу. Передача данных может быть двунаправленной и однонаправленной. Системы радиосвязи являются, в частности, системами сотовой радиосвязи, например, согласно стандарту GSM (Глобальная Система для Мобильных Коммуникаций) или стандарту UMTS (Универсальная Мобильная Телекоммуникационная Система).
Также будущие мобильные системы радиосвязи, например, согласно четвертому поколению, а также самоорганизующиеся (ad hoc) сети должны пониматься как системы радиосвязи. Системами радиосвязи также являются беспроводные локальные сети (WLAN) согласно стандартам Института инженеров по электротехнике и радиоэлектронике (IEEE), таким как 802.11a-i, Hiper-LANl и HiperLAN2 (Локальная радио сеть высокой эффективности), а также сети Bluetooth.
Краткий обзор кодов LDPC
m
Н
k≥n
-m
H
=1
0
0
0
0
0
0
ij
n
×
Коды LDPC определены как класс линейных двоичных кодов, имеющих разреженную  матрицу  проверки четности. Размер кода задается выражением . Альтернативно, код LDPC может быть охарактеризован двудольным графом (графом Таннера) с n узлами переменных и m узлами проверки [10]. Ребро соединяет узел j переменной с узлом i проверки, если и только если . Например, рассмотрим следующую матрицу проверки четности:
Фиг. 1 представляет ассоциированный граф Таннера.
Степень узла в графе - это число ребер, связанных с этим узлом. Если различные узлы в графе Таннера имеют различную степень, то код называют нерегулярным. В противном случае код является регулярным. Граф Таннера характеризуется своими распределениями степени узлов переменной и проверки  и , где  и  - доли ребер, соединенных с узлами переменной и проверки степени i, соответственно. Эти перспективные распределения ребер могут быть преобразованы в перспективные распределения узлов  и , где  и  - доли узлов переменной и проверки степени i. Основанное на графе описание кода LDPC позволяет проектировать алгоритм декодирования с итеративным прохождением сообщения [10]. Этот алгоритм был проанализирован в [11] для случая бесконечно длинных кодов и двоичных по входу, без запоминания и симметричных по выходу каналов. Было показано, что для данного ансамбля кодов LDPC существует значение параметра канала (например, отношение сигнала к шуму) такое, что итеративное декодирование успешно для всех значений параметра, превышающих этот порог. Возможно проектировать численный алгоритм для вычисления порога для заданных распределений степени узлов и даже выполнить их оптимизацию, чтобы минимизировать его [11].
1
1
2
3
5
2
1
Для кодов LDPC конечной длины эффективность зависит не только от асимптотического порога итеративного декодирования, но также и от структуры цикла кода. Обхват графа Таннера представляет собой минимальную длину цикла графа. Обхват графа на фиг. 1 равен 6, так как имеется цикл длиной 6 v-c-v-c-v-c-v, соединяющий его вершины. Короткие (в частности, длины 4) циклы, как известно, оказывают негативное воздействие на эффективность алгоритма декодирования прохождения сообщения, так что таких графов Таннера нужно, в принципе, избегать. Однако в [6] было показано, что не все короткие циклы одинаково вредны. Если узлы в цикле связаны с узлами, не участвующими в этом цикле, то внешняя информация может все еще проходить по графу Таннера, и декодирование может продолжиться. Возможно ввести приближенную степень внешних для цикла сообщений (АСЕ) контура, как [6]
d
ACE
>η
l≤2l
≤l
η
i
min
ACE
ACE
где суммирование выполнено по всем переменным узлам в контуре, и  - степень i-го переменного узла. Можно наложить ограничение  на минимальное значение АСЕ по всем циклам длины  в построенном графе Таннера. В [12] было показано, что в этом случае число наборов остановки (то есть конфигурации стирания, невосстанавливаемые алгоритмом прохождения сообщения) размером  уменьшается по экспоненте с уменьшением . Так как позиции ненулевых символов любого кодового слова также составляют набор остановки, кондиционирование АСЕ также улучшает кодовое минимальное расстояние (и, вообще, спектр весов).
l
2
l
1>Λ
>>0
H
2
i
Уравнение (1) подразумевает, что АСЕ цикла, использующего только узлы степени 2, равна нулю. Кроме того, известно, что любой цикл длиной  степени в части степени 2 графа Таннера соответствует кодовому слову веса. Так как оптимизированные распределения степеней узлов обычно имеют  (то есть должно быть существенное количество узлов степени 2), особенно важно максимизировать длину циклов, проходящих через часть степени 2 графа Таннера. Это может быть достигнуто путем упорядочения по возможности большего количества узлов степени 2 узла в зигзагообразный шаблон, показанный на фиг. 2. Если необходимо, остальные узлы степени 2 могут быть упакованы в часть . Зигзагообразный шаблон также не требует использования всех узлов проверки. Это подразумевает, что зигзагообразный шаблон является очень хорошей отправной точкой в проектировании кода LDPC.
z
i
-1
T
Следует отметить, что систематическое кодирование сообщения К данных с таким кодом может быть выполнено путем умножения K на генераторную матрицу G = [(H  H)I].
Описание вариантов осуществления, показывающих возможную конструкцию кодов LDPC
H
i
Матрица  должна быть построена при следующих ограничениях:
Н=[H
H
]
z
i
1) граф Таннера полученной матрицы должен иметь распределение степеней узлов, приблизительно равное целевому распределению;
2) следует избегать кодовых слов низкого веса;
H
ACE≥η
3) в более широком смысле, следует избегать малых наборов остановки в , то есть ограничение для некоторых η должно быть удовлетворено;
4) следует избегать циклов длиной 4;
H
i
5)  должно быть структурировано.
H
i
Эти руководящие принципы осуществлены в алгоритме для построения .
H
s x t
P
p×p
(r,(p
+r)mod p), r=0.. p-l, i=0.. s-l и j=0.. t-1.
p×p
H
H
sp×tp
H
i
ij
ij
ij
u
u
i
Предлагается построить  двумя этапами. Во-первых, расширим  матрицу шаблона , то есть заменим ее элементы p, которые удовлетворяют условию 0≤p<∞, матрицами циклических перестановок размера , имеющими значение 1 в позициях  Заменим все другие элементы P нулевыми матрицами размера . Первая матрица  получена расширением матрицы Р шаблона. Во-вторых, выполним перестановку (чередование) строк первой матрицы . Это приводит к  матрице . Одна возможная перестановка строк задана прямоугольным перемежителем:
s, p
t
m
H
m
×n
Н
m
=sp, n
=tp+m
0
i
0
0
0
0
0
ij
Здесь и  являются параметрами построения. Применяя  столбцов зигзага к , получаем  матрицу  проверки четности с . Матрица Р шаблона является результатом процесса оптимизации, описанного ниже, с использованием матрицы-прототипа М, имеющей 1 в позициях (i, j): 0≤p<∞ и 0 в других позициях.
H
p
М
i
ij
Отметим, что  может быть определена с максимум  целых чисел , где  является числом «1» в матрице-прототипе.
c
c
c
k
Фиг. 3 и фиг. 4 иллюстрируют варианты осуществления кодера для описанного кода, используемого для кодирования сообщения К данных в кодовое слово . Сообщение К данных является, например, вектором  битов, который должен быть передан от передающей станции Узел B к принимающей станции UE. Принимающая станция UE содержит процессор PR для декодирования кодового слова , в то время как декодирование включает использование матрицы Н проверки четности для выполнения алгоритма декодирования распространения достоверности и проверки четности кодового слова .
c
z
i
z
i
T
H=[H
H
]
На фиг. 3 кодовое слово , которое может быть математически записано как c=[c c], генерируется умножением сообщения К данных на генераторную матрицу HG=0. Матрица  проверки четности строится, как описано в самом последнем разделе.
z
i
z
i
i
z
z
z
i
z
u
u
i
z
-1
T
T
-1
T
c
c
На фиг. 4 еще более эффективный подход представлен при использовании генераторной матрицы G=[(H  H)I]. Поэтому, если кодовое слово  математически записано как c=[c c], то умножение сообщения К данных и этой генераторной матрицы G дает в результате первый компонент c, являющийся сообщением К данных, в то время как второй компонент c задается как c  = H HK. То есть второй компонент c кодового слова  вычисляется с использованием перестановки строк путем умножения сообщения К данных на первую матрицу H и перестановки строк результата этого умножения и фильтрации результата. Альтернативно, перестановка строк может применяться к первой матрице H перед умножением на сообщение К данных. Матрица Н проверки четности, то есть матрицы Hи H строятся таким же образом, как описано для фиг. 3.
М
(Λ(x),R(x))
p
Н
ij
Матрица-прототип  может быть построена различными способами, например вручную или с использованием алгоритма PEG [5], так чтобы она удовлетворяла приблизительно данную пару распределений степени узлов . Конкретные значения  целых чисел в матрице Р шаблона должны быть выбраны так, чтобы полученная матрица  проверки четности удовлетворяла требованиям 1-5, представленным выше. Следующий раздел представляет рандомизированный алгоритм для их вычисления.
Алгоритм оптимизации
H
1/(1+D)
u
z
i
Идея алгоритма оптимизации, представленного ниже, заключается в том, что входные слова низкого веса после умножения на первую матрицу , перемежитель и  фильтр, как показано на фиг. 4, не должны преобразовываться в векторы (c,c) низкого веса. Это весьма сходно с задачей конструирования перемежителей для турбо кодов.
y = H
x
z
-1
Структура зигзагообразного шаблона образца позволяет вычислять вес вектора   как
x
: 1≤x
<x
<…≤ m, j = 1…l
x
х
=0
H
j
j
j+1
0
i
где z - число переменных узлов в зигзагообразном шаблоне, позиции ненулевых битов в векторе  на входе зигзагообразного кодера, и . Это выражение принимает во внимание случай зигзагообразного шаблона, не покрывающего все узлы проверки в графе, и случай линейно зависимых столбцов в .
p
x=H
c
1/(1+D)
d
d
p
К
k
wt(K)≤α
p
ij
i
i
min
min
ij
ij
T
В принципе, это позволяет учитывать все возможные входные шаблоны, вычислять для данного набора  входной вектор   для  фильтра, находить вес выхода фильтра и выводить минимальное расстояние  полученного кода. Тогда можно выполнить максимизацию  по всем возможным значениям . Однако этот подход весьма непрактичен из-за экспоненциального числа входных шаблонов и огромного размера пространства поиска. Поэтому нужно ограничить область поиска сообщениями  данных из  битов, имеющими достаточно малый вес . Кроме того, оптимизация значений  может быть выполнена на основе столбец за столбцом, используя изменение генетического алгоритма:
1. Построить матрицу-прототип М с необходимым распределением степеней столбцов и строк.
j: = 0
2. Принять .
p
i
M
=1.
ij
ij
3. Генерировать  случайным образом для всех  s.t.
η
4. Удостовериться, что матрица , полученная расширением первых j+1 столбцов матрицы Р шаблона и перестановкой строк расширенной матрицы соответствующим образом, не имеет циклов длины 4, и ее минимальная АСЕ не меньше, чем данный порог . Это может быть осуществлено, эффективно используя алгоритмы, представленные в [13, 6]. При неудаче перейти к этапу 3.
5. Учесть все возможные входные шаблоны.
S
min
Определить вес ассоциированных выходных векторов зигзагообразного кодера, используя (1), и найти минимальный вес кодового слова, который обозначен здесь .
p
S
S
.
ij
min
min
6. Повторить этапы 3-5 данное количество раз и выбрать значения , максимизирующие . Пусть  будет максимальным значением
j:=j+1
7. Пусть .
j <t
8. Если , перейти к этапу 1.
M
α≈5
Отметим, что  задает верхнюю границу для минимального расстояния полученного кода. Ясно, что увеличение α, веса анализируемых входных векторов, улучшает точность этой оценки. На практике, для хорошо выбранных матриц-прототипов , достаточно установить , чтобы получить , очень близкое к истинному минимальному расстоянию кода.
Алгоритм, представленный выше, оптимизирует матрицу Р шаблона для фиксированного значения коэффициента р расширения. Однако возможно учесть одновременно несколько различных коэффициентов расширения, максимизирующих на этапе 6 взвешенную сумму оцененных минимальных расстояний кодов, полученных для той же самой матрицы Р шаблона, но различных коэффициентов р расширения. Как следствие, получается уникальная матрица Р шаблона для матриц проверки четности для ряда различных длин кода, но той же скорости.
H
p
p
u
ij
ij
Предложенный алгоритм обобщает методы, представленные в [8, 9, 14] несколькими путями. Во-первых, чередование строк первой матрицы можно рассматривать как дополнительную степень свободы в оптимизации кода LDPC. Алгоритм оптимизации, представленный выше, не зависит от этого явно. Во-вторых, нет никаких искусственных ограничений для значений , получаемых из исходных алгебраических конструкций LDPC (сравни [8, 15]). Ценой этого является отсутствие выраженного в явной форме алгоритма для вычисления . Но так как число этих значений является весьма малым по сравнению с размером матрицы Р шаблона (см. фиг. 5 и 8), это не представляет серьезного недостатка. В-третьих, процесс отыскания хороших кодов формализован, и количество попыток методом проб и ошибок сокращается. При условии, что доступна достаточная вычислительная мощность, предложенный алгоритм может сформировать надежные оценки минимального расстояния полученного кода, предоставляя таким образом ценную обратную связь разработчику кодов.
Численные результаты
p
p×p
p
p×p
ij
ij
0
Матрица Р шаблона на фиг. 5 может использоваться для конструирования кодов скорости 1/2, которые будут использоваться, например, в вариантах осуществления согласно фиг. 3 или 4. Каждый целочисленный элемент записи  должен быть заменен  циклической матрицей перестановки, заданной посредством , в то время как элементы записи ∞ должны быть заменены  нулевыми матрицами. m=s·p столбцов зигзага должны быть добавлены к ней после ее расширения и перестановки строк.
Используемая перестановка строк (прямоугольный перемежитель) представляет собой
Фиг. 6 представляет результаты моделирования, иллюстрирующие характеристики полученных кодов в канале AWGN, а также характеристики кодов PEG и IEEE 802.16 [16] с подобными параметрами.
Можно заметить, что предложенный код превосходит коды IEEE, и в некоторых случаях даже полностью случайные коды PEG, которые в настоящее время считаются лучшими с точки зрения характеристик.
Фиг. 7 иллюстрирует характеристики кода скорости 2/3, и фиг. 8 представляет компактное представление соответствующей матрицы Р шаблона. Используемая перестановка строк (прямоугольный перемежитель) имеет вид:
Можно видеть, что предложенный код значительно превосходит код IEEE.
Был представлен способ формирования структурированных нерегулярных кодов LDPC. Формирование кода основано на матрице блочной перестановки с дополнительной перестановкой строк. Параметры матрицы перестановки заполняются посредством алгоритма оптимизации, который пытается максимизировать кодовое минимальное расстояние. Числовые результаты указывают, что коды, полученные этим способом, имеют превосходное минимальное расстояние и никакого видимого минимального уровня ошибок.
Предложенный метод формирования допускает множество обобщений и усовершенствований. Например, возможно заменить матрицы циклических перестановок некоторыми другими параметрическими перестановками, например, основанными на полиномах перестановки. Во-вторых, дополнительные критерии эффективности LDPC могут быть объединены в алгоритм оптимизации.
Соответствующее изобретению формирование кодов с различными длинами
z
i
0
z
0
0
i
0
0
0
0
z
i
z
0
0
i
0
0
0
i
i
0
0
0
(w)
Изобретателями установлено, что, начиная с матрицы H=[H H] проверки четности кода с длиной n, где H представляет собой матрицу m×mс двумя смежными диагоналями из l, имеющую во всех других позициях 0, и H представляет собой матрицу m×(n×m), коды с длиной w·m могут быть сконструированы с использованием матрицы проверки четности H'=[H' H'], если H' выбрана как матрица w·m×w·m с двумя смежными диагоналями из 1, имеющая 0 во всех других позициях, и H' является матрицей w·m×w·(n-m), полученной чередованием строк блочно-диагональной матрицы H', имеющей w матриц H размера m×(n-m) на диагонали и 0 во всех других позициях.
i
Матрица Н, в частности H, может быть сконструирована, как описано выше со ссылками на фиг. 2-8. Разумеется, также другие конструкции Н могут быть использованы для изобретения.
i
'(2)
Если, например, w=2, H  задается следующим образом:
z
i
(2)
И H' в этом случае задается соотношением H'=[H' Π H'], например, с перестановкой
z
i
T
Кодовое слово c', которое может математически быть записано как c'=[c' c'], генерируется умножением сообщения K' данных на генераторную матрицу G', которая должна удовлетворять уравнению H'G'=0.
z
i
-1
T
Заметим, что систематическое кодирование сообщения K' данных может быть выполнено умножением K' на генераторную матрицу G', согласно уравнению G'=[((H') H') I].
0
Кодирование и декодирование для генерации кодового слова c' с длиной w·n эквивалентно выполняются, как описано в связи с фиг. 3 и 4, используя H' и G' вместо H и G.
b
0
Для примера, характеристика FER (частота ошибок кадров как функция отношения сигнала к шуму E/N) кодов скорости 2/3, построенных согласно изобретению и имеющих длины w·360, w=l, 2, 3, и характеристика кодов тех же самых длин, построенных с использованием различных коэффициентов р расширения, показаны на фиг. 9. Характеристика соответствующих изобретению кодов лишь незначительно хуже, чем характеристика кодов, использующих соответствующие коэффициенты р расширения. Но преимущество состоит в том, что структура декодера, которая может использоваться для кода с длиной 360 и которая обычно реализуется соответствующими компонентами аппаратных средств, может поддерживаться для кодов с длиной w·360, тогда как структура декодера изменяется для кодов той же самой длины, построенных путем выбора соответствующего коэффициента р расширения.
Заявленный способ для получения более длинных кодов LDPC может быть основан на других основанных на зигзаге конструкциях, как, например, в [14].
Список литературы