Цитата(Cat-S @ Dec 6 2016, 21:34)

Добрый вечер!
Наверное, продублирую здесь, т.к. больше по теме ЦОС. Архивы читала, но ответа на свой вопрос так и не нашла.
-----------------------------------------
В стандарте ETSI EN 302 307 V1.2.1 (2009-08) в пункте 5.3.2 приведен метод генерации проверочной матрицы H, но отсутствует метод генерации порождающей матрицы G. Проверочная матрица с двойной диагональю, т.е. метод конструирования порождающей матрицы, приведенный во всех книжках:
H=[A I n-k ], G =[I k | A t ] не подходит. (I- единичная матрица)
Саму порождающую матрицу удалось вытащить из МАТLAB, но нужен именно способ генерации порождающей матрицы G.
Подскажите, пожалуйста, алгоритм или книги-статьи, в которых этот метод описан.
Есть один ответ, но он Вам скорее всего не понравится:
Генерирующую матрицу находят как решение уравнения G * transpose(H) = 0 (*)
DVB-S2 использует так называемый eIRA код, специально построенный так, чтобы процедура кодирования имела линейную сложность. Для них проверочная матрица разбивается на две части H = [H1 H2]
H2 имеет по две единицы на главной диагонали и при инверсии дает нижнюю треугольную, т.е. H2_inv = H2^-1 - нижняя треугольная
Пусть генерирующая матрица имеет вид G = [I P]. тогда для (*):
I*transpose(H1) + P *transpose(H2) = 0; + по модулю 2
Отсюда
P *transpose(H2) = transpose(H1)
P = transpose(H1) * inverse(transpose(H2))
Получаем: P = transpose(H1)*transpose(H2_inv);
transpose(H2_inv) - верхняя треугольная из единиц.
Читать про две половинки проверочной матрицы и какой вид они имеют в случае DVB-S2 можно например отсюда:
http://www.csee.wvu.edu/~mvalenti/documents/DVBChapter.pdf (стр 13)
Как конкретно формируется H1 для DVB-S2 кода я не знаю.
Про eIRA читать можно начать отсюда
https://www.josephboutros.org/ldpc_vs_turbo...n_li_TCOM04.pdfА вообще не очень понятно, зачем оно Вам - авторы стандарта дали вам эффективную процедуру кодирования с линейной сложностью, вместо нее Вы хотите поизучать нечто со сложностью O(n^2)