СПОСОБ ОБРАБОТКИ ИНФОРМАЦИИ И УСТРОЙСТВО СВЯЗИ
INFORMATION PROCESSING METHOD AND COMMUNICATION DEVICE

Область техники, к которой относится изобретение
Варианты осуществления настоящей заявки относятся, в общем, к области связи и, в частности, к способу обработки информации и устройству связи.
Уровень техники
Код с низкой плотностью проверок на четность (low density parity check, LDPC) является типом линейного блочного кода, который имеет разреженную проверочную матрицу, и характеризуется гибкой структурой и низкой сложностью декодирования. Так как при декодировании кода LDPC используется алгоритм частично параллельного итерационного процесса декодирования, код LDPC имеет более высокую производительность, чем традиционный турбокод. Код LDPC может использоваться в качестве кода с исправлением ошибок в системе связи для того, чтобы повысить надежность передачи канала и использование мощности. Коды LDPC могут также широко использоваться в космической связи, волоконно-оптической связи, персональных системах связи, ADSL, устройствах магнитной записи и т.п. В настоящее время код LDPC рассматривается в качестве одного из видов канального кодирования в мобильной связи пятого поколения.
В реальных приложениях можно использовать матрицы LDPC, характеризующиеся различными специальными структурами. Матрица H LDPC, характеризуемая специальной структурой, может быть получена путем расширения базовой матрицы LDPC, имеющей квазициклическую (quasi cycle, QC) структуру. QC-LDPC подходит для аппаратных средств с высокой степенью параллелизма и обеспечивает более высокую производительность. Можно спроектировать матрицу LDPC, которая подходит для канального кодирования.
Раскрытие сущности изобретения
Варианты осуществления настоящей заявки обеспечивают способ обработки информации, устройство связи и систему связи для поддержки кодирования и декодирования информационных битовых последовательностей с множеством длин и удовлетворения гибких требований к длине кода и скорости кодирования системы.
Согласно первому аспекту выполнены способ кодирования и кодер, и кодер кодирует входную последовательность с использованием матрицы с низкой плотностью проверок на четность (LDPC).
Согласно второму аспекту выполнены способ декодирования и декодер, и декодер декодирует входную последовательность с использованием матрицы с низкой плотностью проверок на четность (LDPC).
В первой реализации первого аспекта или второго аспекта базовый граф матрицы LDPC представляет собой матрицу из m строк и n столбцов, где m является целым числом, большим или равным 5, и n является целым числом, большим или равным 27. Базовый граф включает в себя по меньшей мере подматрицу A и подматрицу B. Подматрица A является матрицей из пяти строк и 22 столбцов. Подматрица B является матрицей из пяти строк и пяти столбцов, и подматрица B включает в себя столбец, чей вес равен 3, и подматрицу B' с бидиагональной структурой.
При необходимости в подматрице A один столбец имеет вес 5, один столбец имеет вес 4, и другие 20 столбцов имеют вес 3.
При необходимости в подматрице B один столбец имеет вес 3, и три столбца имеют вес 2.
Основываясь на приведенной выше реализации, подматрица B дополнительно включает в себя один столбец, чей вес равен 1.
Во второй реализации первого аспекта или второго аспекта базовый граф матрицы LDPC представляет собой матрицу из m строк и n столбцов, m является целым числом, большим или равным 5, и n является целым числом, большим или равным 27. Базовый граф включает в себя по меньшей мере подматрицу A и подматрицу B. Подматрица A является матрицей из пяти строк и 22 столбцов; и подматрица B является матрицей из пяти строк и пяти столбцов. В матрице, включающей в себя подматрицу A и подматрицу B, один столбец имеет вес 5, один столбец имеет вес 4, 21 столбец имеет вес 3, три столбца имеют вес 2, и один столбец имеет вес 1.
При необходимости в матрице, включающей в себя подматрицу A и подматрицу B, одна строка имеет вес, больший или равный 1 и меньший или равный 5, и другие четыре строки имеют веса, большие или равные 17 и меньшие или равные 21.
Например, в матрице, включающей в себя подматрицу A и подматрицу B, одна строка имеет вес 3, другие четыре строки имеют вес 19. В этом случае матрица, включающая в себя подматрицу A и подматрицу B, может включать в себя строки или столбцы в матричном блоке из пяти строк, который содержит строку 0 - строку 4 и столбец 0 - столбец 26 в базовом графе 30a показанном на фиг. 3а. Строки могут меняться местами друг с другом, и столбцы могут также меняться местами друг с другом. Например, в матричном блоке, включающем в себя подматрицу A и подматрицу B в базовом графе 30a, строка 3 и строка 0 могут меняться местами друг с другом, строка 2 и строка 1 могут меняться местами друг с другом, и столбец 23 и столбец 25 могут меняться местами друг с другом для получения основной матрицы в базовом графе 80a показанном на фиг. 8а.
Основываясь на вышеизложенных реализациях, часть, которая находится в базовой матрице матрицы LDPC и которая соответствует подматрице A и подматрице B, может быть представлена, например, любой из базовых матриц 30b-1, 30b-2, 30b-3, 30b-4 и 30b-5 показанных на фиг. 3b-1 и 30b-6, 30b-7, 30b-8, 30b-9 и 30b-10 показанных на фиг. 3b-2.
Часть, которая находится в базовой матрице матрицы LDPC и которая соответствует подматрице A и подматрице B, может быть представлена матрицей, полученной путем выполнения перестановки столбцов или перестановки строк и перестановки столбцов в любой из базовых матриц 30b-1, 30b-2, 30b-3, 30b-4, 30b-5, 30b-6, 30b-7, 30b-8, 30b-9 или 30b-10. Например, часть, которая находится в базовой матрице матрицы LDPC и которая соответствует подматрице A и подматрице B, может включать в себя строки или столбцы в любой из базовых матриц 30b-1, 30b-2, 30b-3, 30b-4, 30b-5, 30b-6, 30b-7, 30b-8, 30b-9 или 30b-10.
Основываясь на вышеизложенных реализациях, часть, которая находится в базовой матрице матрицы LDPC и которая соответствует подматрице A и подматрице B, может быть представлена любой из базовых матриц 80b-1, 80b-2, 80b-3, 80b-4, 80b-5 показанных на фиг. 8b-1 или 80b-6 показанной на фиг. 8b-2. Базовая матрица 80b-4 является матрицей, полученной путем выполнения перестановки строк и перестановки столбцов в базовой матрице 30b-3, базовая матрица 80b-5 является матрицей, полученной путем выполнения перестановки строк и перестановки столбцов в базовой матрице 30b-4, и базовая матрица 80b-6 является матрицей, полученной путем выполнения перестановки строк и перестановки столбцов в базовой матрице 30b-5.
Чтобы поддерживать различные длины блока, код LDPC должен иметь различные коэффициенты Z поднятия. Основываясь на вышеизложенных реализациях, в возможной реализации базовые матрицы, соответствующие различным коэффициентам Z поднятия, используются на основе различных коэффициентов Z поднятия.
Например,
если коэффициент Z поднятия равен одному из {16, 18, 20, 22, 24, 26, 28, 30}, часть, которая находится в базовой матрице базового графа 30a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 30b-1, показанной на фиг.3b-1; или
если коэффициент Z поднятия равен одному из {32, 36, 40, 44, 48, 52, 56, 60}, часть, которая находится в базовой матрице базового графа 30a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 30b-2, показанной на фиг.3b-1; или
если коэффициент Z поднятия равен одному из {60, 64, 72, 80, 88, 96, 104, 112, 120}, часть, которая находится в базовой матрице базового графа 30a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 30b-3, показанной на фиг.3b-1; или
если коэффициент Z поднятия равен одному из {128, 144, 160, 176, 192, 208, 224, 240}, часть, которая находится в базовой матрице базового графа 30a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 30b-4, показанной на фиг.3b-1; или
если коэффициент Z поднятия равен одному из {256, 288, 320, 352, 384}, часть, которая находится в базовой матрице базового графа 30a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 30b-5, показанной на фиг.3b-1.
В другой возможной реализации,
если коэффициент Z поднятия равен одному из {24, 26, 28, 30}, часть, которая находится в базовой матрице базового графа 80a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 80b-1, показанной на фиг.8b-1; или
если коэффициент Z поднятия равен одному из {32, 36, 40, 44}, часть, которая находится в базовой матрице базового графа 80a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 80b-2, показанной на фиг.8b-1; или
если коэффициент Z поднятия равен одному из {48, 52, 56, 60}, часть, которая находится в базовой матрице базового графа 80a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 80b-3, показанной на фиг.8b-1; или
если коэффициент Z поднятия равен одному из {60, 64, 72, 80, 88, 96, 104, 112, 120}, часть, которая находится в базовой матрице базового графа 80a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 80b-4, показанной на фиг.8b-1; или
если коэффициент Z поднятия равен одному из {128, 144, 160, 176, 192, 208, 224, 240}, часть, которая находится в базовой матрице базового графа 80a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 80b-5, показанной на фиг.8b-1; или
если коэффициент Z поднятия равен одному из {256, 288, 320, 352, 384}, часть, которая находится в базовой матрице базового графа 80a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 80b-6, показанной на фиг. 8b-2.
В другой возможной реализации подматрица может дополнительно включать в себя два столбца встроенных битов прокалывания.
Кроме того, чтобы получить гибкую кодовую скорость, подматрица C, подматрица D и подматрица E соответствующих размеров могут быть добавлены на основе основной матрицы для того, чтобы получить разные кодовые скорости.
Подматрица C является нулевой матрицей из пяти строк и mD столбцов;
подматрица D является матрицей из mD строк и 27 столбцов;
подматрица E является матрицей из идентификатора mD строк и mD столбцов; и
mD является целым числом, и 0≤mD≤41.
Подматрица D включает в себя mD строк в матрице F, матрица F имеет 41 строку и 27 столбцов, и веса строк в матрице F равны, соответственно, 7, 7, 9, 8, 7, 7, 8, 6, 6, 5, 6, 5, 5, 6, 5, 5, 5, 5, 4, 4, 4, 5, 4, 5, 4, 4, 4, 4, 3, 4, 4, 4, 4, 3, 3, 4, 4, 3, 3, 3 и 4.
В возможной реализации матрица F является матрицей, включающей в себя строку 5 - строку 45 и столбец 0 - столбец 26 в базовом графе 30a.
В возможной реализации сдвиговая матрица матрицы F может быть представлена любой из базовых матриц 30c-1 показанной на фиг. 3с-2, 30c-2 показанной на фиг. 3с-3, 30c-3 показанной на фиг. 3с-4, 30c-4 показанной на фиг. 3с-5 или 30c-5 показанной на фиг. 3с-6.
В другой возможной реализации строка 17 и строка 19 в базовом графе 30a могут меняться местами друг с другом, и столбец 39 и столбец 41 могут меняться местами друг с другом для получения базовой матрицы базового графа 80a, показанной на фиг.8a. В другом примере подматрица D включает в себя mD строк в матрице F, перестановку строки можно не выполнять между mD строками, или перестановку строк можно выполнить между одной или более из mD строк, и подматрица E по-прежнему имеет диагональную структуру. Например, подматрица D включает в себя mD строк в матрице F, строка 12 и строка 14 в матрице F меняются местами друг с другом, и подматрица E по-прежнему имеет диагональную структуру для получения базового графа 80a.
Чтобы поддерживать разные длины блоков, для кода LDPC требуются разные коэффициенты Z поднятия. Основываясь на вышеизложенных реализациях, в возможной реализации базовые матрицы, соответствующие различным коэффициентам Z поднятия, используются на основе различных коэффициентов Z поднятия. Например,
в возможной реализации,
если коэффициент Z поднятия равен одному из {16, 18, 20, 22, 24, 26, 28, 30}, подматрица D в базовой матрице может включать в себя mD строк в сдвиговой матрице 30c-1 показанной на фиг. 3с-2; или
если коэффициент Z поднятия равен одному из {32, 36, 40, 44, 48, 52, 56, 60}, подматрица D в базовой матрице может включать в себя mD строк в сдвиговой матрице 30c-2 показанной на фиг. 3с-3; или
если коэффициент Z поднятия равен одному из {60, 64, 72, 80, 88, 96, 104, 112, 120}, подматрица D в базовой матрице может включать в себя mD строк в сдвиговой матрице 30c-3 показанной на фиг. 3с-4; или
если коэффициент Z поднятия равен одному из {128, 144, 160, 176, 192, 208, 224, 240}, подматрица D в базовой матрице может включать в себя mD строк в сдвиговой матрице 30c-4 показанной на фиг. 3с-5; или
если коэффициент Z поднятия равен одному из {256, 288, 320, 352, 384}, подматрица D в базовой матрице может включать в себя mD строк в сдвиговой матрице 30c-5 показанной на фиг. 3с-6.
В другой возможной реализации набор коэффициентов поднятия может представлять собой {24, 26, 28, 30, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80, 88, 96, 104, 112, 120, 128, 144, 160, 176, 192, 208, 224, 240, 256, 288, 320, 352, 384}.
Если коэффициент Z поднятия равен одному из {24, 26, 28, 30}, сдвиговая матрица матрицы F может быть 80c-1 показанной на фиг. 8с-2; или
если коэффициент Z поднятия равен одному из {32, 36, 40, 44}, сдвиговая матрица матрицы F может быть 80c-2 показанной на фиг. 8с-3; или
если коэффициент Z поднятия равен одному из {48, 52, 56, 60}, сдвиговая матрица матрицы F может быть 80c-3 показанной на фиг. 8с-4; или
если коэффициент Z поднятия равен одному из {60, 64, 72, 80, 88, 96, 104, 112, 120}, сдвиговая матрица матрицы F может быть 80c-4 показанной на фиг. 8с-5; или
если коэффициент Z поднятия равен одному из {128, 144, 160, 176, 192, 208, 224, 240}, сдвиговая матрица матрицы F может быть 80c-5 показанной на фиг. 8с-6; или
если коэффициент Z поднятия равен одному из {256, 288, 320, 352, 384}, сдвиговая матрица матрицы F может быть 80c-6 показанной на фиг. 8с-7.
Базовый граф и базовая матрица матрицы LDPC в первой реализации могут удовлетворять требованиям к производительности кодовых блоков, причем длина блока составляет от 352 до 8448 битов.
Основываясь на любом из приведенных выше аспектов или возможных реализациях аспектов, в другой возможной реализации способ дополнительно включает в себя: определение коэффициента Z поднятия. Например, значение коэффициента Z поднятия определяется на основе длины K входной последовательности. Например, если длина входной последовательности равна K, минимальное значение коэффициента поднятия, которое удовлетворяет неравенству 22*Z≥K, можно определить из множества коэффициентов поднятия, определенных в системе.
Для устройства связи на передающей стороне кодирование входной последовательности с использованием матрицы LDPC включает в себя:
кодирование входной последовательности с использованием матрицы LDPC, соответствующей коэффициенту Z поднятия.
Для устройства связи на приемной стороне декодирование входной последовательности с использованием матрицы LDPC включает в себя:
декодирование входной последовательности с использованием матрицы LDPC, соответствующей коэффициенту Z поднятия.
Основываясь на любом из приведенных выше аспектов или возможных реализаций аспектов, в другой возможной реализации базовая матрица матрицы LDPC можно храниться в памяти.
Основываясь на любом из приведенных выше аспектов или возможных реализаций аспектов, в другой возможной реализации базовый граф матрицы LDPC хранится в памяти, и значения сдвига ненулевых элементов в базовой матрице матрицы LDPC могут храниться в памяти.
Основываясь на приведенных выше возможных реализациях в возможном варианте по меньшей мере одно из: базового графа и базовой матрицы для кодирования или декодирования LDPC получается путем выполнения перестановки строк, или перестановки столбцов или перестановки строк и перестановки столбцов по меньшей мере в одном из: базового графа и базовой матрицы матрицы LDPC.
Согласно третьему аспекту выполнено устройство связи, и устройство может включать в себя, программные модули и/или компоненты аппаратных средств, выполненные с возможностью выполнения любой одной из возможных реализаций первого аспекта в приведенном выше варианте способа.
В возможном варианте устройство связи, предусмотренное в третьем аспекте, включает в себя кодер, описанный в первом аспекте, блок определения и блок обработки. Блок определения выполнен с возможностью определения коэффициента Z поднятия, необходимого для кодирования входной последовательности. Блок обработки выполнен с возможностью кодирования входной последовательности с использованием матрицы LDPC, соответствующей коэффициенту Z поднятия.
При необходимости устройство связи дополнительно включает в себя приемопередатчик, и приемопередатчик выполнен с возможностью отправки сигнала, соответствующего кодированным информационным данным.
Согласно четвертому аспекту выполнено устройство связи, и устройство может включать в себя модуль, выполненный с возможностью выполнения любой из возможных реализаций второго аспекта в приведенном выше варианте способа. Модуль может быть программным и/или аппаратным.
B
В возможном варианте устройство связи, предусмотренное в четвертом аспекте, включает в себя декодер, описанный во втором аспекте, блок получения и блок обработки. Блок получения выполнен с возможностью получения мягких значений кода LDPC и коэффициента Z поднятия. Блок получения выполнен с возможностью декодирования мягких значений кода LDPC на основе базовой матрицы H, соответствующей коэффициенту Z поднятия, для того, чтобы получить информационную битовую последовательность.
Устройство связи дополнительно включает в себя приемопередатчик, и приемопередатчик выполнен с возможностью приема сигнала, включающего в себя код LDPC.
Согласно пятому аспекту выполнено устройство связи, включающее в себя один или более процессоров.
В возможном варианте один или более процессоров могут выполнять функции кодера в первом аспекте. В другом возможном варианте кодер в первом аспекте можно быть частью процессора, и процессор может выполнять другие функции в дополнение к функциям кодера в первом аспекте.
В возможном варианте один или более процессоров могут выполнять функции декодера во втором аспекте. В другом возможном варианте декодер во втором аспекте можно быть частью процессора.
При необходимости устройство связи может дополнительно включать в себя приемопередатчик и антенну.
При необходимости устройство связи может дополнительно включать в себя компонент, выполненный с возможностью выработки транспортного блока контроль с использованием циклического избыточного кода (CRC), компонент, используемый для сегментации кодового блока и проверки CRC, перемежитель, используемый для перемежения, модулятор, используемый для процесса модуляции, и т.п.
При необходимости устройство связи может дополнительно включать в себя демодулятор, используемый для демодуляции, деперемежитель, используемый для деперемежения, компонент, используемый для отмены согласования скорости передачи и т.п. Функции этих компонентов, можно реализовать с помощью одного или более процессоров.
В возможном варианте функции этих компонентов можно реализовать с помощью одного или более процессоров.
Согласно шестому аспекту вариант осуществления настоящей заявки предусматривает систему связи, и система включает в себя устройство связи, описанное в третьем аспекте, и устройство связи, описанное в четвертом аспекте.
Согласно седьмому аспекту вариант осуществления настоящей заявки предусматривает систему связи, и система включает в себя одно или более устройств связи, описанных в пятом аспекте.
Согласно другому аспекту вариант осуществления настоящей заявки предусматривает компьютерный носитель информации, где машиночитаемый носитель информации хранит программу, и при запуске программы компьютер должен выполнять способы, описанные в приведенных выше аспектах.
Согласно другому аспекту настоящей заявки выполнен компьютерный программный продукт, включающий в себя инструкцию. Когда инструкция запускается на компьютере, компьютер должен выполнять способы в приведенных выше аспектах.
Согласно способу обработки информации, аппаратному устройству, устройству связи и системе связи в вариантах осуществления настоящей заявки, требования к гибкой кодовой длине и кодовой скорости системы могут быть удовлетворены с точки зрения кодирования производительности и минимального уровня ошибок.
Краткое описание чертежей
На фиг.1 показано схематичное представление базового графа, базовой матрицы и циркулярных матриц перестановки кода LDPC;
На фиг.2 показана упрощенная структурная схема базового графа кода LDPC;
На фиг.3a показано схематичное представление базового графа кода LDPC согласно варианту осуществления настоящей заявки;
На фиг.3b-1 и 3b-2 показаны схематичные представления базовых матриц кода LDPC согласно варианту осуществления настоящей заявки;
На фиг.3c-1 - 3c-11 показаны схематичные представления базовых матриц кода LDPC согласно другому варианту осуществления настоящей заявки;
На фиг.4 показано схематичное представление графика производительности, предусмотренного вариантом осуществления настоящей заявки;
На фиг.5 показано схематичное представление графика производительности, предусмотренного другим вариантом осуществления настоящей заявки;
На фиг.6 показана упрощенная блок-схема устройства обработки информации согласно варианту осуществления настоящей заявки;
На фиг.7 показана упрощенная блок-схема системы связи согласно варианту осуществления настоящей заявки;
На фиг.8a показана схема базового графа кода LDPC согласно другому варианту осуществления настоящей заявки;
На фиг.8b-1 и 8b-2 показаны схематичные представления базовых матриц кода LDPC согласно еще одному варианту осуществления настоящей заявки;
На фиг.8c-1 - 8c-10 показаны схематичные представления базовых матриц кода LDPC согласно еще одному варианту осуществления настоящей заявки;
На фиг.9 показано схематичное представление графика производительности кода LDPC согласно варианту осуществления настоящей заявки;
На фиг.10 показано схематичное представление графика производительности кода LDPC согласно другому варианту осуществления настоящей заявки;
На фиг.11a показана схема базового графа кода LDPC согласно еще одному варианту осуществления настоящей заявки;
На фиг.11b показано схематичное представление базовой матрицы на основе базового графа кода LDPC, показанного на фиг.11a; и
На фиг.12 показана схема базового графа согласно еще одному варианту осуществления настоящей заявки.
Осуществление изобретения
Для простоты понимания ниже описаны некоторые термины, используемые в настоящей заявке.
В настоящей заявке термины "сеть" и "система" часто используются взаимозаменяемо, и термины "аппаратное устройство" и "устройство" также часто используются взаимозаменяемо. Значения этих терминов поняты специалистам в данной области техники. Термин "устройство связи" может относиться к микросхеме (такой как основополосная микросхема, микросхема для обработки цифрового сигнала или микросхема общего назначения и т.д.), терминалу, базовой станции или любому другому сетевому устройству.
Терминал представляет собой устройство, имеющее функцию связи. Он может быть переносным устройством, устройством, установленном в транспортном средстве, носимым устройством, вычислительным устройством или любим другим устройством обработки, которое подключено к беспроводному модему и имеет функции беспроводной связи. Терминал может иметь различные названия в различных сетях, такие как пользовательское оборудование, мобильная станция, абонентское устройств, станция, сотовый телефон, карманный персональный компьютер, беспроводной модем, устройство беспроводной связи, переносное устройство, переносной компьютер, беспроводной телефон и станция беспроводного абонентского доступа. В настоящей заявке для простоты описания эти устройства упоминаются просто как терминал.
Базовая станция (base station, BS) может также упоминаться как устройство базовой станции и представляет собой устройство, развернутое в сети радиодоступа для обеспечения функций беспроводной связи. Базовая станция может иметь различные названия в различных системах беспроводного доступа. Например, базовая станция в сети универсальной системы мобильной связи (Universal Mobile Telecommunications System, UMTS) упоминается как NodeB (NodeB), базовая станция в сети LTE упоминается как развитой NodeB (evolved NodeB, eNB или eNodeB), базовая станция в сети новой радиосвязи (new radio, NR) упоминается как пункт приема передачи (transmission reception point, TRP) или NodeB следующего поколения (generation nodeB, gNB). Базовые станции в других сетях могут иметь другие названия. В настоящей заявке этот пример не является ограничивающим.
Далее приводится описание технических решений, представленных в вариантах осуществления настоящей заявки, со ссылкой на прилагаемые чертежи.
Код LDPC может быть представлен матрицей H контроля четности. Код матрицы H контроля четности можно получить, используя базовый граф (base graph) и значение сдвига (shift). Базовый граф является матрицей из m строк и n столбцов и включает в себя m*n матричных элементов (так же называемых входом). Значение каждого матричного элемента равно либо 0, либо 1. Элемент, значение которого равно 0, упоминается как нулевой элемент, который можно заменить на нулевую матрицу (zero matrix) размером Z строк *Z столбцов. Элемент, значение которого равно 1, упоминается как ненулевой элемент, который можно заменить на циркулярную матрицу перестановок размером Z строк *Z столбцов (circular permutation matrix). То есть каждый элемент базового графа представляет собой одну нулевую матрицу или одну циркулярную матрицу перестановок. Поз.10a на фиг.1 обозначены элементы в примерном базовом графе кода LDPC со структурой QC, где m=4 и n=20. Следует отметить, что в этом описании индексы строк и индексы столбцов базовых графов и матриц пронумерованы, начиная с 0, и это сделано для упрощения описания. Например, столбец 0 обозначает первый столбец в базовом графе или матрице, и столбец 1 обозначает второй столбец в базовом графе и матрице, строка 0 обозначает первую строку в базовом графе и матрице, строка 1 обозначает вторую строку в базовом графе и матрице и т.д.
Понятно, что индексы строк и индексы столбцов могут быть альтернативно пронумерованы от 1, и в этом случае, индексы строк и индексы столбцов, показанные в этом описании, увеличиваются на 1 для получения соответствующих индексов строк и индексов столбцов. Например, если индексы строк или индексы столбцов пронумерованы от 1, столбец 1 указывает первый столбец в базовом графе и матрице, столбец 2 указывает второй столбец в базовом графе и матрице, строка 1 указывает первую строку в базовом графе и матрице, строка 2 указывает вторую строку в базовом графе и матрице и т.д.
i, j
i, j
i, j
i, j
i, j
Если значение элемента в строке i и столбце j в базовом графе равно 1, ему присваивается значение сдвига P, и P, является целым числом, большим или равным 0, то элемент, значение которого равно 1 в строке i и столбце j базового графа, заменяется на циркулярную матрицу перестановок размером Z*Z, соответствующую P. Циркулярная матрица перестановок, соответствующая P, равна матрице, полученной путчем циклического сдвига матрицы идентификатора размером Z*Z вправо P раз. Каждый элемент в базовом графе, значение которого равно 0, заменяется на нулевую матрицу размером Z*Z, и каждый элемент, значение которого равно 1, заменяется на циркулярную матрицу перестановок размером Z*Z, соответствующую значению сдвига элемента, для получения матрицы проверки на четность кода LDPC. Позиции значений сдвига могут быть указаны в базовом графе, и ненулевой элемент в базовом графе соответствует значению сдвига.
2, 3
2, 4
Z является положительным целым числом, представляет собой коэффициент поднятия (lifting) или иногда упоминаться как размер поднятия. Z можно определить на основании размеров кодовых блоков, которые поддерживаются системой и размеров информационных данных. Видно, что для базового графа в m строк * n столбцов, матрица H контроля четности имеет размер (m*Z)*(n*Z). Например, если коэффициент Z поднятия равен 4, каждый нулевой элемент в базовом графе 10а заменяется на одну нулевую матрицу 11a размером 4*4. Если P равно 2, ненулевой элемент в строке 2 и столбце 3 в базовом графе заменяются на циркулярную матрицу 11d перестановок размером 4*4, и матрица 11d получается путем циклического сдвига матрицы 11b идентификатора размером 4*4 вправо два раза. Если P равно 0, ненулевой элемент в строке 2 и столбце 4 заменяется на матрицу 11b идентификатора. Следует отметить, что в данном документе описаны только примеры, и примеры не являются ограничивающими.
i, j
i, j
i, j
i, j
Значение P может зависеть от коэффициента Z поднятия. Для элемента базового графа, значение которого равно 1 в одной и той же позиции, P может быть различным для различных коэффициентов Z поднятия. Для простоты реализации можно задать базовую матрицу размером m*n. Элементы в базовой матрице находятся во взаимно однозначном соответствии с элементами в базовом графе. Нулевой элемент в базовом графе имеет одну и ту же позицию в базовой матрице, и элемент обозначен –1. Ненулевой элемент в строке i и столбце j, чье значение равно 1 в базовом графе, имеет одну и ту же позицию в базовой матрице, элемент может быть обозначен P, и P является положительным целым числом, большим или равным 0. В данном варианте осуществления заявки базовая матрица иногда также упоминается как сдвиговая матрица базовой матрицы графа.
На фиг.1 показана базовая матрица 10b, соответствующая базовому графу 10a.
Обычно базовый граф или базовая матрица кода LDPC может дополнительно включать в себя p столбцов встроенных битов прокалывания (built-in puncture), где p может быть целым числом в пределах от 0 до 2. Эти столбцы могут использоваться при кодировании, но системные биты, соответствующие столбцам, не отправляются. Кодовая скорость базовой матрицы кода LDPC удовлетворяет уравнению R=(n-m)/(n-p). Если базовая матрица из четырех строк и 20 столбцов (4*20) включает в себя два столбца встроенных битов прокалывания, кодовая скорость составляет (20-4)/(20-2) =8/9.
Код LDPC, используемый в системе беспроводной связи, представляет собой код QC-LDPC, и часть битов четности кода QC-LDPC имеет бидиагональную структуру или раптороподобную структуру, поэтому можно упростить кодирование, и может поддерживаться гибридный повтор с возрастающей избыточностью. В декодере для кода QC-LDPC сдвиговая сеть QC-LDPC (QC-LDPC shift network, QSN), сеть Баньяна (Banyan) или сеть Бенеша (Benes) обычно используются для осуществления циклического сдвига информации.
Базовый граф кода QC-LDPC с раптороподобной структурой является матрицей, которая имеет m строк и n столбцов, и базовый граф может, как правило, включать в себя пять подматриц: A, B, C, D и E. Вес матрицы определяется количеством ненулевых элементов. Вес строки (row weight) представляет собой количество ненулевых элементов в строке, и вес столбца (column weight) - количество ненулевых элементов в столбце. Нижеследующее показано поз.200 на фиг.2.
A
A
Подматрица A является матрицей из mA строк и nA столбцов, и подматрица A имеет размер m*n. Каждый столбец соответствует Z системным битам в коде LDPC, и системный бит иногда упоминается как информационный бит.
A
A
Подматрица B является квадратной матрицей mA строк и mA столбцов, и подматрица B имеет размер m*m. Каждый столбец соответствует Z битам четности в коде LDPC. Подматрица B включает в себя подматрицу B' с бидиагональной структурой и столбцом матрицы, чей вес равен 3 (для краткости столбец с весом 3), и столбец с весом 3 расположен с левой стороны подматрицы B', как показано поз.20a на фиг.2. Подматрица B может дополнительно включать в себя столбец матрицы, чей вес равен 1 (для краткости столбец матрицы с весом 1), столбец матрицы с весом 1 может быть расположен в первом или последнем столбце в подматрице B, и ненулевой элемент в столбце матрицы с весом 1 находится в последней строке в подматрице B, таким образом, вес последней строки в подматрице B равен 1, как показано поз.20b или поз.20c на фиг.2.
Как правило, матрица, полученная на основе подматрицы A и подматрицы B, является основной матрицей, которая может использоваться для поддержания кодирования с высокой кодовой скоростью.
A
A
A
Подматрица C является нулевой матрицей, и подматрица C имеет размер m×(n-( m+ n)).
Подматрица E является матрицей идентификатора, и подматрица E имеет размер (m-mA) × (m-mA).
A
A
A
Подматрица D имеет размер (m - m) × ( n+ m), и подматрицу D можно использовать для выработки битов четности для низкой кодовой скорости.
Понятно, что базовый граф выражен математическим образом, и так как C является нулевой матрицей, и E является матрицей идентификатора, в возможной реализации матрицу, включающую в себя подматрицу A и подматрицу B, или матрицу, включающую в себя подматрицу A, подматрицу B и подматрицу D, можно использовать для простого представления базового графа матрицы для кодирования или декодирования.
Так как структуры подматрицы B, подматрицы C и подматрицы E относительно точно определены, структуры подматрицы A и подматрицы D являются одним из факторов, влияющих на производительность кодирования и декодирования кода LDPC.
Когда матрица LDPC с раптороподобной структурой используется для кодирования, в возможной реализации часть матрицы, включающая в себя подматрицу A и подматрицу B, а именно, основную матрицу, можно сначала закодировать для того, чтобы получить один или более битов четности, соответствующих подматрице B, и затем вся матрица кодируется для того, чтобы получить один или более битов четности, соответствующих подматрице E. Так как подматрица B может включать в себя подматрицу B' с бидиагональной структурой и весом 1, сначала можно получить столбец матрицы во время кодирования одного или более битов четности, соответствующих подматрице B' в бидиагональной структуре, и затем можно получить один или более битов четности, соответствующих столбцу матрицы с весом 1.
core
core
core-dual
core-dual
e
e1
e2
e1
e2
core-dual
e
e
e
e
core-dual
core-dual
core-dual
T
T
Ниже приведен пример реализации кодирования. Предполагается, что основная матрица, включающая в себя подматрицу A и подматрицу B, является H, столбец матрицы с весом 1 и строка, в которой расположен ненулевой элемент в столбце, удаляются из H для получения H матрицы. Часть в H для битов четности представлена в виде H=[H H], H является столбцом матрицы с весом 3, и H имеет бидиагональную структуру. Согласно определению матрицы кода LDPC H∙[S P]=00, где S является входной последовательностью и является вектором, включающим в себя информационные биты, P является вектором, включающим в себя биты четности, и [S P] обозначает транспонированную матрицу, включающую в себя входную последовательность S и P. Таким образом, биты четности, соответствующие H, можно сначала вычислить на основе входной последовательности S и H, где входная последовательность S включает в себя все информационные биты. Затем биты четности, соответствующие столбцу матрицы с весом 1 в подматрице B, вычисляются на основе полученного бита четности, соответствующего H и входной последовательности S. В этом случае можно получить все биты четности, соответствующие подматрице B. После этого, биты четности, соответствующие подматрице E получаются путем кодирования с использованием подматрицы D и на основе входной последовательности S и битов четности, соответствующих подматрице B, чтобы получить все информационные биты и биты четности. Последовательность содержит все информационные биты и все биты четности, полученные путем выполнения кодирования, а именно, последовательность кода LDPC.
При необходимости LDPC-кодирование может дополнительно включать в себя операцию сокращения (shortening) и операцию прокалывания (puncturing). Сокращенные биты и проколотые биты не отправляются.
0
Например, количество сокращенных битов равно s0, последние биты s0 во входной последовательности S могут быть установлены в известные биты, например, равные 0, или нулю или другому значению, чтобы получить входную последовательность S', и затем входная последовательность S' кодируется с использованием матрицы LDPC. В другом примере последние (s mod Z) биты во входной последовательности S могут быть установлены в известные биты, например, установлены в 0, или ноль или другое значение, для получения входной последовательности S', и последние столбцы в подматрице A удаляются для получения матрицы H LDPC', и входная последовательность S' кодируется с использованием матрицы H LDPC', или последние столбцы в подматрице A не участвуют при кодировании входной последовательности S'. После кодирования сокращенные биты не отправляются.
Прокалывание может быть выполнено для одного или более встроенных проколотых битов или одного или более битов четности во входной последовательности. Обычно прокалывание битов четности происходит также от последнего одного бита в битах четности. В качестве альтернативы, прокалывание может выполняться на основе заданного шаблона прокалывания в системе. В возможной реализации сначала кодируется входная последовательность, и затем, исходя из количества p битов, которые должны быть проколоты, выбираются последние p битов (или p-ый бит) в битах четности, или выбираются p битов (или p-ый бит) на основе заданного шаблона прокалывания в системе, при этом p битов (или p-ый бит) не отправляются. В другой возможной реализации можно также определить p столбцов (или p-ый столбец) в матрице, которая соответствует проколотым битам, и p строк (или p-ую строку), в которых находятся ненулевые элементы в этих столбцах, и строки и столбцы не используются при кодировании, и поэтому соответствующие биты четности не вырабатываются.
Следует отметить, что реализация кодирования, описанная в данном документе, используется только в качестве примера. Другие реализации кодирования, известные специалистам в данной области техники, могут использоваться на основе базового графа и/или базовой матрицы, представленной в настоящей заявке, и реализации кодирования не ограничиваются в настоящей заявке. Декодирование в настоящей заявке может выполняться множеством способов декодирования, например, способом декодирования на основе принципа минимальной суммы (MS) или способом декодирования на основе принципа распространения доверия. Способ декодирования MS иногда упоминается как способ декодирования MS заполнения. Например, инициализируется входная последовательность, и выполняются одна или более итераций. Обнаружение трудного решения выполняется после итерации(й), и результат трудного решения проверяется. Если результат декодирования удовлетворяет проверочному уравнению, декодирование завершается успешно, итерация заканчивается, и выводится результат решения. Если результат декодирования не удовлетворяет проверочному уравнению, итерация выполняется снова в пределах максимального количества раз итераций, и если проверка по-прежнему выполняется неудачно при достижении максимального количества итераций, декодирование завершается неудачно. Принцип декодирования MS должен быть понятен специалистам в данной области техники, и его подробности не описываются в данном документе.
Следует отметить, что в данном документе способ декодирования используется только в качестве примера, другие способы декодирования, известные специалистам в данной области техники, можно использовать на основе базового графа и/или базовой матрицы, представленной в настоящей заявке, и в настоящей заявке способ декодирования не ограничивается.
Код LDPC может быть получен на основе базового графа и базовой матрицы, верхний предел производительности кода LDPC можно определить путем выполнения эволюции плотности в базовом графе или базовой матрице. Минимальный уровень ошибок кода LDPC определяется на основе значения сдвига в базовой матрице. Повышение производительности кодирования и декодирования и снижение минимального уровня ошибок представляют собой некоторые из задач построения базового графа и базовой матрицы. В системе беспроводной связи длина кода является гибкой. Кодовый блок может иметь короткую длину блока, например, 40 битов или 1280 битов, или кодовый блок может иметь большую длину блока, например, 5000 битов или 8448 битов. На фиг.3a, фиг.3b-1 и 3b-2 и фиг.3c-1-11 показаны примеры базового графа и базовых матриц кода LDPC, и эти примеры могут удовлетворять требованию к производительности кодового блока с длиной блока до 8448 битов. На фиг.8a, фиг.8b-1 и 8b-2 и фиг.8c-1-10 показаны примеры базового графа и базовых матриц другого кода LDPC. На фиг.11a и фиг.11b показаны примеры базового графа и базовой матрицы другого кода LDPC. Для простоты описания и понимания индексы строк и индексы столбцов показаны, соответственно, на крайней верхней части и крайней левой части на фиг.3a, фиг.3b-1 и 3b-2 и фиг.3c-1-11. На фиг.4 и фиг.5 показаны, соответственно, схематичные представления производительности кода LDPC, показанного на фиг.3a и фиг.3c-1 - 3с-11, при двух различных кодовых скоростях. На фиг.3a показан пример базового графа 30a кода LDPC. На фигуре цифры от 0 до 67 в крайней верхней части обозначают индексы столбцов, и цифры от 0 до 45 в крайнем левом столбце обозначают индексы строк. Более конкретно, базовый граф имеет 46 строк и 68 столбцов.
Подматрица A соответствует системным битам, имеет пять строк и 22 столбца и включает в себя элементы строки 0 - строки 4 и столбца 0 - столбца 21 в базовом графе 30a.
Подматрица B соответствует битам четности, имеет пять строк и пять столбцов и включает в себя элементы строки 0 - строки 4 и столбца 22 - столбца 26 в базовом графе 30a.
Подматрица A и подматрица B образуют основную матрицу в базовом графе кода LDPC, и если быть точным, образуют матрицу из пяти строк и 27 столбцов, и их можно использовать для кодирования с высокой кодовой скоростью. Например, в основной матрице, включающей в себя подматрицу A и подматрицу B, один столбец имеет вес 5, один столбец имеет вес 4, 21 столбец имеет вес 3, три столбца имеют вес 2, и один столбец имеет вес 1.
Подматрица A может включать в себя два столбца встроенных проколотых битов, и после прокалывания кодовая скорость, которая может поддерживаться базовой матрицей, составляет 22/(27-2)=0, 88. В подматрице A один столбец имеет вес 5, один столбец имеет вес 4, и другие 20 столбцов имеют вес 3. Например, веса двух столбцов встроенных проколотых битов могут быть, соответственно, равны 5 и 4.
Как вес последней строки (строки 4), так и вес последнего столбца (столбца 4 в подматрице B, то есть столбца 26 в основной матрице) в подматрице B равны 1. Подматрица B включает в себя один столбец с весом 3, и если быть точным, вес столбца 0 в подматрице B (столбца 22 в основной матрице) равен 3. Столбец 1 - столбец 3 в подматрице B (столбец 23 - столбец 25 в основной матрице) и строка 0 - строка 3 в подматрице B образуют бидиагональную структуру.
Основная матрица в базовом графе 30a включает в себя четыре строки, чьи веса равны 19, и одну строку, чей вес равен 3. Веса строк в основной матрице, включающей в себя подматрицу A и подматрицу B, равны 19, 19, 19, 19 и 3. Следует отметить, что строки в основной матрице могут меняться местами, например, строка 0 и строка 2 меняются местами друг с другом, и строка 1 и строка 3 меняются местами друг с другом. Строка, чей вес равен 3, может быть строкой 4 в столбце 0 - столбце 26 в основной матрице в базовом графе 30a, и строки, чьи веса равны 19, могут быть, соответственно, строкой 0 - строкой 3 в столбце 0 - столбце 26 в основной матрице в базовом графе 30a. Эти строки могут меняться местами друг с другом, и столбцы могут также меняться местами друг с другом. Например, столбец 8 и столбец 25 в основной матрице могут меняться местами друг с другом, и столбец 10 и столбец 26 могут меняться местами друг с другом. Например, строка 3 и строка 0 в основной матрице могут меняться местами друг с другом, и строка 2 и строка 1 могут меняться местами друг с другом. Для поддержания бидиагональной структуры в подматрице B, на этой основе, столбец 23 и столбец 25 могут также меняться местами друг с другом для получения основной матрицы в базовом графе 80a, показанном на фиг.8a, то есть матрицы, включающей в себя строку 0 - строку 5 и столбец 0 - столбец 26 в базовом графе 80a. Следует отметить, что в данном документе приведены только примеры. В реальном приложении перестановка строк и перестановка столбцов может гибко разрабатываться, исходя из требований к системе.
-2
2
В таблице 1 представлен пример перестановки столбцов для базового графа 80a. Для простоты описания в данном документе представлена последовательность, полученная путем перестановки столбцов из 27 столбцов в основной матрице. Индексы столбцов представляют собой индексы столбцов матрицы после перестановки и пронумерованы от 0. Индексы столбцов перед перестановкой представляют собой индексы столбцов матрицы перед перестановкой. Как показано в таблице 1, столбец 8 и столбец 10 в матрице перед перестановкой меняются местами со столбцом 25 и столбцом 26, столбец 9 в матрице перед перестановкой меняется местами со столбцом 8, столбец 11 - столбец 21 в матрице перед перестановкой меняются местами со столбцом 9 - столбцом 19, и столбец 25 и столбец 26 в матрице перед перестановкой меняются местами со столбцом 20 и столбцом 21. Таким образом, можно повысить производительность конкретной кодовой скорости и конкретной длины кода. Например, на фиг.9 показано схематичное представление производительности на основе базовой матрицы, показанной в таблице 1. Производительность повышается в случае кодовой скорости, равной 2/3, коэффициента блочной ошибки (BLER), равного 10, и длины кода в пределах от 672 до 960. На фиг.10 показано схематичное представление производительности на основе базовой матрицы, показанной в таблице 1. Производительность повышается в случае кодовой скорости, равной 2/3, BLER 10- и длины кода в пределах от 1952 до 2624.
Таблица 1
Индекс столбца
0
1
2
3
4
5
6
7
8
9
10
11
12
13
Индекс столбца перед перестановкой
0
1
2
3
4
5
6
7
9
11
12
13
14
15
Индекс столбца
14
15
16
17
18
19
20
21
22
23
24
25
26
Индекс столбца перед перестановкой
16
17
18
19
20
21
25
26
22
23
24
8
10
Понятно, что так как в матрице строки могут меняться местами друг с другом, столбцы также могут меняться местами друг с другом, перестановка строки не изменяет веса столбцов в матрице, перестановка столбцов не изменяет веса строк в матрице, и количество ненулевых элементов в матрице не изменяется. После перестановки строк и перестановки столбцов веса строк в базовом графе 80a остаются неизменными. На производительность не влияет базовый граф, полученный путем выполнения перестановки строк, или перестановки столбцов или перестановки строк и перестановки столбцов.
Следует отметить, что в настоящей заявке это не влияет на производительность, что означает, что воздействие является приемлемым и находится в целом в допустимых пределах. Например, на производительность в целом оказывается небольшое влияние, так как производительность ухудшается в допустимом диапазоне в некоторых сценариях или в некоторых диапазонах, но производительность повышается в некоторых сценариях или в некоторых диапазонах.
Основная матрица в базовом графе 30a и основная матрица в базовом графе 80a используются в качестве примеров. После перестановки строк в базовом графе 30a основная матрица в базовом графе 80a по-прежнему включает в себя столбцы в основной матрице в базовом графе 30a, и одна строка имеет вес 3, и другие четыре строки имеют вес 19, за исключением того, что изменяется порядок строк. Если перестановка столбцов выполняется в базовом графе 30a, например, столбец 5 и столбец 7 меняются местами друг с другом, можно обнаружить, что основная матрица, которая относится к базовому графу 30a и которая получается путем выполнения перестановки столбцов по-прежнему включает в себя столбцы в основной матрице в базовом графе 30a. Один столбец имеет вес 5, один столбец имеет вес 4, 21 столбец имеет вес 3, три столбца имеют вес 2, и один столбец имеет вес 1, за исключением того, что изменяется порядок столбцов. Следует отметить, что в данном документе представлены только примеры, и примеры не являются ограничивающими.
Для данного базового графа или данной базовой матрицы кода LDPC влияние нескольких изменений элементов матрицы на производительность обычно является приемлемым. Например, в одной реализации несколько изменений могут быть сделаны на основе основной матрицы в базовом графе 30a. Например, одна строка имеет вес, больший или равный 1 и меньший или равный 5, и другие четыре строки имеют веса, большие или равные 17 и меньшие или равные 21, соответственно. Например, одна строка имеет вес 2, и другие четыре строки имеют вес 18; или одна строка имеет вес 4, и другие четыре строки, соответственно, имеют веса 17, 18, 19 и 19. Понятно, что веса некоторых строк могут быть увеличены или уменьшены на 1 или 2 по отношению к решениям, предоставленным в настоящей заявке, и в настоящей заявке этот пример не является ограничивающим.
Подматрица А может также включать в себя одну строку, в которой элементы, отличные от элементов в столбцах, встроенных проколотых битов, являются нулевыми элементами. Кроме того, чтобы минимизировать вес строки в основной матрице или матрице базового графа, строка обычно является такой же, как и строка, чей вес равен 1 в подматрице B. Например, имеется два столбца встроенных проколотых битов, и если быть точным, столбец 0 и столбец 1 являются столбцами встроенных проколотых битов, как показано в базовом графе 30a или 80a. В строке 4 элементы в столбце 0 и столбце 1 являются ненулевыми элементами, элементы в столбце 2 - столбце 25 являются нулевыми элементами, элементы в столбце 26 являются ненулевыми элементами, и вес строки 4 равен 3. Строка 4 имеет наименьший вес в основной матрице и даже во всей основной матрице графа. Такая настройка позволяет повысить производительность кодирования и декодирования.
Для поддержания блоков различной длины необходимо, чтобы код LDPC имел различные коэффициенты Z поднятия. Например, коэффициент Z поднятия может принимать одно или более значений из следующих значений: 16, 18, 20, 22, 24, 26, 28, 30, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80, 88, 96, 104, 112, 120, 128, 144, 160, 176, 192, 208, 224, 240, 256, 288, 320, 352 или 384. Для обеспечения производительности кода LDPC в случаях блоков различной длины можно использовать базовые матрицы, соответствующие различным коэффициентам Z поднятия, исходя из различных коэффициентов Z поднятия. На фиг.3b-1 и 3b-2 показано несколько примеров базовых матриц основной матрицы в базовом графе 30a. Базовые матрицы получаются на основе основной матрицы в базовом графе 30a и коэффициента Z поднятия. Ненулевой элемент в строке i и столбце j в базовом графе 30a имеет значение сдвига в строке i и столбце j в базовой матрице, и нулевой элемент в базовом графе 30a представлен значением -1 или нулем в базовой матрице.
В возможной реализации,
если коэффициент Z поднятия равен одному из {16, 18, 20, 22, 24, 26, 28, 30}, часть, которая находится в базовой матрице базового графа 30a и которая соответствует подматрице A и подматрице B, может быть показана в базовой матрице 30b-1 на фиг.3b-1; или
если коэффициент Z поднятия равен одному из {32, 36, 40, 44, 48, 52, 56, 60}, часть, которая находится в базовой матрице базового графа 30a и которая соответствует подматрице A и подматрице B, может быть показана в базовой матрице 30b-2 на фиг.3b-1; или
если коэффициент Z поднятия равен одному из {60, 64, 72, 80, 88, 96, 104, 112, 120}, часть, которая находится в базовой матрице базового графа 30a и которая соответствует подматрице A и подматрице B, может быть показана в базовой матрице 30b-3 на фиг.3b-1; или
если коэффициент Z поднятия равен одному из {128, 144, 160, 176, 192, 208, 224, 240}, часть, которая находится в базовой матрице базового графа 30a и которая соответствует подматрице A и подматрице B, может быть показана в базовой матрице 30b-4 на фиг.3b-1; или
если коэффициент Z поднятия равен одному из {256, 288, 320, 352, 384}, часть, которая находится в базовой матрице базового графа 30a и которая соответствует подматрице A и подматрице B, может быть показана в базовой матрице 30b-5 на фиг.3b-1.
В другой возможной реализации набор коэффициентов поднятия может представлять собой {24, 26, 28, 30, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80, 88, 96, 104, 112, 120, 128, 144, 160, 176, 192, 208, 224, 240, 256, 288, 320, 352, 384}.
Если коэффициент Z поднятия равен одному из {24, 26, 28, 30}, часть, которая находится в базовой матрице базового графа 30a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 30b-6, показанной на фиг.3b-2; или
если коэффициент Z поднятия равен одному из {32, 36, 40, 44}, часть, которая находится в базовой матрице базового графа 30a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 30b-7, показанной на фиг.3b-2; или
если коэффициент Z поднятия равен одному из {48, 52, 56, 60}, часть, которая находится в базовой матрице базового графа 30a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 30b-8, показанной на фиг.3b-2; или
если коэффициент Z поднятия равен одному из {60, 64, 72, 80, 88, 96, 104, 112, 120}, часть, которая находится в базовой матрице базового графа 30a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 30b-3, показанной на фиг.3b-1; или
если коэффициент Z поднятия равен одному из {128, 144, 160, 176, 192, 208, 224, 240}, часть, которая находится в базовой матрице базового графа 30a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей в 30b-4, показанной на фиг.3b-1; или
если коэффициент Z поднятия равен одному из {256, 288, 320, 352, 384}, часть, которая находится в базовой матрице базового графа 30a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 30b-5, показанной на фиг.3b-1.
Основываясь на вышеизложенных реализациях, в другой возможной реализации для дальнейшего повышения производительности базовый граф может соответствовать большему количеству базовых матриц, и части, которые находятся в базовых матрицах базового графа 30a и которые соответствуют подматрице A и подматрице B могут соответствовать различным базовым матрицам. Например,
если коэффициент Z поднятия равен одному из {24, 26, 28, 30}, часть, которая находится в базовой матрице базового графа 30a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 30b-6, показанной на фиг.3b-2; или
если коэффициент Z поднятия равен одному из {32, 36, 40, 44}, часть, которая находится в базовой матрице базового графа 30a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 30b-7, показанной на фиг.3b-2; или
если коэффициент Z поднятия равен одному из {48, 52, 56, 60}, часть, которая находится в базовой матрице базового графа 30a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 30b-8, показанной на фиг.3b-2; или
если коэффициент Z поднятия равен одному из {64, 72, 80, 88}, часть, которая находится в базовой матрице базового графа 30a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 30b-9 или 30b-10, показанной на фиг.3b-2; или
если коэффициент Z поднятия равен одному из {96, 104, 112, 120}, часть, которая находится в базовой матрице базового графа 30a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 30b-3, показанной на фиг.3b-1; или
если коэффициент Z поднятия равен одному из {128, 144, 160, 176, 192, 208, 224, 240}, часть, которая находится в базовой матрице базового графа 30a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 30b-4, показанной на фиг.3b-1; или
если коэффициент Z поднятия равен одному из {256, 288, 320, 352, 384}, часть, которая находится в базовой матрице базового графа 30a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 30b-5, показанной на фиг.3b-1.
i, j
На фиг.8b показано несколько примеров базовых матриц основной матрицы в базовом графе 80a. Базовые матрицы получаются на основе основной матрицы в базовом графе 80a и коэффициенте Z поднятия. Ненулевой элемент в строке i и столбце j в базовом графе 80a имеет значение сдвига P в строке i и столбце j в базовой матрице, и нулевой элемент в базовом графе 80a представлен значением -1 или нулем в сдвиговой матрице.
В другой возможной реализации набор коэффициентов поднятия может представлять собой {24, 26, 28, 30, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80, 88, 96, 104, 112, 120, 128, 144, 160, 176, 192, 208, 224, 240, 256, 288, 320, 352, 384}.
Если коэффициент Z поднятия равен одному из {24, 26, 28, 30}, часть, которая находится в базовой матрице базового графа 80a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 80b-1, показанной на фиг.8b-1; или
если коэффициент Z поднятия равен одному из {32, 36, 40, 44}, часть, которая находится в базовой матрице базового графа 80a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 80b-2, показанной на фиг.8b-1; или
если коэффициент Z поднятия равен одному из {48, 52, 56, 60}, часть, которая находится в базовой матрице базового графа 80a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 80b-3, показанной на фиг.8b-1; или
если коэффициент Z поднятия равен одному из {60, 64, 72, 80, 88, 96, 104, 112, 120}, часть, которая находится в базовой матрице базового графа 80a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 80b-4, показанной на фиг.8b-1; или
если коэффициент Z поднятия равен одному из {128, 144, 160, 176, 192, 208, 224, 240}, часть, которая находится в базовой матрице базового графа 80a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 80b-5, показанной на фиг.8b-1; или
если коэффициент Z поднятия равен одному из {256, 288, 320, 352, 384}, часть, которая находится в базовой матрице базового графа 80a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 80b-6, показанной на фиг.8b-2.
Основываясь на приведенной выше реализации, в другой возможной реализации для дальнейшего повышения производительности базовый граф может соответствовать большему количеству базовых матриц, и части, которые находятся в базовых матрицах базового графа 80a и которые соответствуют подматрице A и подматрице B, могут соответствовать различным базовым матрицам. Например,
если коэффициент Z поднятия равен одному из {24, 26, 28, 30}, часть, которая находится в базовой матрице базового графа 80a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 80b-1, показанной на фиг.8b-1; или
если коэффициент Z поднятия равен одному из {32, 36, 40, 44}, часть, которая находится в базовой матрице базового графа 80a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 80b-2, показанной на фиг.8b-1; или
если коэффициент Z поднятия равен одному из {48, 52, 56, 60}, часть, которая находится в базовой матрице базового графа 80a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 80b-3, показанной на фиг.8b-1; или
если коэффициент Z поднятия равен одному из {64, 72, 80, 88}, часть, которая находится в базовой матрице базового графа 80a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 80b-7 или 80b-8, показанной на фиг.8b-2; или
если коэффициент Z поднятия равен одному из {96, 104, 112, 120}, часть, которая находится в базовой матрице базового графа 80a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 80b-4, показанной на фиг.8b-1; или
если коэффициент Z поднятия равен одному из {128, 144, 160, 176, 192, 208, 224, 240}, часть, которая находится в базовой матрице базового графа 80a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 80b-5, показанной на фиг.8b-1; или
если коэффициент Z поднятия равен одному из {256, 288, 320, 352, 384}, часть, которая находится в базовой матрице базового графа 80a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 80b-6, показанной на фиг.8b-2.
В другой возможной реализации часть, которая находится в базовой матрице базового графа 80a и которая соответствует подматрице A и подматрице B, может быть базовой матрицей 80b-9, показанной на фиг.8b. Так как коэффициенты Z поднятия можно классифицировать множеством способом, базовую матрицу, используемую для группы коэффициентов Z поднятия, можно рассматривать с точки зрения производительности, соответственно.
Например, значение коэффициента Z поднятия определяется на основе длины K входной последовательности. Например, если длина входной последовательности равна K, минимальное значение коэффициента поднятия, которое удовлетворяет неравенству 22*Z≥K, можно определить из множества коэффициентов поднятия, определенных в системе, и можно использовать в качестве значения коэффициента поднятия матрицы. Кроме того, соответствующую базовую матрицу можно выбрать на основе определенного коэффициента поднятия. В таблице 2 представлен пример соответствия между базовой матрицей и коэффициентом поднятия. Множество коэффициентов поднятия, определенных в системе, классифицируется на восемь групп, то есть восемь наборов, и индексы наборов принимают значения от 1 до 8. Соответственно, имеется восемь базовых матриц PCM (матрица проверки четности (PCM)) 1 - PCM 8.
Таблица 2
Индекс базовой матрицы
Коэффициент Z поднятия
PCM 1
2
4
8
16
32
64
128
256
PCM 2
3
6
12
24
48
96
192
384
PCM 3
5
10
20
40
80
160
320
PCM 4
7
14
28
56
112
224
PCM 5
9
18
36
72
144
288
PCM 6
11
22
44
88
176
352
PCM 7
13
26
52
104
208
PCM 8
15
30
60
120
240
Например, базовую матрицу 80b-9 можно использовать в качестве PCM 8, и в этом случае, когда коэффициентом Z поднятия является любое из: 15, 30, 60, 120 или 240, базовую матрицу 80b-9 можно использовать в качестве базовой матрицы, и соответственно, базовая матрица поднимается с использованием коэффициента Z поднятия для получения матрицы проверки на четность LDPC. Кроме того, когда Z больше или равно 24, базовая матрица 80b-9 имеет относительно высокую эффективность.
Аналогичным образом, в базовой матрице строки могут меняться местами друг с другом, и столбцы могут также меняться местами друг с другом. Если по меньшей мере одна из перестановки строк или перестановки столбцов выполняется в базовом графе, такая же перестановка также выполняется в соответствующей базовой матрице.
Можно понять, что в вышеизложенных реализациях базовая матрица 80b-1 является базовой матрицей, полученной путем выполнения перестановки строк и перестановки столбцов в базовой матрице 30b-6, базовая матрица 80b-2 является базовой матрицей, полученной путем выполнения перестановки строк и перестановки столбцов в базовой матрице 30b-7, базовая матрица 80b-3 является базовой матрицей, полученной путем выполнения перестановки строк и перестановки столбцов в базовой матрице 30b-8, базовая матрица 80b-4 является базовой матрицей, полученной путем выполнения перестановки строк и перестановки столбцов в базовой матрице 30b-3, базовая матрица 80b-5 является базовой матрицей, полученной путем выполнения перестановки строк и перестановки столбцов в базовой матрице 30b-4, базовая матрица 80b-6 является базовой матрицей, полученной путем выполнения перестановки строк и перестановки столбцов в базовой матрице 30b-5, базовая матрица 80b-7 является базовой матрицей, полученной путем выполнения перестановки строк и перестановки столбцов в базовой матрице 30b-9, и базовая матрица 80b-8 является базовой матрицей, полученной путем выполнения перестановки строк и перестановки столбцов в базовой матрице 30b-10.
Понятно, что часть, которая находится в базовой матрице матрицы LDPC и которая соответствует подматрице A и подматрице B, может включать в себя строки или столбцы в любой из базовых матриц 30b-1, 30b-2, 30b-3, 30b-4, 30b-5, 30b-6, 30b-7, 30b-8, 30b-9 или 30b-10, то есть матрица получается путем выполнения перестановки столбцов или перестановки строк или перестановки строк и перестановки столбцов в любой из базовых матриц 30b-1, 30b-2, 30b-3, 30b-4, 30b-5, 30b-6, 30b-7, 30b-8, 30b-9 или 30b-10.
Чтобы получить гибкую кодовую скорость, подматрица C, подматрица D и подматрица E соответствующих размеров могут быть добавлены на основе основной матрицы для получения разных кодовых скоростей. Так как подматрица C является нулевой матрицей, и подматрица E является матрицей идентификатора, размеры подматрицы C и подматрицы E определяются на основе кодовых скоростей, и структуры подматрицы C и подматрицы E являются относительно фиксированными. Основная матрица и подматрица D в основном влияют на производительность кодирования и декодирования. Строки и столбцы добавляются на основе основной матрицы для формирования соответствующих подматриц C, D и E таким образом, чтобы можно было получить разные кодовые скорости. Например, основную матрицу в базовом графе 30a или основную матрицу в базовом графе 80a можно использовать в качестве основной матрицы, и соответствующие подматрицы C, D и E добавляются для того, чтобы удовлетворить требования к кодированию или декодированию для различных кодовых скоростей.
A
A
m
A
m
A
A
m
A
m
A
D
Количество столбцов подматрицы D представляет собой сумму числа столбцов подматрицы A и числа столбцов подматрицы B, и количество строк подматрицы D в основном относится к кодовой скорости. Базовый граф 30a используется в качестве примера. Количество столбцов mD соответствующей подматрицы D равно (n+m)=27 столбцам. Если кодовая скорость, поддерживаемая кодом LDPC, равна R, размеры базового графа или базовой матрицы кода LDPC составляют m*n, где n=n/R+p и m=n-n=n/R+p–n. Если минимальное значение R кодовой скорости равно 1/3, и количество p столбцов встроенных проколотых битов равно 2, в примере базового графа 30a n=68, m=46, количество строк mD подматрицы D может составлять до m-m=46-5=41, и 0≤m≤41.
D
D
D
Для простоты описания можно определить матрицу F из 41 строки и 27 столбцов. В этом случае подматрица D может включать в себя m строк в матрице F и подматрице D, подматрица A, подматрица B, подматрица C и подматрица E соответствующих размеров образуют базовый граф, который представляет собой код LDPC, чья кодовая скорость равна 22/(25+m). В базовом графе 30a m=41, и подматрица D имеет 41 строку и 27 столбцов, соответственно. Более конкретно, подматрица D является матрицей F, и соответствующая кодовая скорость, поддерживаемая кодом LDPC, составляет 22/66=1/3. Можно выяснить, что матрица, включающая в себя строку 5 - строку 45 и столбец 0 - столбец 26 в базовом графе 30a, является матрицей F.
Веса строк матрицы F, показанной базовом графе 30a в качестве примера, равны в строке 7, 7, 9, 8, 7, 7, 8, 6, 6, 5, 6, 5, 5, 6, 5, 5, 5, 5, 4, 4, 4, 5, 4, 5, 4, 4, 4, 4, 3, 4, 4, 4, 4, 3, 3, 4, 4, 3, 3, 3 и 4.
Так как подматрица E является матрицей идентификатора, веса строк в базовом графе 30a равны 8, 8, 10, 9, 8, 8, 9, 7, 7, 6, 7, 6, 6, 7, 6, 6, 6, 6, 5, 5, 5, 6, 5, 6, 5, 5, 5, 5, 4, 5, 5, 5, 5, 4, 4, 5, 5, 4, 4, 4 и 5.
В настоящей заявке, если имеется не более одного ненулевого элемента в двух соседних строках в одном том же столбце в базовом графе, эти две строки являются взаимно ортогональными.
D
В возможной реализации матрица F может быть матрицей с квазиортогональной структурой. В матричном блоке, включающем в себя столбцы, отличные от столбцов встроенных проколотых битов в матрице F, имеется максимум только один ненулевой элемент в любых двух соседних строках в одном и том же столбце, то есть матричный блок, включающий в себя столбцы, отличные от столбцов встроенных проколотых битов в матрице F, имеет ортогональную структуру. В примере базового графа 30a матрица F является матрицей, включающей в себя строку 5 - строку 45 и столбец 0 - столбец 26, и столбец 0 и столбец 1 являются столбцами встроенных проколотых битов. В матричном блоке, включающем в себя строку 5 - строку 45 и столбец 2 - столбец 26, строка 5 и строка 6 взаимно ортогональны, строка 6 и строка 7 взаимно ортогональны, строка 23 и строка 24 взаимно ортогональны, строка 32 и строка 33 взаимно ортогональны и т.д. Если m=15, подматрица D в базовом графе кода LDPC имеет 15 строк и 27 столбцов. Подматрица D может быть матрицей, включающей в себя строку 0 - строку 14 в матрице F в базовом графе 30a, то есть строку 5 - строку 19 в базовом графе 30a и столбец 0 - столбец 26. Соответствующая кодовая скорость, поддерживаемая кодом LDPC, равна 22/40=0,55. При этой кодовой скорости базовый граф кода LDPC соответствует матрице, включающей в себя строку 0 - строку 19 и столбец 0 - столбец 41 в базовом графе 30a. Подматрица E является матрицей идентификатора из 15 строк и 15 столбцов, и подматрица C является нулевой матрицей из пяти строк и 15 столбцов.
D
Если m=19, подматрица D в базовом графе кода LDPC имеет 19 строк и 27 столбцов. Подматрица D может быть матрицей, включающей в себя строку 0 - строку 18 в матрице F в базовом графе 30a, то есть строку 5 - строку 23 в базовом графе 30a и столбец 0 - столбец 26. Соответствующая кодовая скорость, поддерживаемая кодом LDPC, равна 22/44=1/2. При этой кодовой скорости базовый граф кода LDPC соответствует матрице, включающей в себя строку 0 - строку 23 и столбец 0 - столбец 41 в базовом графе 30a. Подматрица E является матрицей идентификатора из 19 строк и 19 столбцов, и подматрица C является нулевой матрицей из пяти строк и 19 столбцов.
D
То же самое верно, если m имеет другое значение, и этот случай подробно не описывается.
D
D
D
Следует отметить, что строки могут меняться местами друг с другом, и столбцы могут также меняться местами друг с другом в базовом графе и базовой матрице кода LDPC. Например, строка 17 и строка 19 в базовом графе 30a могут меняться местами друг с другом, и столбец 39 и столбец 41 могут меняться местами друг с другом для того, чтобы получить базовую матрицу графа 80a, показанную на фиг.8a. В другом примере подматрица D включает в себя m строк в матрице F, перестановка строки может не выполняться между m строками, или перестановка строк может выполняться между одной или более из mD строк; и подматрица E по-прежнему имеет диагональную структуру, и перестановка строк или перестановка столбцов не выполняется в подматрице E. Например, строка 12 и строка 14 в матрице F меняются местами друг с другом, подматрица D включает в себя m строк в подматрицу F, и подматрица E по-прежнему имеет диагональную структуру для получения базового графа 80a. Перед перестановкой строк матрица F является квазиортогональной матрицей, и после перестановки матрица F остается по-прежнему квазиортогональной матрицей. Например, в базовом графе 80a матрица F является матрицей, включающей в себя строку 5 - строку 45 и столбец 0 - столбец 26, и столбец 0 и столбец 1 являются столбцами встроенных проколотых битов. В матричном блоке, включающем в себя строку 5 - строку 45 и столбец 2 - столбец 26, строка 5 и строка 6 взаимно ортогональны, строка 29 и строка 30 взаимно ортогональны и т.д. Понятно, что если базовый граф или базовая матрица включают в себя подматрицу D, когда столбцы в основной матрице меняются местами друг с другом, соответствующие столбцы в подматрице D также должны меняться местами друг с другом. Например, если столбец 23 и столбец 25 в основной матрице меняются местами друг с другом, столбец 23 и столбец 25 в подматрице D также должны меняться местами друг с другом соответственно. В данном документе представлены только примеры, и примеры не являются ограничивающими.
В вариантах осуществления настоящей заявки подматрица D имеет квазиортогональную структуру, и, если быть точным, две соседние строки в каждом столбце, отличном от столбцов встроенных проколотых битов, являются ортогональными. Например, в подматрицах D, представленных в базовом графе 30a, базовом графе 80a, базовом графе 170a как показано на фиг.11 и базовом графе показанном на фиг.12 согласно вариантам осуществления настоящей заявки, столбец 0 и столбец 1 являются столбцами встроенных проколотых битов, и две соседние строки в каждом из других столбцов являются ортогональными. Следует отметить, что столбцы встроенных проколотых битов могут быть другими столбцами. В данном документе этот пример не является ограничивающим.
D
В другой возможной реализации матрица F с квазиортогональной структурой может также включать в себя по меньшей мере две ортогональные строки, и имеется максимум только один ненулевой элемент в каждом столбце 0 - столбце 26 в двух соседних строках по меньшей мере среди двух ортогональных строк. Например, если m>30, соответствующая кодовая скорость, поддерживаемая кодом LDPC, меньше 2/5, и подматрица, включающая в себя последние 11 строк в матрице F, то есть строку 30 - строку 40 в матрице F и столбец 0 - столбец 26, может быть ортогональной. Более конкретно, в матрице F имеется максимум только один ненулевой элемент в столбце, отличном от столбцов встроенных проколотых битов в двух соседних строках среди строки 0 - строки 29, и имеется максимум только один ненулевой элемент в каждом столбце 0 - столбце 26 в двух соседних строках среди строки 30 - строки 40.
В другом примере подматрица, включающая в себя строку 26 - строку 40 и столбец 0 - столбец 26 в матрице F, может быть ортогональной. Более конкретно, в матрице F имеется максимум только один ненулевой элемент в столбце, отличном от столбцов встроенных проколотых битов в двух соседних строках среди строки 0 - строки 25, и имеется максимум только один ненулевой элемент в каждом столбце 0 - столбце 26 в двух соседних строках среди строки 26 - строки 40. В базовом графе 170a, показанном на фиг.11a, матрица F является матрицей, включающей в себя строку 5 - строку 45 и столбец 0 - столбец 26 в базовом графе, матрица F имеет квазиортогональную структуру, строка 26 - строка 40 в матрице F являются ортогональными, и имеется максимум только один ненулевой элемент в каждом столбце в двух соседних строках среди строки 26 - строки 40.
Основная матрица в базовом графе 170a совпадает с основной матрицей в базовом графе 80a. Что касается подматрицы D при любом значении кодовой скорости, то в один или два ненулевых элемента или один или два нулевых элемента в каждой строке могут быть внесены изменения без влияния на производительность подматрицы D.
D
В качестве другого примера, если m>20, подматрица, включающая в себя последние 21 строки в матрице F, то есть строку 25 - строку 45 в матрице F, и столбец 0 - столбец 26 могут быть ортогональными. Более конкретно, в матрице F имеется максимум только один ненулевой элемент в столбце, отличном от столбцов встроенных проколотых битов в двух соседних строках среди строки 0 - строки 19, и имеется максимум только один ненулевой элемент в каждом столбце 0 - столбце 26 в двух соседних строках среди строки 20 - строки 40. Основная матрица в базовом графе 170a, показанном на фиг.11a совпадает с основной матрицей в базовом графе 80a. Строка 5 - строка 45 удовлетворяют квазиортогональной структуре, или строка 5-строка 25 удовлетворяют квазиортогональной структуре, и строка 25-строка 45 удовлетворяют квазиортогональной структуре.
Основная матрица в базовом графе, показанном на фиг.12, совпадает с основной матрицей в базовом графе 80a, и строка 5 - строка 45 в основной матрице имеют квазиортогональную структуру.
D
D
D
Базовая матрица 30c, показанная на фиг.3c-1, является примером базовой матрицы базового графа 30a показанного на фиг.3а. Ненулевой элемент в строке i и столбце j в базовом графе 30a имеет одну и ту же позицию в базовой матрице 30c, и значение ненулевого элемента является значением сдвига. Подматрица D включает в себя m строк в матрице сдвига матрицы F. Для базовой матрицы 30c, показанной на фиг.3c-1, m=41, и m можно выбрать, исходя из разных кодовых скоростей. Сдвиговая матрица, соответствующая подматрице D, является сдвиговой матрицей матрицы F. В данном случае сдвиговая матрица матрицы F получается путем замены ненулевого элемента в строке i и столбце j в матрице F на значение сдвига, и нулевой элемент может быть представлен значением -1 или нулем в сдвиговой матрице. Следует отметить, что в данном документе представлены только примеры, базовый граф может быть базовым графом 80a, 180a и т.п., и в данном документе базовые графы не описываются один за другим.
В возможной реализации сдвиговая матрица матрицы F может включать в себя строки или столбцы в любой из матриц 30c-1 - 30c-10 показанных на фиг.3c-1-11. Например,
если коэффициент Z поднятия равен одному из {16, 18, 20, 22, 24, 26, 28, 30}, сдвиговая матрица матрицы F может быть матрицей 30c-1, показанной на фиг. 3с-2, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 30с-1; или
если коэффициент Z поднятия равен одному из {32, 36, 40, 44, 48, 52, 56, 60}, сдвиговая матрица матрицы F может быть матрицей 30c-2, показанной на фиг. 3с-3, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 30с-2; или
если коэффициент Z поднятия равен одному из {60, 64, 72, 80, 88, 96, 104, 112, 120}, сдвиговая матрица матрицы F может быть матрицей 30c-3, показанной на фиг. 3с-4, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 30-3; или
если коэффициент Z поднятия равен одному из {128, 144, 160, 176, 192, 208, 224, 240}, сдвиговая матрица матрицы F может быть матрицей 30c-4, показанной на фиг. 3с-5, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 30с-4; или
если коэффициент Z поднятия равен одному из {256, 288, 320, 352, 384}, сдвиговая матрица матрицы F может быть матрицей 30c-5, показанной на фиг. 3с-6, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 30с-5.
D
D
Подматрица D в базовой матрице 30c заменяется на m строк в каждой сдвиговой матрице матрицы F для получения базовых матриц, которые имеют разные кодовые скорости и соответствуют базовому графу 30a. Если m=41, матрица, включающая в себя строку 5 - строку 45 и столбец 0 - столбец 26 в базовой матрице 30c, заменяется на каждую сдвиговую матрицу матрицы F для получения каждой базовой матрицы из 46 строк и 68 столбцов, что соответствует базовому графу 30a. В этом случае кодовая скорость равна 1/3.
В другой возможной реализации набор коэффициентов поднятия может представлять собой {24, 26, 28, 30, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80, 88, 96, 104, 112, 120, 128, 144, 160, 176, 192, 208, 224, 240, 256, 288, 320, 352, 384}.
Если коэффициент Z поднятия равен одному из {24, 26, 28, 30}, сдвиговая матрица матрицы F может быть матрицей 30c-6, показанной на фиг. 3с-7, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 30с-6; или
если коэффициент Z поднятия равен одному из {32, 36, 40, 44}, сдвиговая матрица матрицы F может быть матрицей 30c-7, показанной на фиг. 3с-8, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 30с-7; или
если коэффициент Z поднятия равен одному из {48, 52, 56, 60}, сдвиговая матрица матрицы F может быть матрицей 30c-8, показанной на фиг. 3с-9, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 30с-8; или
если коэффициент Z поднятия равен одному из {60, 64, 72, 80, 88, 96, 104, 112, 120}, сдвиговая матрица матрицы F может быть матрицей 30c-3, показанной на фиг. 3с-4, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 30с-3; или
если коэффициент Z поднятия равен одному из {128, 144, 160, 176, 192, 208, 224, 240}, сдвиговая матрица матрицы F может быть матрицей 30c-4, показанной на фиг. 3с-5, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 30с-4; или
если коэффициент Z поднятия равен одному из {256, 288, 320, 352, 384}, сдвиговая матрица матрицы F может быть матрицей 30c-5, показанной на фиг. 3с-6, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 30с-5.
Основываясь на вышеизложенных реализациях, в другой возможной реализации имеется больше вариантов выбора матрицы сдвига матрицы F для дальнейшего повышения производительности. Например, сдвиговая матрица матрицы F может быть матрицей 30c-9 показаной на фиг. 3с-10 или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 30с-9, или матрицей 30c-10, показанной на фиг. 3с-11, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 30с-10. Например, коэффициент поднятия может быть рассчитан следующим образом:
Если коэффициент Z поднятия равен одному из {24, 26, 28, 30}, сдвиговая матрица матрицы F может быть матрицей 30c-6, показанной на фиг. 3с-7, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 30с-6; или
если коэффициент Z поднятия равен одному из {32, 36, 40, 44}, сдвиговая матрица матрицы F может быть матрицей 30c-7, показанной на фиг. 3с-8, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы; или
если коэффициент Z поднятия равен одному из {48, 52, 56, 60}, сдвиговая матрица матрицы F может быть матрицей 30c-8, показанной на фиг. 3с-9, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 30с-8; или
если коэффициент Z поднятия равен одному из {64, 72, 80, 88}, сдвиговая матрица матрицы F может быть матрицей 30c-9, показанной на фиг. 3с-10, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 30с-9, или матрицей 30c-10, показанной на фиг. 3с-11, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 30с-10; или
если коэффициент Z поднятия равен одному из {96, 104, 112, 120}, сдвиговая матрица матрицы F может быть матрицей 30c-3, показанной на фиг. 3с-4, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 30с-3; или
если коэффициент Z поднятия равен одному из {128, 144, 160, 176, 192, 208, 224, 240}, сдвиговая матрица матрицы F может быть матрицей 30c-4, показанной на фиг. 3с-5, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 30с-4; или
если коэффициент Z поднятия равен одному из {256, 288, 320, 352, 384}, сдвиговая матрица матрицы F может быть матрицей 30c-5, показанной на фиг. 3с-6, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 30с-5.
В другой возможной реализации сдвиговая матрица матрицы F может включать в себя строки или столбцы в любой из матриц 80c-1 - 80c-9, показанной на фиг. 8с-2 - 8с-10. Например, набор коэффициентов поднятия может представлять собой {24, 26, 28, 30, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80, 88, 96, 104, 112, 120, 128, 144, 160, 176, 192, 208, 224, 240, 256, 288, 320, 352, 384}.
Если коэффициент Z поднятия равен одному из {24, 26, 28, 30}, сдвиговая матрица матрицы F может быть матрицей 80c-1, показанной на фиг. 8с-2, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 80с-1 ; или
если коэффициент Z поднятия равен одному из {32, 36, 40, 44}, сдвиговая матрица матрицы F может быть матрицей 80c-2, показанной на фиг. 8с-3, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 80с-2; или
если коэффициент Z поднятия равен одному из {48, 52, 56, 60}, сдвиговая матрица матрицы F может быть матрицей 80c-3, показанной на фиг. 8с-4, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 80с-3; или
если коэффициент Z поднятия равен одному из {60, 64, 72, 80, 88, 96, 104, 112, 120}, сдвиговая матрица матрицы F может быть матрицей 80c-4, показанной на фиг. 8с-5, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 80с-4; или
если коэффициент Z поднятия равен одному из {128, 144, 160, 176, 192, 208, 224, 240}, сдвиговая матрица матрицы F может быть матрицей 80c-5, показанной на фиг. 8с-6, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 80с-5; или
если коэффициент Z поднятия равен одному из {256, 288, 320, 352, 384}, сдвиговая матрица матрицы F может быть матрицей 80c-6, показанной на фиг. 8с-7, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 80с-6.
Основываясь на вышеизложенных реализациях, в другой возможной реализации для дальнейшего повышения производительности, коэффициенты Z могут быть рассчитаны с более высокой степенью детализации, с тем, чтобы существовало больше вариантов выбора сдвиговой матрицы матрицы F. Например, сдвиговая матрица матрицы F может быть матрицей 80c-7 или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы, или матрицей 80c-8 или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы. Например, коэффициент поднятия может быть рассчитан следующим образом:
Если коэффициент Z поднятия равен одному из {24, 26, 28, 30}, сдвиговая матрица матрицы F может быть матрицей 80c-1, показанной на фиг. 8с-2, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 80с-1; или
если коэффициент Z поднятия равен одному из {32, 36, 40, 44}, сдвиговая матрица матрицы F может быть матрицей 80c-2, показанной на фиг. 8с-3, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 80с-2; или
если коэффициент Z поднятия равен одному из {48, 52, 56, 60}, сдвиговая матрица матрицы F может быть матрицей 80c-3, показанной на фиг. 8с-4, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 80с-3; или
если коэффициент Z поднятия равен одному из {64, 72, 80, 88}, сдвиговая матрица матрицы F может быть матрицей 80c-7, показанной на фиг. 8с-8, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 80c-7, или матрицей 80c-8, показанной на фиг. 8с-9, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 80с-8; или
если коэффициент Z поднятия равен одному из {96, 104, 112, 120}, сдвиговая матрица матрицы F может быть матрицей 80c-4, показанной на фиг. 8с-5, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 80с-4; или
если коэффициент Z поднятия равен одному из {128, 144, 160, 176, 192, 208, 224, 240}, сдвиговая матрица матрицы F может быть матрицей 80c-5, показанной на фиг. 8с-6, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 80с-5; или
если коэффициент Z поднятия равен одному из {256, 288, 320, 352, 384}, сдвиговая матрица матрицы F может быть матрицей 80c-6, показанной на фиг. 8с-7, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 80с-6.
В другой возможной реализации, если коэффициент Z поднятия представляет собой любое одно из: 15, 30, 60, 120 или 240, сдвиговая матрица матрицы F может быть матрицей 80c-9, показанной на фиг. 8с-10, или матрицей, полученной путем выполнения перестановки строк/столбцов матрицы 80с-9. Кроме того, когда Z больше или равно 24, производительность сдвиговой матрицы матрицы F является относительно высокой, когда сдвиговая матрица является матрицей 80c-9.
Аналогичным образом, строки могут меняться местами друг с другом, и столбцы могут также меняться местами друг с другом в базовой матрице. Если по меньшей мере одна из перестановки строк или перестановки столбцов выполняется в базовом графе, такая же перестановка также выполняется в соответствующей базовой матрице.
Можно выяснить, что в вышеизложенных реализациях матрица 80c-1 является матрицей, полученной путем выполнения перестановки строк в базовой матрице 30c-6, матрица 80c-2 является матрицей, полученной путем выполнения перестановки строк в базовой матрице 30c-7, матрица 80c-3 является базовой матрицей, полученной путем выполнения перестановки строк в базовой матрице 30c-8, матрица 80c-4 является базовой матрицей, полученной путем выполнения перестановки строк в базовой матрице 30c-3, матрица 80c-5 является базовой матрицей, полученной путем выполнения перестановки строк в базовой матрице 30c-4, матрица 80c-6 является базовой матрицей, полученной путем выполнения перестановки строк в базовой матрице 30c-5, матрица 80c-7 является базовой матрицей, полученной путем выполнения перестановки строк в базовой матрице 30c-9, и матрица 80c-8 является базовой матрицей, полученной путем выполнения перестановки строк в базовой матрице 30c-10.
D
D
Подматрица D в базовой матрице 80c заменяется на m строк в каждой сдвиговой матрице матрицы F для получения базовых матриц, которые имеют разные кодовые скорости и соответствуют базовому графу 80a. Если m=41, матрица, включающая в себя строку 5 - строку 45 и столбец 0 - столбец 26 в базовой матрице 80c, заменяется каждой сдвиговой матрицей матрицы F для получения каждой базовой матрицы из 46 строк и 68 столбцов, что соответствует базовому графу 80a. В этом случае кодовая скорость равна 1/3.
D
D
Следует отметить, что так как строки могут меняться местами друг с другом, и столбцы могут меняться местами друг с другом в базовом графе и базовой матрице, в возможной реализации основную матрицу в базовом графе 30a можно использовать в качестве основной матрицы в базовом графе, то есть части, включающей в себя подматрицу A и подматрицу B, и подматрица D в базовом графе может включать в себя m строк в матрице, включающей в себя строку 5 - строку 45 и столбец 0 - столбец 26 в базовом графе 30a. Соответственно, основная матрица в базовой матрице может представлять собой одно из: 30b-3, 30b-4, 30b-5, 30b-6, 30b-7, 30b-8, 30b-9 или 30b-10, и соответствующая подматрица D может включать в себя m строк в любой из следующих матриц: 30c-3, 30c-4, 30c-5, 30c-6, 30c-7, 30c-8, 30c-9 или 30c-10. Основную матрицу и соответствующую подматрицу D можно выбрать на основе коэффициента поднятия.
D
D
В другой возможной реализации основная матрица в базовом графе 80a может использоваться в качестве основной матрицы в базовом графе, то есть часть, включающая в себя подматрицу A и подматрицу B и подматрицу D в базовом графе, может включать в себя m строк в матрице, включающей в себя строку 5 - строку 45 и столбец 0 - столбец 26 в базовом графе 80a. Соответственно, основная матрица в базовой матрице может быть одной из: 80b-1, 80b-2, 80b-3, 80b-4, 80b-5, 80b-6, 80-7, 80b-8 или 80b-9, и соответствующая подматрица D может включать в себя m строк в любой из следующих матриц: 80c-1, 80c-2, 80c-3, 80c-4, 80c-5, 80c-6, 80c-7, 80c-8 или 80c-9. Основная матрица и соответствующая подматрица D может быть выбрана на основе коэффициента поднятия.
D
В другой возможной реализации основная матрица в базовом графе 80a может использоваться в качестве основной матрицы в базовом графе, то есть часть, включающая в себя подматрицу A и подматрицу B и подматрицу D в базовом графе, может включать в себя m строк в матрице, включающей в себя строку 5 - строку 45 и столбец 0 - столбец 26 в базовом графе 170a, как показано в базовом графе 170a. Соответственно, базовая матрица может включать в себя mD строк в строке 5 - строке 45 и строке 0 - строке 4 в базовой матрице 170b, показанной на фиг.11b.
D
В другой возможной реализации основная матрица в базовом графе 80a может использоваться в качестве основной матрицы в базовом графе, и подматрица D в базовом графе может включать в себя m строк в матрице, включающей в себя строку 5 - строку 45 и столбец 0 - столбец 26 в базовом графе, как показано на фиг.12.
Понятно, что в настоящей заявке, квазиортогональная структура не ограничивается только двумя соседними строками, матрица, которая удовлетворяет квазиортогональной структуре, может быть выполнена таким образом, чтобы она включала в себя множество групп, причем каждая группа включает в себя по меньшей мере две строки, например, три строки или четыре строки, и строки, включенные в каждую группу, являются квазиортогональными.
На диаграммах кривой производительности, показанных на фиг.4 и фиг.5, LDPC 1 указывает, что код LDPC получается путем кодирования на основе базовой матрицы, соответствующей базовому графу 30a, и LDPC 2 указывает общий код LDPC для сравнения. Горизонтальная координата указывает длину информационной битовой последовательности, и единицей длины является бит. По вертикальной координате отложено отношение сигнал/шум символа (Es/N0). Кривые производительности указывают рабочие характеристики отношения сигнал/шум символа для LDPC 1 и LDPC 2 в случае различных длин информационной битовой последовательности, когда значения BLER равны, соответственно, 0,01 и 0,0001. На фиг.4 кодовая скорость R равна 8/9, и на фиг.5 кодовая скорость R равна 1/3. Можно выяснить, что при одном и том же BLER отношение сигнал/шум символа LDPC 1 меньше, чем у LDPC 2 в случае различных длин информационной битовой последовательности, то есть производительность LDPC 1 лучше, чем у LDPC 2.
B
В способе кодирования, предусмотренном в варианте осуществления настоящей заявки, кодер кодирует входную последовательность с использованием матрицы LDPC. Базовый граф матрицы LDPC может быть любым базовым графом в приведенных выше примерах, и базовая матрица H матрицы LDPC может быть любой базовой матрицей в приведенных выше примерах. Входная последовательность кодера может быть информационной битовой последовательностью или может быть информационной битовой последовательностью, полученной после по меньшей мере одной из следующих обработок: присоединение CRC или вставка заполняющих битов.
c
c
c
Способ дополнительно включает в себя: определение коэффициента Z поднятия. Значение коэффициента Z поднятия можно определить на основе длины K входной последовательности. Иногда информационная битовая последовательность также упоминается как кодовый блок (code block), и она может быть получена путем выполнения разделения кодового блока в транспортном блоке. Если длина информационной битовой последовательности равна K, минимальное значение коэффициента поднятия, которое удовлетворяет неравенству 22*Z≥K можно определить из множества коэффициентов поднятия, определенных в системе. Например, если K=3800, и коэффициенты поднятия, определенные в системе, включают в себя 16, 18, 20, 22, 24, 26, 28, 30, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72, 80, 88, 96, 104, 112, 120, 128, 144, 160, 176, 192, 208, 224, 240, 256, 288, 320, 352 и 384, можно определить, что Z равно 176. Следует отметить, что в данном документе приведены только примеры, и примеры не являются ограничивающими.
b
b
В возможном варианте заполнение можно выполнить в информационной битовой последовательности для получения входной последовательности таким образом, чтобы длина входной последовательности была равна K=K∙Z, то есть Z=K/K. Например, значения заполняющих битов могут быть равны нулю (0) или могут принимать другие значения, согласованные в системе. После кодирования эти заполняющие биты идентифицируются и не отправляются, что не является ограничением в настоящей заявке.
Кодирование кодером входной последовательности с использованием матрицы H LDPC может представлять собой кодирование входной последовательности с использованием матрицы LDPC, соответствующей коэффициенту Z поднятия.
0
1
2
K-1
0
1
2
N-1
В возможной реализации входная последовательность имеет вид c={c, c, c, …, c}, длина входной последовательности c равна K, и выходная последовательность, полученная после кодирования кодером входной последовательности c, имеет вид d={d, d, d, …, d}. K является целым числом больше 0, и K может быть целым кратным коэффициенту Z поднятия.
0
1
2
N-K0-1
Выходная последовательность d включает в себя битов во входной последовательности c и биты четности в последовательности w четности, представляет собой целое число, которое больше 0 и меньше или равно K, длина последовательности w четности имеет вид , и w={ w, w, w, …, w}.
Последовательность w четности и входная последовательность c удовлетворяют формуле (1):
T
T
T
T
T
T
T
T
0
1
2
K-1
0
1
2
N-K0-1
где c=[c, c, c, …, c], c – транспонированный вектор вектора, включающего в себя биты во входной последовательности, w=[w, w, w, …, w], w – транспонированный вектор вектора, включающего в себя биты в последовательности четности, 0 является вектор-столбцом, и значения всех элементов 0 равны 0.
H представляет собой матрицу LDPC, полученную в соответствии с любым базовым графом, описанным в приведенных выше вариантах осуществления, и базовый граф H имеет m строк и n столбцов и может быть любым базовым графом, описанным в приведенных выше вариантах осуществления, например, базовым графом 30a, 80a, 170a, и базовым графом показанным на фиг.12.
0
0
0
В одном варианте базовый граф H включает в себя p столбцов встроенных проколотых битов, p является целым числом, большим или равным 0, информационные биты, соответствующие p столбцам встроенных проколотых битов, не выводятся, и выходная последовательность не включает в себя информационные биты, соответствующие p столбцам встроенных проколотых битов. В этом случае, K = K - p⋅Z. Например, если p=2, K = K - 2⋅Z, длина последовательности w четности равна N + 2⋅Z - K. Если p столбцов встроенных проколотых битов участвуют при кодировании, K = K, то длина последовательности w четности равна N - K.
Соответственно, H может иметь M строк и (N + p⋅Z) столбцов или M строк и N столбцов, и базовый граф H имеет M/Z строк и столбцов.
BG
BG, EXT
c
c
c
c
Базовый граф матрицы H LDPC может быть представлен в виде [H H], , представляет собой нулевую матрицу размером m×n и представляет собой матрицу идентификатора размером n×n.
c
c
BG
BG
В возможном варианте, если  является подматрицей C в базовом графе в приведенных выше вариантах осуществления, и  является подматрицей E в приведенных выше вариантах осуществления, где A, B и D являются, соответственно, подматрицей A, подматрицей B и подматрицей D в базовом графе в приведенных выше вариантах осуществления, m=5, 0≤n≤41, граф строки H меньше или равен 46 и больше или равен 5, и количество столбцов H равно 27.
c
c
BG
BG
BG
BG
В другом возможном варианте, так как столбец 26 является столбцом матрицы весом 1, и ненулевой элемент в столбце 26 расположен в строке 5,  может также включать в себя первые четыре строки в столбце 26 в базовом графе в приведенных выше вариантах осуществления и первые четыре строки в подматрице C в приведенных выше вариантах осуществления, и может также включать в себя подматрицу E в базовом графе в приведенных выше вариантах осуществления от строки 5 до строки 46 в столбце 26 и последнюю строку в подматрице C, где m=4, 0≤n≤42, H является матрицей, полученной путем удаления последнего столбца из части, включающей в себя подматрицу A, подматрицу B и подматрицу D в базовом графе в приведенных выше вариантах осуществления, граф строки H меньше или равен 46 и больше или равен 5, и количество столбцов H равно 26. При необходимости, если кодовая скорость должна быть дополнительно увеличена, H может иметь четыре строки: от строки 0 до строки 3.
1
2
Соответственно, матрица H LDPC может быть представлена в виде H = [HH].
1
BG
i, j
i, j
i, j
i, j
i, j
i, j
i, j
H можно получить после замены каждого нулевого элемент в H на нулевую матрицу размером Z*Z, и каждый ненулевой элемент заменяется на циркулярную матрицу hперестановок размером Z*Z. Циркулярная матрица hперестановок получается путем циклического сдвига матрицы идентификатора размером Z*Z вправо P раз, и иногда она представлена в виде I(P), где i - индекс строки, и j - индекс столбца. В возможном варианте P= mod(V, Z), и V является ненулевым элементом в строке i и столбце j в базовой матрице, соответствующей индексу набора коэффициентов поднятия, соответствующему Z.
2
BG, EXT
H может быть получен после замены каждого нулевого элемента в H на нулевую матрицу размером Z*Z, и каждый ненулевой элемент заменяется на матрицу идентификатора размером Z*Z.
Кодер может выполнять кодирование и вывод множеством способов. Любой из базового графа, показанного на фиг.12, базового графа 80a или базового графа 170a, описанного в вышеизложенном варианте осуществления, используется в качестве примера для последующего описания. Базовый граф имеет максимум 46 строк и максимум 68 столбцов и включает в себя два столбца встроенных проколотых битов. В настоящей заявке для простоты описания базовый граф, который имеет наибольшее количество столбцов и наибольшее количество столбцов, иногда упоминается как полный базовый граф.
Способ 1
Кодирование выполняется на основе полного базового графа таким образом, чтобы можно было получить как можно больше битов четности. В этом случае, m=46, и n=68, которые соответствуют строке 0 - строке 45 и столбцу 0 - столбцу 67 в любом из приведенных выше базовых графов.
Соответственно, M=46⋅Z для матрицы H LDPC. Если выходная последовательность включает в себя информационные биты, соответствующие столбцам встроенных проколотых битов, N=68⋅Z; или если выходная последовательность не включает в себя 2⋅Z информационные биты, соответствующие столбцам встроенных проколотых битов, N=66⋅Z.
Во время последующей обработки один или более информационных битов и один или более битов четности, которые должны быть отправлены, могут быть определены из выходной последовательности, выработанной кодером.
Способ 2
Кодирование выполняется на основе некоторых строк и некоторых столбцов в полном базовом графе. Строку и столбец можно выбрать на основе кодовой скорости, которая должна быть отправлена, или количества информационных битов и количества битов четности и т.п., из полного базового графа для кодирования.
Например, кодовая скорость равна 8/9, m=5, и n=27, то есть кодирование выполняется на основе строки 0 - строки 4 и столбца 0 - столбца 26 в любом из приведенных выше базовых графов.
Соответственно, M=5⋅Z для матрицы H LDPC. Если выходная последовательность включает в себя информационные биты, соответствующие столбцам встроенных проколотых битов, N=27⋅Z; или если выходная последовательность не включает в себя информационные биты, соответствующие столбцам встроенных проколотых битов, N=25⋅Z.
В другом примере кодовая скорость равна 1/3, m=46, и n=68.
Можно узнать, что в этом способе размер базового графа H удовлетворяют неравенствам 5 ≤ m ≤ 46 и 27 ≤ n ≤ 68 и, соответственно, для матрицы H LDPC неравенствам 5⋅Z ≤ M ≤ 46⋅Z и 27⋅Z ≤ N ≤ 68⋅Z.
В возможном варианте 26-й столбец в любом базовом графе, описанном выше, представляет собой столбец матрицы с весом 1, и прокалывание можно выполнить в отношении столбца матрицы с весом 1 в основной матрице, так что основная матрица уменьшается на одну строку и один столбец, соответственно, и m=4 и n=26, то есть кодирование выполняется на основе строки 0 - строки 3 и столбца 0 - столбца 25 в любом базовом графе, описанном выше. Используя этот способ, можно получить более высокую кодовую скорость. Поэтому размер базового графа удовлетворяет неравенствам 4 ≤ m ≤ 46 и 26 ≤ n ≤ 68 и, соответственно, для матрицы H LDPC неравенствам 4⋅Z ≤ M ≤ 46⋅Z и 26⋅Z ≤ N ≤ 68⋅Z.
B
B
B
B
В вышеизложенных реализациях базовая матрица H матрицы H LDPC может быть любой базовой матрицей, описанной в приведенных выше вариантах осуществления, или базовой матрицей, полученной путем выполнения перестановки строк, или перестановки столбцов или перестановки строк и перестановки столбцов в любой базовой матрице, описанной выше. Базовый граф базовой матрицы H включает в себя по меньшей мере подматрицу A и подматрицу B и может дополнительно включать в себя подматрицу C, подматрицу D и подматрицу E. Когда дело касается подматриц, следует обратиться к описанию приведенных выше вариантов осуществления, и в данном документе подробности повторно не описываются. Разумеется, базовая матрица H может быть другой базовой матрицей, чей базовый граф соответствует базовому графу, показанному в приведенных выше вариантах осуществления, и базовая матрица H не ограничивается этим в настоящей заявке.
B
В возможной реализации базовая матрица H кода LDPC может храниться в памяти, и кодер получает матрицу LDPC, соответствующую коэффициенту Z поднятия, чтобы кодировать входную последовательность.
B
B
В другой возможной реализации, так как имеется множество базовых матриц H кода LDPC, и занят относительно большой объем памяти, если базовые матрицы H сохраняются на основе структуры матрицы, базовый граф кода LDPC может храниться в памяти, значения сдвига ненулевых элементов в каждой базовой матрице могут храниться построчно или по столбцам, и затем матрица LDPC может быть получена на основе базового графа и значения сдвига в базовой матрице, соответствующего коэффициенту Z поднятия.
Базовый граф может указывать позицию ненулевого элемента в каждой базовой матрице. В другой возможной реализации сохранение базового графа может представлять собой сохранение позиции ненулевого элемента в базовом графе. Позиция ненулевого элемента может указываться строкой и столбцом, в котором расположен ненулевой элемент, например, позицией столбца, в котором находится ненулевой элемент в каждой строке, или позицией строки, в которой находится ненулевой элемент в каждом столбце. В другой возможной реализации сохранение базового графа может представлять собой сохранение позиции нулевого элемента в базовом графе. Аналогичным образом, позиция нулевого элемента может также указываться строкой и столбцом, в котором расположен нулевой элемент, например, позицией столбца, в котором находится нулевой элемент в каждой строке, или позицией строки, в которой находится нулевой элемент в каждом столбце, и соответствующая позиция ненулевого элемента может быть получена путем исключения позиции нулевого элемента. Следует отметить, что в данном документе представлены только примеры, и примеры не являются ограничивающими в настоящей заявке.
В соответствии с реализацией, параметры, относящиеся к базовому графу или базовой матрице, могут быть представлены в таблице. Например, связанные параметры или таблицы могут храниться в одном или более запоминающих устройствах. Связанные параметры, такие как индекс строки базового графа или базовой матрицы, или столбец, в котором расположен ненулевой элемент, считываются из памяти, чтобы получить базовый граф или базовую матрицу. При необходимости можно дополнительно сохранить вес каждой строки и значение сдвига ненулевого элемента в каждой строке.
Фиг.11a используется в качестве примера для последующего описания. Когда дело касается другого базового графа или базовой матрицы, представленной в настоящей заявке, следует обратиться к аналогичным вариантам.
Например, основную матрицу в базовом графе 80a, базовом графе 170a или базовом графе на фиг.12 можно представить в таблице 3.
Таблица 3
Индекс строки (row index)
Вес ряда (степень строки/вес строки)
Индексы столбцов ненулевых элементов в строке(позиция столбца ненулевых элементов в строке)
0
19
0, 1, 2, 3, 5, 6, 9, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 22, 23
1
19
0, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 16, 17, 19, 21, 22, 23, 24
2
19
0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 17, 18, 19, 20, 24, 25
3
19
0, 1, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 25
4
3
0, 1, 26
Например, базовый граф матрицы LDPC может включать в себя часть основной матрицы, показанной в таблице 3. Другая часть базового графа матрицы LDPC может быть показана в базовом графе 80a, базовом графе 170a, или базовом графе на фиг.12, или в другой структуре, описанной в настоящей заявке, или в другой матричной структуре, и в настоящей заявке этот пример не является ограничивающим.
Базовый граф 170a используется в качестве другого примера. Параметры, которые относятся к первым 24 строкам в базовом графе, представлены в таблице 4. Параметры, которые относятся к другим строкам, являются аналогичными и не представлены в таблице 4 из-за ее ограниченного пространства.
Таблица 4
Индекс строки
Вес строки
Индексы столбцов ненулевых элементов в строке
0
19
0, 1, 2, 3, 5, 6, 9, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 22, 23
1
19
0, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 16, 17, 19, 21, 22, 23, 24
2
19
0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 17, 18, 19, 20, 24, 25
3
19
0, 1, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 25
4
3
0, 1, 26
5
8
0, 1, 3, 12, 16, 21, 22, 27
6
9
0, 6, 10, 11, 13, 17, 18, 20, 28
7
7
0, 1, 4, 7, 8, 14, 29
8
10
0, 1, 3, 12, 16, 19, 21, 22, 24, 30
9
9
0, 1, 10, 11, 13, 17, 18, 20, 31
10
7
1, 2, 4, 7, 8, 14, 32
11
8
0, 1, 12, 16, 21, 22, 23, 33
12
7
0, 1, 10, 11, 13, 18, 34
13
6
0, 3, 7, 20, 23, 35
14
7
0, 12, 15, 16, 17, 21, 36
15
7
0, 1, 10, 13, 18, 25, 37
16
6
1, 3, 11, 20, 22, 38
17
6
0, 14, 16, 17, 21, 39
18
6
1, 12, 13, 18, 19, 40
19
6
0, 1, 7, 8, 10, 41
20
6
0, 3, 9, 11, 22, 42
21
6
1, 5, 16, 20, 21, 43
22
5
0, 12, 13, 17, 44
23
5
1, 2, 10, 18, 45
…
…
…
Следует отметить, что в данном документе представлены только примеры, и примеры не являются ограничивающими. Схожие параметры другого базового графа или базовой матрицы, выполненной в настоящей заявке, можно также представить в аналогичной таблице. Понятно, что базовый граф 170a, таблица 3 и таблица 4 предназначены для того, чтобы помочь понять построение базового графа и базовой матрицы. Форма представления не ограничивается только базовым графом 170a или формой представления в таблице 3 или таблице 4. Другое возможное изменение может быть внесено в данное построение.
В одной реализации можно использовать индекс столбца, вес столбца и строку, в которой расположен ненулевой элемент, или строку, в которой расположен нулевой элемент, например, в виде, представленном в таблице 5.
Таблица 5
Индекс столбца
Вес столбца
Индексы строк ненулевых элементов в столбце
0
5
0, 1, 2, 3, 4
1
4
0, 2, 3, 4,
2
3
0, 1, 2
3
3
0, 1, 3
4
3
1, 2, 3
5
3
0, 1, 2
6
3
0, 2, 3
7
3
1, 2, 3
8
3
1, 2, 3
9
3
0, 1, 2
10
3
0, 2, 3
11
3
0, 1, 3
12
3
0, 1, 3
13
3
0, 2, 3
14
3
1, 2, 3
15
3
0, 1, 2
16
3
0, 1, 3
17
3
1, 2, 3
18
3
0, 2, 3
19
3
0, 1, 2
20
3
0, 2, 3
21
3
0, 1, 3
22
3
0, 1, 3
23
2
0, 1
24
2
1, 2
25
1
2, 3
26
1
4
В одной реализации параметр "вес строки" или "вес столбца" в таблице 3, таблице 4 или таблице 5 может быть опущен. Количество ненулевых элементов в строке или столбце можно узнать из столбца или строки, в которой находится ненулевой элемент в строке или столбце. Таким образом, также узнается вес строки или вес столбца.
В одной реализации значения параметров в "индексах столбцов ненулевых элементов в строке" в таблице 3 или таблице 4 или значения параметров в "индексах строк ненулевых элементов в столбце" в таблице 5 могут не сортироваться по возрастанию при условии, что из значений параметров можно извлечь столбец, в котором находится ненулевой элемент, или строку, в которой находится ненулевой элемент.
В одной реализации таблица 3 или таблица 4 может дополнительно включать в себя столбец "значения сдвига ненулевых элементов", и значения параметров в столбце "значения сдвига ненулевых элементов" находятся во взаимно однозначном соответствии со значениями параметров в "индексах столбцов ненулевых элементов в строке". Таблица 5 может дополнительно включать в себя столбец "значения сдвига ненулевых элементов", и значения параметров в столбце "значения сдвига ненулевых элементов" находятся во взаимно однозначном соответствии со значениями параметра в "индексах строк ненулевых элементов в столбце".
В одном варианте для экономии объема памяти позицию ненулевого элемента в части с относительно фиксированной структурой в базовом графе можно вычислить на основе индекса строки или индекса столбца без сохранения позиции. Например, подматрица E является диагональной матрицей и включает в себя ненулевой(ые) элемент(ы) только на диагонали матрицы. Позицию столбца, в котором расположен ненулевой элемент в подматрице E, можно вычислить на основе индекса строки, или позицию строки, в которой расположен ненулевой элемент, можно вычислить на основе индекса столбца. В примере любого одного из: базового графа 80a, базового графа 170a или базового графа, показанного на фиг.12, индекс столбца ненулевого элемента в строке равен me+Kb, где me≥4, и Kb=22. Например, столбец, в котором расположен ненулевой элемент в строке 7, является столбцом 29. В другом примере бидиагональная структура B' в подматрице B расположена в строке 0 - строке 3 и столбце 23 - столбце 25 в любом одном из: базового графа 80a, базового графо 170a или базового графа, показанного на фиг.12. Индекс столбца, в котором расположен ненулевой элемент в бидиагональной структуре B', можно вычислить на основе индекса строки, или индекс строки, в которой расположен ненулевой элемент, можно вычислить на основе индекса столбца. Позиции ненулевых элементов в строке mB включают в себя столбец mB+Kb и столбец mB+Kb+1, где 0<mB<3. Позиция ненулевого элемента в строке mB является столбцом mB+Kb, где mB=0 или mB=3. В другом примере для столбца матрицы с весом 1 в подматрице B, то есть для столбца 26 в любом одном из: базового графа 80a, базового графа 170a или базового графа, показанного на фиг.12, позиция ненулевого элемента в строке mB представляет собой столбец mB+Kb, где mB=4.
BG
В таблице 6 представлены параметры, которые относятся к строкам, показанным на фиг.12. Позиции столбцов, в которых "не находятся нулевые элементы" в столбце 0 - столбце 25, могут быть сохранены, тогда как позиции столбцов, в которых "не находятся нулевые элементы" в столбце 26 - столбец 68, не сохраняются, то есть столбцы, в которых находятся ненулевые элементы в столбцах матрицы с весом 1 в подматрице E и подматрице B, не сохраняются. Таблицу 6 можно использовать для представления H, чей индекс столбца равен 26.
Таблица 6
Индекс строки
Вес строки
Индексы столбцов ненулевых элементов в строке
0
19
0, 1, 2, 3, 5, 6, 9, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 22, 23
1
19
0, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 16, 17, 19, 21, 22, 23, 24
2
19
0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 17, 18, 19, 20, 24, 25
3
19
0, 1, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 25
4
2
0, 1
5
7
0, 1, 3, 12, 16, 21, 22
6
8
0, 6, 10, 11, 13, 17, 18, 20
7
6
0, 1, 4, 7, 8, 14
8
9
0, 1, 3, 12, 16, 19, 21, 22, 24
9
8
0, 1, 10, 11, 13, 17, 18, 20
10
6
1, 2, 4, 7, 8, 14
11
7
0, 1, 12, 16, 21, 22, 23
12
6
0, 1, 10, 11, 13, 18
13
5
0, 3, 7, 20, 23
14
6
0, 12, 15, 16, 17, 21
15
6
0, 1, 10, 13, 18, 25
16
5
1, 3, 11, 20, 22
17
5
0, 14, 16, 17, 21
18
5
1, 12, 13, 18, 19
19
5
0, 1, 7, 8, 10
20
5
0, 3, 9, 11, 22
21
5
1, 5, 16, 20, 21
22
4
0, 12, 13, 17
23
4
1, 2, 10, 18
24
5
0, 3, 4, 11, 22
25
4
1, 6, 7, 14
26
4
0, 2, 4, 15
27
3
1, 6, 8
28
4
0, 4, 19, 21
29
4
1, 14, 18, 25
30
4
0, 10, 13, 24
31
4
1, 7, 22, 25
32
4
0, 12, 14, 24
33
4
1, 2, 11, 21
34
4
0, 7, 15, 17
35
4
1, 6, 12, 22
36
4
0, 14, 15, 18
37
3
1, 13, 23
38
4
0, 9, 10, 12
39
4
1, 3, 7, 19
40
3
0, 8, 17
41
4
1, 3, 9, 18
42
3
0, 4, 24
43
4
1, 16, 18, 25
44
4
0, 7, 9, 22
45
3
1, 6, 10
BG
В таблице 7 представлены параметры, которые относятся к строкам, показанным на фиг.12. Позиции столбцов, в которых "не находятся нулевые элементы" в столбце 0 - столбце 26, могут быть сохранены, тогда как позиции столбцов, в которых "не находятся нулевые элементы" в столбце 27 - столбце 68, не сохраняются, то есть столбцы, в которых "не находятся нулевые элементы" в подматрице E, не сохраняются. Таблицу 7 можно использовать для представления H, чей индекс столбца равен 27.
Таблица 7
Индекс строки
Вес строки
Индексы столбцов ненулевых элементов в строке
0
19
0, 1, 2, 3, 5, 6, 9, 10, 11, 12, 13, 15, 16, 18, 19, 20, 21, 22, 23
1
19
0, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 16, 17, 19, 21, 22, 23, 24
2
19
0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 17, 18, 19, 20, 24, 25
3
19
0, 1, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 18, 20, 21, 22, 25
4
3
0, 1, 26
5
7
0, 1, 3, 12, 16, 21, 22
6
8
0, 6, 10, 11, 13, 17, 18, 20
7
6
0, 1, 4, 7, 8, 14
8
9
0, 1, 3, 12, 16, 19, 21, 22, 24
9
8
0, 1, 10, 11, 13, 17, 18, 20
10
6
1, 2, 4, 7, 8, 14
11
7
0, 1, 12, 16, 21, 22, 23
12
6
0, 1, 10, 11, 13, 18
13
5
0, 3, 7, 20, 23
14
6
0, 12, 15, 16, 17, 21
15
6
0, 1, 10, 13, 18, 25
16
5
1, 3, 11, 20, 22
17
5
0, 14, 16, 17, 21
18
5
1, 12, 13, 18, 19
19
5
0, 1, 7, 8, 10
20
5
0, 3, 9, 11, 22
21
5
1, 5, 16, 20, 21
22
4
0, 12, 13, 17
23
4
1, 2, 10, 18
24
5
0, 3, 4, 11, 22
25
4
1, 6, 7, 14
26
4
0, 2, 4, 15
27
3
1, 6, 8
28
4
0, 4, 19, 21
29
4
1, 14, 18, 25
30
4
0, 10, 13, 24
31
4
1, 7, 22, 25
32
4
0, 12, 14, 24
33
4
1, 2, 11, 21
34
4
0, 7, 15, 17
35
4
1, 6, 12, 22
36
4
0, 14, 15, 18
37
3
1, 13, 23
38
4
0, 9, 10, 12
39
4
1, 3, 7, 19
40
3
0, 8, 17
41
4
1, 3, 9, 18
42
3
0, 4, 24
43
4
1, 16, 18, 25
44
4
0, 7, 9, 22
45
3
1, 6, 10
В приведенных выше вариантах столбец "Вес строки" является дополнительным. В возможном варианте 1 и 0 в каждой строке или в каждом столбце в базовом графе могут рассматриваться как двоичные числа, и хранение двоичных чисел в виде десятичных или шестнадцатеричных чисел может сэкономить объем памяти. Любой из приведенных выше базовых графов используется в качестве примера. Позиции ненулевых элементов в первых 26 столбцах или первых 27 столбцах могут храниться в виде четырех шестнадцатеричных цифр в каждой строке. Например, если первые 26 столбцов в строке 0 представляют собой 11110110 01111101 10111111 00, позиции ненулевых элементов в строке 0 могут быть обозначены как 0xF6, 0x7D, 0xBF и 0x00. Более конкретно, каждые восемь столбцов образуют одну шестнадцатеричную цифру. Последние два или три столбца можно заполнить нулями (0) для получения восьми цифр, таким образом, чтобы получилась соответствующая шестнадцатеричная цифра. То же самое справедливо для другой строки, и в данном документе подробности повторно не описываются.
B
i, j
i, j
B
i, j
i, j
i, j
i, j
B
Когда информационная битовая последовательность должна быть кодированной, базовая матрица H может быть поднята на основе Z для получения матрицы H LDPC, используемой для кодирования. Циркулярная матрица h перестановок размером Z*Z определяется для каждого ненулевого элемента P в базовой матрице H, где h является циркулярной матрицей перестановок, полученной путем циклического сдвига матрицы идентификатора P раз. Ненулевой элемент P заменяется на h, и нулевой элемент в базовой матрице H заменяется на нулевую матрицу размером Z*Z для того, чтобы получить матрицу H контроля четности.
i, j
B
В возможном варианте для коэффициента Z поднятия элемент P в строке i и столбце j в базовой матрице H может удовлетворять соотношению, показанному в выражении (2):
i, j
где V может иметь значение сдвига элемента в строке i и столбце j в базовой матрице из набора коэффициентов поднятия, который содержит коэффициент Z поднятия или значение сдвига ненулевого элемента в строке i и столбце j в базовой матрице, соответствующей максимальному коэффициенту поднятия в наборе коэффициентов поднятия, который содержит коэффициент Z поднятия.
i, j
Соответствие между индексом базовой матрицы и набором коэффициентов Z поднятия, которое показано в таблице 2, используется в качестве примера. Z=13, и элемент P в строке i и столбце j в базовой матрице Z удовлетворяет выражению (2).
i, j
i, j
i, j
V имеет значение сдвига ненулевого элемента в строке i и столбце j в базовой матрице, обозначенной PCM 7. Для Z=13 операция по модулю выполняется путем взятия модуля Z значения Vсдвига, где Z=13, и V имеет значение сдвига ненулевого элемента в строке i и столбце j в базовой матрице, обозначенной PCM 7.
Следует отметить, что в данном документе представлены только примеры, и в настоящей заявке примеры не являются ограничивающими.
B
core-dual
core-dual
Базовый граф 80a или базовый граф 170a используется в качестве примера. После определения базовой матрицы H один или более битов четности, соответствующих столбцу 22 - столбцу 25 в базовой матрице, можно сначала получить с использованием входной последовательности, и строки 0 - строки 3 и столбца 0 - столбца 25, то есть H, одного или более битов четности, соответствующих столбцу 26, то есть столбец матрицы с весом 1 можно получить на основе входной последовательности и одного или более битов четности, соответствующих H, и затем можно выполнить кодирование на основе входной последовательности, одного или более битов четности, соответствующих столбцу 22 - столбцу 26, и подматрицы D, чтобы получить один или более битов четности, соответствующих подматрице E. Таким образом, кодирование завершено. Когда дело касается процесса кодирования кода LDPC, следует обратиться к описанию вышеизложенных реализаций, и в данном документе его подробности повторно не описываются.
В системе связи код LDPC может быть получен после выполнения кодирования в приведенном выше способе. После того, как код LDPC получен, устройство связи может дополнительно выполнить одну или несколько из следующих операций: выполнение согласования скорости передачи кода LDPC; выполнение, на основе схемы перемежения, перемежения кода LDPC, полученного после согласования скорости передачи; модуляцию, на основе схемы модуляции, кода LDPC, полученного после перемежения, чтобы получить битовую последовательность X; или отправкау битовой последовательности X.
B
В способе декодирования, предусмотренном в другом варианте осуществления настоящей заявки, декодер декодирует входную последовательность с использованием матрицы LDPC. В приведенных выше примерах базовый граф матрицы LDPC может быть любым базовым графом, и в приведенных выше примерах базовая матрица H матрицы LDPC может быть любой базовой матрицей. Входная последовательность декодера может быть последовательностью мягких значений кода LDPC.
Способ дополнительно включает в себя: определение коэффициента Z поднятия. Устройство связи на приемной стороне может принимать сигнал, включающий в себя код LDPC, получать последовательность мягких значений кода LDPC в сигнале и определять соответствующий коэффициент Z поднятия.
Декодер декодирует входную последовательность с использованием матрицы H LDPC, что позволяет декодировать последовательность мягких значений кода LDPC с использованием матрицы H, соответствующей коэффициенту Z поднятия.
Так как декодирование является процессом, обратным процессу кодирования, для описания матрицы H LDPC и базового графа матрицы H LDPC следует обратиться к приведенному выше варианту осуществления кодирования. Декодирование можно выполнить на основе полного базового графа, или декодирование можно выполнить на основе некоторых строк или некоторых столбцов в полном базовом графе.
B
B
B
B
Базовая матрица H матрицы H LDPC может быть любой базовой матрицей, описанной в приведенных выше вариантах осуществления, или базовой матрицей, полученной путем выполнения перестановки строк, или перестановки столбцов или перестановки строк и перестановки столбцов в любой базовой матрице, описанной выше. Базовый граф базовой матрицы H включает в себя по меньшей мере подматрицу A и подматрицу B и может дополнительно включать в себя подматрицу C, подматрицу D и подматрицу E. Когда дело касается подматриц, следует обратиться к описанию приведенных выше вариантов осуществления, и в данном документе подробности повторно не описываются. Разумеется, базовая матрица H может быть другой базовой матрицей, чей базовый граф соответствует базовому графу, показанному в приведенных выше вариантах осуществления, и базовая матрица H не ограничивается этим в настоящей заявке.
B
В возможном варианте базовую матрицу H кода LDPC можно хранить в памяти, мягкие значения кода LDPC можно декодировать после получения матрицы LDPC, соответствующей коэффициенту Z поднятия.
В другой возможной реализации, так как имеется множество базовых матриц кода LDPC, и занят относительно большой объем памяти, если базовые матрицы хранятся на основе структуры матрицы, базовый граф кода LDPC может храниться в памяти, значения сдвига ненулевых элементов в каждой базовой матрице могут храниться построчно или по столбцам, и затем можно получить матрицу LDPC на основе базового графа и значения сдвига в базовой матрице, соответствующего коэффициенту Z поднятия.
Базовый граф может быть сохранен различными способами, описанными в приведенном выше варианте осуществления кодирования.
Следует отметить, что в данном документе приведены только примеры, и примеры не являются ограничивающими.
B
B
Декодирование является процессом, обратным процессу кодирования, и базовая матрица H, используемая во время декодирования, имеет такую же характеристику, как и базовая матрица в варианте осуществления способа кодирования. Для поднятия базовой матрицы H, чтобы получить матрицу H LDPC, следует также обратиться к варианту осуществления способа кодирования.
В системе связи перед выполнением способа декодирования устройство связи может дополнительно выполнить одну или несколько из следующих операций: прием сигнала, включающего в себя код LDPC; или демодуляция, деперемежение или отмена согласования скорости передачи сигнала, чтобы получить мягкие значения кода LDPC.
В возможной реализации можно хранить одно или более из следующего:
B
B
(a) параметр, используемый для получения любой базовой матрицы H, описанной в вышеизложенных реализациях, где базовая матрица H может быть получена на основе параметра; например, параметр может включать в себя одно или несколько из следующего: индекс строки, вес строки, индекс столбца или вес столбца базового графа и/или базовой матрицы, позиция ненулевого элемента в базовом графе и/или базовой матрице, значение сдвига в базовой матрице, значение сдвига ненулевого элемента и соответствующая позиция, значение компенсации, коэффициент поднятия, набор коэффициентов поднятия, базовый граф базовой матрицы или кодовая скорость;
B
(b) любая базовая матрица H, описанная в вышеизложенных реализациях;
B
(c) матрица, поднятая от базовой матрицы H;
B
(d) базовая матрица, полученная путем выполнения перестановки строк/столбцов в любой базовой матрице H, описанной в вышеизложенных реализациях, где перестановка строк/столбцов является перестановкой строк, или перестановкой столбцов, или перестановкой строк и перестановкой столбцов в настоящей заявке; или
(e) матрица, поднятая от базовой матрицы, полученной путем выполнения перестановки строк/столбцов.
В возможной реализации во время кодирования или декодирования входную последовательность можно кодировать или декодировать с использованием матрицы с низкой плотностью проверок на четность (LDPC) одним или несколькими из следующих способов:
B
B
B
получить базовую матрицу H на основе параметра, описанного ранее (a); и выполнить кодирование или декодирование на основе полученной базовой матрицы H; или выполнить перестановку строк/столбцов на основе полученной базовой матрицы H и выполнить кодирование или декодирование на основе базовой матрицы, полученной путем выполнения перестановки строк/столбцов, где кодирование или декодирование выполняется в данном документе на основе базовой матрицы, и при необходимости кодирование или декодирование может выполняться на основе поднятой матрицы базовой матрицы;
B
B
выполнить кодирование или декодирование на основе базовой матрицы, сохраненной в (b) или (d) (сохраненная базовая матрица H, или сохраненная базовая матрица, полученная путем выполнения перестановки строк/столбцов базовой матрицы H); или выполнить перестановку строк/столбцов в сохраненной базовой матрице и выполнить кодирование или декодирование на основе базовой матрицы, полученной путем выполнения перестановки строк/столбцов, где кодирование или декодирование выполняется в данном документе на основе базовой матрицы, и при необходимости кодирование или декодирование может выполняться на основе поднятой матрицы базовой матрицы; или
выполнить кодирование или декодирование на основании (c) или (e).
Поднятие в настоящей заявке позволяет получить поднятую матрицу после преобразования или обработки матрицы, и в настоящей заявке способ поднятия не ограничивается. В одной реализации поднятие позволяет выполнить процесс компенсации матрицы. Например, каждое значение сдвига, большее или равное 0 в базовой матрице, увеличивается или уменьшается на значение компенсации для получения скомпенсированной матрицы. В другой реализации поднятие может состоять в поднятии строки и столбца в матрице для получения поднятой матрицы. В другой реализации поднятие может быть преобразованием ненулевого значения в матрице.
В настоящей заявке хранение может представлять собой хранение в одном или более запоминающих устройствах. Одно или несколько запоминающих устройств могут быть расположены отдельно или могут быть интегрированы в кодер, декодер, процессор, микросхему, устройство связи или терминал. Некоторые из одного или нескольких запоминающих устройств могут быть расположены отдельно, а другие могут быть интегрированы в декодер, процессор, микросхему, устройство связи или терминал. Тип памяти может быть носителем информации любого вида, и в настоящей заявке ее тип не ограничивается.
На фиг.6 показана упрощенная структурная схема устройства 600 связи. Устройство 600 выполнено с возможностью выполнения способа, описанного в приведенном выше варианте осуществления способа (смотри описание приведенного выше варианта осуществления способа). Устройство 600 связи может быть микросхемой, базовой станцией, терминалом или другим сетевым устройством.
Устройство 600 связи включает в себя один или более процессоров 601. Процессор 601 может быть процессором общего назначения, специализированным процессором и т.п. Например, процессор 601 может быть основополосным процессором или центральным процессором. Основополосный процессор можно выполнить с возможностью выполнения обработки протокола связи и данных связи. Центральный процессор можно выполнить с возможностью управления устройством связи (таким как базовая станция, терминал или микросхема), исполнения программы и обработки данных программного обеспечения.
В возможном варианте устройство 600 связи включает в себя один или более процессоров 601. Один или более процессоров 601 могут выполнять функции вышеупомянутого кодера. В другом возможном варианте кодер может быть частью процессора 601, и процессор 601 может выполнять другие функции в дополнение к функциям кодера.
B
Устройство 600 связи кодирует входную последовательность с использованием матрицы LDPC. Базовый граф матрицы LDPC может быть любым базовым графом в приведенных выше примерах, или базовым графом, полученным путем выполнения перестановки строк, или перестановки столбцов или перестановки строк и перестановки столбцов в любом базовом графе, описанном выше. Базовая матрица H матрицы LDPC может быть любой базовой матрицей в приведенном выше варианте осуществления, или базовой матрицей, полученной путем выполнения перестановки строк, или перестановки столбцов или перестановки строк и перестановки столбцов в любой базовой матрице, описанной выше. Входная последовательность кодера может представлять собой информационную битовую последовательность.
В возможном варианте один или более процессоров 601 могут выполнять функции вышеупомянутого декодера. В другом возможном варианте декодер может быть частью процессора 601.
B
Устройство 600 связи выполнено с возможностью декодирования входной последовательности с использованием матрицы LDPC. Базовый граф матрицы LDPC может быть любым базовым графом в приведенных выше примерах, или базовым графом, полученным путем выполнения перестановки строк, или перестановки столбцов или перестановки строк и перестановки столбцов в любом базовом графе, описанном выше. Базовая матрица H матрицы LDPC может быть любой базовой матрицей в приведенных выше примерах, или базовой матрицей, полученной путем выполнения перестановки строк, или перестановки столбцов или перестановки строк и перестановки столбцов в любой базовой матрице, описанной выше. Входная последовательность декодера может представлять собой последовательность мягких значений.
При необходимости в одном варианте процессор 601 может также включать в себя инструкцию 603. Инструкция может выполняться в процессоре, предписывая устройству 600 связи выполнять способ, описанный в приведенном выше варианте осуществления способа.
В другом возможном варианте устройство 600 связи может также включать в себя схему, и схема может выполнять функции кодера и декодера или кодера и декодера в приведенном выше варианте осуществления способа.
При необходимости устройство 600 связи может включать в себя одно или более запоминающих устройств 602. Память хранит инструкцию 604, и инструкция может выполняться в процессоре, предписывая устройству 600 связи выполнять способ, описанный в приведенном выше варианте осуществления способа. При необходимости память может дополнительно хранить данные. При необходимости процессор может также хранить инструкцию и/или данные. Процессор и память могут располагаться по отдельности или могут быть выполнены как одно целое. При необходимости одно или более запоминающих устройств 602 могут хранить параметр, который относится к базовой матрице, например, значение сдвига, базовый граф, матрицу, поднятую от базового графа, строку в базовой матрице или коэффициент поднятия. При необходимости одно или более запоминающих устройств 602 могут хранить базовую матрицу или матрицу, поднятую от базовой матрицы.
При необходимости устройство 600 связи может дополнительно включать в себя приемопередатчик 605 и антенну 606. Процессор 601 может упоминаться как блок обработки и управляет устройством связи (терминалом или базовой станцией). Приемопередатчик 605 может упоминаться как блок приемопередатчика или схема приемопередатчика и выполнен с возможностью выполнения функции приемопередачи устройства связи с использованием антенны 606.
При необходимости устройство 600 связи может дополнительно включать в себя компонент, выполненный с возможностью выработки транспортного блока CRC, компонент, используемый для сегментации кодового блока и проверки CRC, перемежитель, используемый для перемежения, модулятор, используемый для процесса модуляции и т.п. Функции этих компонентов можно реализовать с помощью одного или более процессоров 601.
При необходимости устройство 600 связи может дополнительно включать в себя демодулятор, используемый для демодуляции, деперемежитель, используемый для деперемежения, компонент, используемый для отмены согласования скорости передачи и т.п. Функции этих компонентов можно реализовать с помощью одного или более процессоров 601.
На фиг.7 показано схематичное представление системы 700 связи. Система 700 связи включает в себя устройство 70 связи и устройство 71 связи. Устройство 70 связи и устройство 71 связи принимают информационные данные друг от друга и отправляют информационные данные друг другу. Устройство 70 связи и устройство 71 связи могут представлять собой устройство 600 связи, или устройство 70 связи и устройство 71 связи, каждое из которых включает в себя устройство 600 связи и принимает и отправляет информационные данные. Например, устройство 70 связи может быть терминалом, и соответственно, устройство 71 связи может быть базовой станцией. В другом примере устройство 70 связи является базовой станцией, и соответственно, устройство 71 связи может быть терминалом.
Специалисту в данной области техники будет также понятно, что различные иллюстративные логические блоки (иллюстративный логический блок) и этапы (этап), которые перечислены в вариантах осуществления настоящей заявки, могут быть реализованы с использованием электронных аппаратных средств, компьютерного программного обеспечения или их комбинации. Будут ли функции реализованы с использованием аппаратных средств или программного обеспечения, зависит от конкретных приложений и требований к проектированию всей системы. Специалист в данной области техники может использовать различные способы для реализации описанных функций для каждого конкретного приложения, но не следует считать, что реализация выходит за рамки вариантов осуществления настоящей заявки.
Различные иллюстративные логические блоки и схемы, описанные в вариантах осуществления настоящей заявки, могут реализовывать или управлять описанными функциями с использованием процессора общего назначения, процессора цифровых сигналов, специализированной интегральной схемы (ASIC), программируемой логической матрицы (FPGA) или другого программируемого логического устройства, дискретного логического элемента или транзисторной логики, дискретного компонента аппаратных средств или конфигуриации из любой их комбинации. Процессор общего назначения может быть микропроцессором. При необходимости процессор общего назначения может быть любым традиционным процессором, контроллером, микроконтроллером или машиной состояний. Процессор может быть реализован с помощью комбинации вычислительных устройств, таких как процессор цифровых сигналов и микропроцессор, множество микропроцессоров, один или более микропроцессоров с ядром процессора цифровых сигналов, или любой другой подобной конфигурации.
Этапы способов или алгоритмов, описанных в вариантах осуществления настоящей заявки, могут быть непосредственно встроены в аппаратные средства, команду, выполняемую процессором, или в их комбинацию. Память может быть памятью RAM, флэш-памятью, памятью ROM, памятью EPROM, памятью EEPROM, регистром, жестким диском, съемным магнитным диском, CD-ROM или носителем информации любого другого вида в данной области техники. Например, память может быть подключена к процессору, так что процессор может считывать информацию из памяти и записывать информацию в память. При необходимости память может быть интегрирована в процессор. Процессор и память могут быть расположены в ASIC, и ASIC может быть расположена в устройстве связи (таком как базовая станция или терминал). При необходимости процессор и память могут располагаться в разных компонентах устройства связи.
Используя описание вышеупомянутых реализаций, специалист в данной области техники может четко понимать, что настоящая заявка может быть реализована посредством аппаратных средств, программно-аппаратных средств или их комбинации. Когда настоящая заявка реализуется с помощью программного обеспечения, настоящая заявка может быть полностью или частично реализована в виде компьютерного программного продукта. Компьютерный программный продукт включает в себя одну или более компьютерных инструкций. Когда компьютерные инструкции загружаются и исполняются на компьютере, выполняются полностью или частично процедура или функции согласно вариантам осуществления настоящей заявки. Когда настоящее приложение реализуется с помощью программного обеспечения, вышеупомянутые функции могут быть сохранены на машиночитаемом носителе или переданы в виде одной или нескольких инструкций или кода на машиночитаемом носителе. Компьютер может быть компьютером общего назначения, специализированным компьютером, компьютерной сетью или другим программируемым устройством. Компьютерные инструкции могут храниться на машиночитаемом носителе информации или могут передаваться с одного машиночитаемого носителя на другой. Машиночитаемый носитель включает в себя компьютерный носитель информации и среду связи, где среда связи включает в себя любую среду, которая позволяет передавать компьютерную программу из одного места в другое. Носитель информации может быть любым подходящим носителем, доступным для компьютера. Ниже приведены, но без ограничения, следующие примеры. Машиночитаемый носитель может включать в себя ОЗУ, ПЗУ, ЭСППЗУ, CD-ROM, или другое запоминающее устройство на основе оптических дисков, или дисковый носитель информации, или другое магнитное запоминающее устройство, или любой другой носитель, который может переносить или хранить предполагаемый программный код в виде инструкции или структуры данных и может быть доступен с помощью компьютера. Кроме того, любое соединение может быть соответствующим образом определено как машиночитаемый носитель. Например, если программное обеспечение передается с веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля/электрического кабеля, витой пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасное излучение, радиоволны и микроволны, коаксиальный кабель, оптоволоконный кабель/электрический кабель, витая пара, DSL, или беспроводные технологии, такие как инфракрасное излучение, радиоволны и микроволны, включены в определение носителя, к которому они принадлежат. Например, магнитный диск (Disk) или оптический диск (disc), используемый в настоящей заявке, включает в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), дискету и диск Blu-ray, где на магнитный диск обычно копируют данные магнитным средством, а на оптический диск копируют данные лазерным средством. Вышеуказанная комбинация должна быть также включена в объем защиты машиночитаемого носителя.
В настоящей заявке, "/" означает и/или. Например, кодирование/декодирование означает кодирование, декодирование или кодирование и декодирование.
Таким образом, то, что описано выше, является просто вариантами осуществления технических решений настоящей заявки, но не предназначено для ограничения объема защиты настоящей заявки. Любая модификация, эквивалентная замена или улучшение, выполненное без отклонения от сущности настоящей заявки, должны подпадать под область защиты настоящей заявки.