СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ КОДА ПОРОЖДАЮЩЕЙ МАТРИЦЫ НИЗКОЙ ПЛОТНОСТИ
METHOD AND APPARATUS FOR ENCODING LOW-DENSITY GENERATOR MATRIX CODE

Область техники
Данное изобретение относится к области коммуникации, конкретнее, связано со способом и устройством кодирования кода порождающей матрицы низкой плотности.
Уровень техники
Канал со стиранием (Erasure Channel) является важной моделью канала. Например, когда передача документов по Интернету производится с помощью пакетов, терминал-получатель обычно либо безошибочно принимает каждый пакет, либо отнюдь не принимает данного пакета. По протоколу управления передачей (Transmission Control Protocol, TCP) осуществляется механизм обнаружения ошибок и повторной передачи в случае потери пакетов, то есть применяется канал обратной связи, расположенный между вводным и выходным портами, с целью управления требующими переотправки пакетами. Терминал-получатель обнаруживает потерю пакета, порождает сигнал управления повторной передачей, пока целый пакет не получится безошибочно. После получения отправленного пакета терминал-получатель тоже порождает сигнал приема. В то же время терминал-источник следит за каждым пакетом, пока не получит обратный сигнал, а то снова отправляет данный пакет.
Служба информационного вещания, основанная на поточном режиме и режиме загрузки документов, представляет собой службу Point to Multi-Point (P2MP), не допуская обратной связи, и так что традиционный механизм обнаружения ошибок и повторной передачи здесь не работает, и требуется техника упреждающей коррекции ошибок (Forward Error Correction, FEC) для обеспечения надежной передачи. Типичные FEC коды на уровне приложений включают в себя код Рида-Соломона (Reed-Solomon codes), фонтанный код (digital fountain code) и т.д. Код Рида-Соломона обладает высокой сложностью кодирования и декодирования, обычно предназначен только для малой ширины кода. LT код (Luby Transform codes) и Raptor код являются фонтанными кодами, применимыми в практике. По сравнению с RS кодом LT код имеет линейное время кодирования и декодирования, и Raptor код применяет технику предварительного кодирования, что значительно повышает эффективность декодирования. 3GPP служба блочного мультимедийного вещания (Multimedia Broadcast / Multicast Service, MBMS) и служба цифрового видеовещания (Digital Video Broadcasting, DVB) применяют Raptor код в качестве проекта кодирования FEC кода.
k
k
Линейный блочный код представляет собой группу кодов с постоянной длиной, дается выражением в форме (n, k), обычно предназначается для упреждающей коррекции ошибок. При кодировании k информационных битов кодируются с n-разрядной длиной группы кодов. 2 кодовых слов блочного кода (n, k) образуют k -мерное пространство, так что 2 кодовых слов порождаются k линейно независимыми базисами. Если эти k базисов дается выражением в форме матрицы, тогда
Где любое слово из блочного кода (n, k) может порождаться линейной комбинацией этих базисов, то есть
Мы называем G порождающей матрицей кода. Очевидно, что каждая строка порождающей матрицы удовлетворяет только одному условию как линейной независимости (без расчета на минимальное расстояние), а базис k-мерного пространства может выбирать любой из k векторов линейной независимости, поэтому как порождающая матрица кода G не является единственной, но в независимости от того, какой вид они принимают, все эти матрицы порождают одинаковое подпространство, значит, одинаковый блочный код (n, k).
Если после кодирования первые k-разрядные слова кода одинаковы с информационным битами, то этот код называется системным. Процесс кодирования представляет собой процесс порождения k информационными битами n-разрядной длины кода, в котором осуществляется обнаружение и коррекции ошибок добавлением n-k контрольных битов.
LT код кодируется с помощью разреженности порождающей матрицы, но в сравнении с кодом порождающей матрицы низкой плотности компании Чжунсин (LDGC код), данный код не поддерживает режим кодирования системного кода, таким образом, LT код трудно удовлетворяет определенным практическим требованиям к кодированию FEC кода; и Raptor код поддерживает системный код, но требует процесса специального предкодирования, то есть требует матрицы предварительного кодирования, поэтому сложность кодирования слишком высока; а LDGC код ведет кодирование непосредственно с использованием порождающей матрицы, не требует дополнительно матрицы предварительного кодирования, в то же время при кодировании LDGC код применяет способ обратной подстановки для решения верхнего (или нижнего) тригонометрического уравнения, поэтому у него сложность кодирования значительно ниже, чем у Raptor кода. Одним словом, по сравнению с LT кодом, LDGC код отличается поддерживанием системного кода, и его сложность кодирования значительно ниже, чем у Raptor кода.
Раскрытие изобретения
Настоящее изобретение дает способ и устройство кодирования кода низкоплотной порождающей матрицы с целью обеспечивать хорошие характеристики кода, понижая его сложность кодирования.
ldgc
ldgc
ldgc
ldgc
ldgc
ldgc
ldgc
ldgc
В соответствии с одним аспектом настоящего изобретения, предлагается способ кодирования кода низкоплотной порождающей матрицы. По примеру реализации настоящего изобретения, данный способ включает в себя следующие шаги: построится порождающая матрица G из L строк и N+L-K столбцов, где квадратическая матрица G (1:L, 1:L) из L строк и первых L столбцов порождающей матрицы G является верхней или нижней треугольной матрицей, K, L, N - положительные целые числа, к тому же K<L<N; добавляются L-K известных заполняющих битов в последовательность информационных битов длины K, требующую кодирования, и порождается последовательность информационных битов m длины L; в соответствии с уравнением I×G (1:L, 1:L)=m, с помощью квадратной матрицы G (1:L, 1:L) из L строк и первых L столбцов порождающей матрицы G и последовательности информационных битов m длины L порождается промежуточная переменная I, и по уравнению С=I×G с помощью порождающей матрицы G производится кодирование промежуточной переменной I, порождается кодированная последовательность длины N+L-K; удалением L-K известных битов из кодированной последовательности длины N+L-K порождается кодированная последовательность длины N.
ldgc
ldgc
ldgc
Где, в случае, когда квадратическая матрица G (1:L, 1:L) из L строк и первых L столбцов порождающей матрицы G является левой верхней или левой нижней треугольной матрицей, добавим L-K известных битов перед последовательностью информационных битов длины K, требующей кодирования. А в случае, когда данная матрица - правая верхняя или нижняя треугольная, тогда добавим упомянутые биты за данной последовательностью, где вес столбцов порождающей матрицы G удовлетворяет принцип распределения степеней, подобный у LT кода.
ldgc
ldgc
ldgc
ldgc
ldgc
ldgc
ldgc
Idgc
ldgc
ldgc
ldgc
В соответствии с другим аспектом настоящего изобретения дается способ кодирования кода низкоплотной порождающей матрицы. По примеру реализации настоящего изобретения, данный способ включает в себя следующие шаги: построится порождающая матрица G из K строк и N столбцов, где квадратическая матрица G (1:K, 1:K) из K строк и первых K столбцов порождающей матрицы G является верхней или нижней треугольной матрицей, и K, N - положительные целые числа, к тому же K<N; в соответствии с уравнением I×G (1:K, 1:K)=s, с помощью квадратной матрицы G (1:K, 1:K) из K строк и первых K столбцов порождающей матрицы G, последовательности информационных битов m с длиной K, порождается промежуточная переменная I; и по уравнению C=I×G с помощью порождающей матрицы G производится кодирование промежуточной переменной I, порождается кодированная последовательность с длиной N, где вес столбцов порождающей матрицы G удовлетворяет принципу распределения степеней, подобному у LT кода. Квадратическая матрица G (1:K, 1:K) из K строк и первых K столбцов порождающей матрицы G может быть левой верхней, левой нижней, правой верхней или правой нижней треугольной матрицей.
ldgc
ldgc
ldgc
ldgc
ldgc
ldgc
ldgc
ldgc
ldgc
ldgc
ldgc
В соответствии с другим аспектом настоящего изобретения предлагается устройство кодирования кода низкоплотной порождающей матрицы. По примеру реализации настоящего изобретения, данное устройство в себя включает следующие: блок для порождения матрицы, предназначающийся для того, что порождает порождающую матрицу G из L строк и N+L-K столбцов, выведет данную матрицу в блок для кодирования блочного кода и выведет квадратическую матрицу G (1:L, 1:L) из L строк и первых L столбцов матрицы G, где квадратическая матрица G (1:L, 1:L) - верхняя или нижняя треугольная матрица, K, L, N - положительные целые числа, к тому же K<L<N; блок для заполнения битов, предназначающийся для того, что добавит L-K известных битов в последовательность информационных битов длины K, требующую кодирования, и порождается последовательность информационных битов m длины L, и выведет данную последовательность в блок для предварительного кодирования; блок для предварительного кодирования, предназначающийся для того, что по I×G (1:L, 1:L)=m, с помощью квадратической матрицы G (1:L, 1:L) из L строк и первых L столбцов порождающей матрицы G, и последовательности информационных битов длины m, порождает промежуточную переменную I, и выведет ее в блок для кодирования блочного кода (данный блок может быть блоком для решения верхнего или нижнего тригонометрического уравнения, имеет два входа G (1:L, 1:L), m и один выход I); блок для кодирования блочного кода, предназначающийся для того, что по C=I×G, с помощью порождающей матрицы G производит кодирование промежуточной переменной I, и порождает кодированная последовательность C с длиной N+L-K (данный блок может быть блоком для матричного умножения, имеет два входа G, I и выход С); блок для удаления битов, предназначающийся для того, что удалит L-K известных битов из вышеупомянутой кодированной последовательности длины N+L-K, и порождает кодированную последовательность длины N.
ldgc
ldgc
ldgc
ldgc
ldgc
Где квадратическая матрица G (1:L, 1:L) из L строк и первых L столбцов порождающей матрицы G может быть левой верхней, левой нижней, правой верхней или правой нижней треугольной матрицей, в случае, когда квадратическая матрица G (1:L, 1:L) из L строк и первых L столбцов порождающей матрицы G является левой верхней или левой нижней треугольной матрицей, добавляем L-K известных битов перед последовательностью информационных битов длины K, требующей кодирования. А в случае, когда данная матрица - правая верхняя или нижняя треугольная, тогда добавляем упомянутые биты за последовательностью, где вес столбца порождающей матрицы G удовлетворяет принципу распределения степеней, подобному у LT кода.
ldgc
ldgc
ldgc
ldgc
ldgc
ldgc
ldgc
ldgc
В соответствии с другим аспектом настоящего изобретения предлагается устройство кодирования кода низкоплотной порождающей матрицы. По примеру реализации настоящего изобретения, данное устройство в себя включает следующие: блок для порождения матрицы, предназначающийся для порождения матрицы G из K строк и N столбцов, где квадратическая матрица G (1:K, 1:K) из K строк и первых K столбцов порождающей матрицы G - верхняя или нижняя треугольная матрица, K, N - положительные целые числа, к тому же K<N; блок для предварительного кодирования, предназначающийся для того, что по I× G (1:K, 1:K)=s, с помощью квадратической матрицы G (1:K, 1:K) из K строк и первых K столбцов порождающей матрицы G, и последовательности информационных битов s длины K, порождает промежуточную переменную I; блок для кодирования блочного кода, предназначающийся для того, что по C=I×G, с помощью порождающей матрицы G, производит кодирование промежуточной переменной I, и порождает кодированное слово длины N.
ldgc
ldgc
ldgc
Где квадратическая матрица G (1:K, 1:K) из K строк и первых K столбцов порождающей матрицы G может быть левой верхней, левой нижней, правой верхней или правой нижней треугольной матрицей. Вес столбца порождающей матрицы G удовлетворяет принципу распределения степеней, подобный у LT кода.
Настоящее изобретение обеспечивает хорошие характеристики кода, понижая его сложность кодирования.
Краткое описание чертежей
Приложенные чертежи, предназначенные для конкретного описания настоящего изобретения, составляют неотъемлемую часть данного заявления. Показательные примеры реализации и их объяснения предназначены для интерпретации данного изобретения и не носят никаких ограничений настоящему изобретению. На чертежах:
фиг.1 - схема способа кодирования LDGC кода по примеру реализации настоящего изобретения;
фиг.2 - схема устройства кодирования LDGC кода по примеру реализации настоящего изобретения;
фиг.3 - схема порождающей матрицы LDGC кода;
фиг.4- конкретный пример порождающей матрицы LDGC кода заполняющего бита по примеру реализации настоящего изобретения;
фиг.5 - схема способа кодирования LDGC кода по другому примеру реализации настоящего изобретения;
фиг.6 - схема устройства кодирования LDGC кода по другому примеру реализации настоящего изобретения;
фиг.7 - конкретный пример порождающей матрицы LDGC кода заполняющего бита;
фиг.8 - схема блока для предварительного кодирования из устройства кодирования LDGC по другому примеру реализации настоящего изобретения;
фиг.9 - схема блока для блочного кодирования из устройства кодирования LDGC по другому примеру реализации настоящего изобретения.
Осуществление изобретения
Код порождающей матрицы низкой плотности (Low Density Generator Matrix Code, LDGC) представляет собой линейный блочный код, в том числе ненулевые элементы из его порождающей матрицы обычно разрежены. В то же время, LDGC есть системный код, и его квадратическая матрица из первых k столбцов обычно является верхней или нижней треугольной матрицей, и обращение данной матрицы производится методом интеграции. При кодировании LDGC кода, сначала используя соответствие между информационным битом из системного кода и промежуточной переменной, найдется промежуточная переменная, затем получится кодированное слово умножением данной переменной на порождающую матрицу. А при декодирвании LDGC кода сначала найдется промежуточная переменная с помощью порождающей матрицы, затем получатся информационные биты по соотношению трансформации между информационным битом и промежуточной переменной. Описываем конкретные способы реализации настоящего изобретения с помощью приложенных чертежей.
Фиг.1 показывает такой процесс, что производится кодирование последовательности информационных битов длины K, затем выходит кодированное слово длины N в другие блоки для дальнейшей обработки. Где длина контрольного бита составляет M=N-K, кодовая скорость r=K/N. Как показано на фиг.1, по примеру реализации настоящего изобретения способ кодирования LDGC кода включает в себя следующие шаги:
ldgc
ldgc
S102, построит порождающую матрицу G из L строк и N+L-K столбцов, где квадратическая матрица G (1:L, 1:L) из L строк и первых L столбцов данной матрицы является верхней (или нижней) треугольной матрицей, K, L, N - заданные положительные целые числа, к тому же K<L<N;
S104, добавит d=L-K известных заполняющих битов в последовательность информационных битов s длины 1*K, получит последовательность информационных битов m длины 1*L;
ldgc
ldgc
ldgc
S106, из того, что LDGC - системный код, получит I×G(1:L, 1:L)=m, и что G (1:L, 1:L) является верхней (или нижней) треугольной матрицей, найдет промежуточную переменную I решением уранения, и по C=I× G производит кодирование промежуточной переменной I, найдет кодированное слово длины 1*(N+d);
S108, удалит добавленные в шаге S104 известные биты из кодированных слов длины 1*(N+d), получит кодовое слово длины N битов и отправит его.
Где в каждом столбце порождающей матрицы число элементов 1 (вес столбца) обязательно соответствует определенному принципу распределения. Квадратическая матрица из первых L столбцов и всех строк порождающей матрицы может быть левой верхней, левой нижней, правой верхней или правой нижней треугольной матрицей (как показано на фиг.3).
ldgc
ldgc
Где если матрица G (1:L, 1:L) является левой верхней или левой нижней треугольной матрицей, тогда относительно последовательности информационных битов исходной длины K, добавим d=L-K известных битов перед последовательностью K информационных битов. Если матрица G (1:L, 1:L) - правая верхняя или правая нижняя треугольная матрица, добавим d=L-K известных битов за данной последовательностью. Следует отметить, что место для добавления заполняющих битов не ограничивается вышесказанными.
Фиг.2 показывает устройство кодирования LDGC кода по примеру реализации настоящего изобретения. Устройство кодирования LDGC предназначается для того, что кодирует введенный поток двоичных информационных битов длины K, затем выведет битовый поток двоичных кодированных слов длины N в другие блоки для дальнейшей обработки. Как показано на фиг.2, данное устройство включает в себя:
ldgc
ldgc
ldgc
ldgc
блок для порождения матрицы 202, предназначающийся для порождения матрицы G из L строк и N+L-K столбцов, где квадратическая матрица G (1:L, 1:L) из L строк и первых L столбцов данной матрицы представляет собой верхнюю (или нижнюю) треугольную матрицу. Матричный генератор выведет матрицу G (1:L, 1:L) в блок для предварительного кодирования, и выведет G (1:L, 1:N+L-K) в блок для кодирования блочного кода, где K, L, N - положительные целые числа, к тому же K<L<N;
блок для заполнения битов 204, предназначающийся для того, что добавит d=L-K известных битов в последовательность информационных битов длины 1*К, зато порождает поток информационных битов m длины 1*L и выведет его в блок для предварительно кодирования;
ldgc
блок для предварительно кодирования 206, предназначающийся для того, что производит решение уравнения для потока информационных битов m длины 1*L, порождает промежуточную переменную длины 1*L-I и выведет ее в кодер блочного кода (как показано на фиг.8, блок для предварительного кодирования может быть блоком для того, что ведет решение верхнего или нижнего тригонометрического уравнения, имеет два входа G (1:L, 1:L), m и один выход I).
ldgc
Блок для кодирования блочного кода 208, предназначающийся для того, что производит кодирование промежуточной переменной I, порождает битовой поток вторичного слова C длины 1*(N+d) и выведет его в блок для удаления битов (как показано на фиг.9, блок для блочного кодирования может быть блоком для матричного умножения, имеет два входа G, I и один выход C).
Блок для удаления битов 210, предназначающийся для того, что удалит d известных битов из блока для заполнения битов, и окончательно получит кодированное слово длины N битов.
Где блок для порождения матрицы порождает матрицу в соответствии со следующим принципом: в каждом столбце порождающей матрицы число элементов 1 (т.е. вес столбца) обязательно соответствует определенному принципу распределения степеней. Квадратическая матрица из первых L столбцов и всех строк порождающей матрицы может быть левой верхней, левой нижней, правой верхней или правой нижней треугольной матрицей (как показано на фиг.3).
ldgc
ldgc
Где если матрица G (1:L, 1:L) является левой верхней или левой нижней треугольной матрицей, тогда относительно последовательности информационных битов исходной длины K добавим d=L-K известных битов перед последовательностью K информационных битов. Если матрица G (1:L, 1:L) - правая верхняя или правая нижняя треугольная матрица, добавим d=L-K известных битов за данной последовательностью. Следует отметить, что место для добавления заполняющих битов не ограничивается вышесказанными.
ldgc
ldgc
Где из того что LDGC - системный код, получится I×G (1:L, 1:L)=m, таким образом блок для предварительного кодирования найдет промежуточную переменную I длины 1*L решением уравнения, из того что G (1:L, 1:L) - верхняя (или нижняя) треугольная матрица.
ldgc
Где по C=I×G блок для кодирования блочного кода производит кодирование промежуточной переменной I, получит кодированное слово длины 1*(N+d).
Например, поток двоичных информационных битов s длины 1*K=1*24 (s дается выражением D8AB13 в 16-ичной форме) кодируется устройством кодирования по примеру реализации настоящего изобретения и порожается кодированное слово LDGC кода длины 72 битов, получится K=24, N=72.
ldgc
ldgc
ldgc
ldgc
ldgc
ldgc
ldgc
ldgc
Блок для порождения матрицы порождает матрицу G из L=48 строк, N+L-K=96 столбцов, где G применяет принцип распределения степеней, подобный у LT кода, и квадратическая матрица G (1:L, 1:L)=G (1:48, 1:48) из всех строк и первых L столбцов данной матрицы является правой верхней треугольной матрицей, как показано на фиг.4, где черная точка - элемент 1, пустая позиция - 0. Блок для порождения матрицы выведет матрицу G (1:L, 1:L)=G (1:48, 1:48) в блок для предварительного кодирования, и выведет матрицу G (1:L, 1:N+L-K)= G (1:48, 1:96) в блок для кодирования блочного кода.
Блок для заполнения битов добавит d=L-K=24 известных заполняющих битов P (p дается выражением 9А0С2С в 16-ичной форме) за потоком введенных информационных битов длины 1*K=1*24, и порождает поток информационных битов m длины 1*L=1*48 (m дается выражением D8AB139A0C2C в 16-ичной форме), и выведет ее в блок для предварительного кодирования.
ldgc
ldgc
ldgc
Из того что LDGC - системный код (получится I×G (1:48, 1:48)=m), и что G (1:L, 1:L)= G (1:48, 1:48) - правая верхняя треугольная матрица, блок для предварительного кодирования производит решение уравнения для введенного потока информационных битов s длины 1*K=1*24, найдет промежуточную переменную I длины 1*L=1*48 (I дается выражением 942DA94E0A24 в 16-ичной форме), и выведет данную величину в блок для кодирования блочного кода.
ldgc
По C=I×G блок для кодирования блочного кода кодирует введенную промежуточную переменную I, порождает двоичное кодовое слово с длины 1*(N+d)=1*96 (с дается выражением D8AB139A0C2CCD3AC516ED52 в 16-ичной форме), и выведет данное слово в блок для удаления битов.
Блок для удаления битов удалит d=24 известных заполняющих битов из двоичного кодированного слова с длины 1*(N+d)=1*96 и получит кодированное слово длины N=72 битов (дается выражением D8AB13CD3AC516ED52 в 16-ичной форме) и отправит его.
С целью понижения сложности кодирования настоящее изобретение предлагает другой способ кодирования кода низкоплотной порождающей матрицы. В отличие от вышеупомянутого способа, данный способ не ведет заполнение и удаление битов. Фиг.5 показывает такой процесс, что производится кодирование последовательности информационных битов длины K, затем выходит последовательность кодированного слова длины N в другие блоки для дальнейшей обработки, где длина контрольного бита составляет M=N-K, кодовая скорость r=K/N. Как показано на фиг.5, способ кодирования LDGC кода по другому примеру реализации настоящего изобретения включает в себя следующие шаги:
ldgc
ldgc
S502, построит порождающую матрицу G из K строк и N столбцов, где квадратическая матрица G (1:K, 1:K) из K строк и первых K столбцов данной матрицы - верхняя (или нижняя) треугольная матрица, K, N - положительные целые числа, к тому же K<N;
ldgc
1dgc
S504, из того что LDGC есть системный код, получит I×G (1:K, 1:K)=s, и что G (1:K, 1:K) - верхняя (или нижняя) треугольная матрица, найдет промежуточную переменную для 1*K решением уравнения.
ldgc
S506, в соответствии с уравнением С=I×G, производит кодирование промежуточной переменной I, получит кодированное слово длины 1*N.
Где в каждом столбце порождающей матрицы число элементов 1 (т.е. вес столбца) необходимо удовлетворяет определенному принципу распределения степеней. Квадратическая матрица из первых L столбцов и всех строк порождающей матрицы может быть левой верхней, левой нижней, правой верхней или правой нижней треугольной матрицей (как показано на фиг.3).
Фиг.6 показывает устройства кодирования LDGC кода по другому примеру реализации настоящего изобретения. Данное устройство предназначается для того, что производит кодирование введенного потока двоичных информационных битов длины K, затем выведет битовый поток двоичного кодового слова длины N в другие блоки для дальнейшей обработки. Как показано на фиг.6, устройство включает в себя:
ldgc
ldgc
ldgc
ldgc
Блок для порождения матрицы 602, предназначающийся для порождения матрицы G, из K строк и N столбцов, где квадратическая матрица G (1:K, 1:K) из K строк и первых K столбцов данной матрицы есть верхняя (или нижняя) треугольная матрица. Блок для порождения матрицы выведет матрицу G (1:K, 1:K) в блок для предварительного кодирования, и выведет G (1:K, 1:N) в блок для кодирования блочного кода, где K<N;
ldgc
Блок для предварительного кодирования 604, предназначающийся для того, что производит решение уравнения для введенного потока информационных битов s с длиной 1*K, порождает промежуточную переменную I для 1*K, и выведет ее в кодер блочного кода (как показано на фиг.8, блок для предварительного кодирования может быть блоком для решения верхнего или нижнего тригонометрического уравнения, имеет два входа G (1:L, 1:L) и последовательность информационных битов m с длиной L).
ldgc
Блок для кодирования блочного кода 606, предназначающийся для того, что производит кодирование введенной промежуточной переменной I, порождает двоичное кодированное слово C длины 1*N, затем отправит его (как показано на фиг.9, блок для кодирования блочного кода может быть блоком для матричного умножения, имеет два входа: G и промежуточную переменную I с длиной L);
Где в каждом столбце порождающей матрицы элементов 1 (вес столбца) необходимо удовлетворяет определенному принципу распределения степеней. Квадратическая матрица из первых L столбцов и всех строк порождающей матрицы может быть левой верхней, левой нижней, правой верхней или правой нижней треугольной матрицей (как показано на фиг.3).
ldgc
ldgc
Где, из того что LDGC есть системный код (получится I×G (1:K, 1:K)=s), и что G (1:K, 1:K) - верхняя (нижняя) треугольная матрица, блок для предварительного кодирования найдет промежуточную переменную I длины 1*K решением уравнения и ее отправит.
ldgc
Где блок для кодирования блочного кода кодирует промежуточную переменную I в соответствии с уравнением C=I×G, получит двоичное кодированное слово длины 1*N и его отправит.
Например, поток двоичных информационных битов s длины 1*K=1*24 (s дается выражением D99274 в 16-ичной форме) кодируется устройством кодирования по примеру реализации настоящего изобретения и порождается кодированное слово LDGC кода длины 72 битов, получится K=24, N=72.
ldgc
ldgc
ldgc
ldgc
ldgc
ldgc
ldgc
ldgc
Блок для порождения матрицы порождает матрицу G из L=24 строк, N=72 столбцов, где G применяет принцип распределения степеней, подобный у LT кода, и квадратическая матрица G (1:K, 1:K)= G (1:24, 1:24) из всех строк и первых K столбцов данной матрицы является правой верхней треугольной матрицей, как показано на фиг.7 (где черная точка - элемент 1, пустая позиция - 0). Блок для порождения матрицы выведет матрицу G (1:K, 1:K)=G (1:24, 1:24) в блок для предварительного кодирования, и выведет матрицу G (1:K, 1:N)=G (1:24, 1:72) в блок для кодирования блочного кода.
ldgc
ldgc
ldgc
Из того что LDGC - системный код (получится I×G(1:K, 1:K)=s), и что G (1:K, 1:K)=G (1:24, 1:24) - правая верхняя треугольная матрица, блок для предварительного кодирования производит решение уравнения для введенного потока информационных битов s длины 1*K, найдет промежуточную переменную I длины 1*L=1*48 (I дается выражением В4В304 в 16-ичной форме), и выведет данную величину в блок для кодирования блочного кода.
ldgc
По C=I×G блок для кодирования блочного кода кодирует введенную промежуточную переменную I, порождает двоичное кодовое слово с длины 1*N=1*72 (с дается выражением D99274A593CC1AC461 в 16-ичной форме) и его отправит.
ldgc
ldgc
Следует отметить, в описании применяются матрица G (1:48, 1:48) и G (1:24, 1:24) как правая верхняя треугольная матрица, и для других форм матрицы настоящее изобретение также подходит. Соответственно, место для заполнения битов не ограничивается вышесказанным. Как только найдется промежуточная переменная с помощью характеристик системного кода, и порождается выход кодированного слова через промежуточный вектор, получится одинаковый технический эффект.
ldgc
Кроме этого надо добавить, что в вышеупомянутых примерах применяется распределение степеней, подобное у LT кода, как у порождающей матрицы G, но не ограничивается этим. Всякая низкоплотная порождающая матрица, порождаемая с помощью определенного распределения степеней, может обеспечивать одинаковые технические эффекты.
Одним словом, настоящее изобретение поддерживает кодирование с любой длиной информационного блока и с любой кодовой скоростью, обладает оптимальными характеристиками, подобными Raptor коду.
Вышеупомянутое описание только представляет собой примеры реализации, не составляет ограничения для настоящего изобретения. Для технического персонала в данной области настоящее изобретение может иметь разные модификации и изменения. Все модификации, замены, улучшение и тому подобное, выполненные в соответствии с принципом настоящего изобретения, принадлежат защите в претензии.