Tirend 0 5 января, 2016 Опубликовано 5 января, 2016 · Жалоба Всем привет. Пишу диплом. Нужна помощь следующего характера. Мой руководитель дал мне запись ЦИФРОВОГО ПОТОКА после демодуляции QPSK сигнала. Видна структура на периоде. Путем перебора удалось подобрать правильную фазу для устранения фазовой неоднозначности. Уровень сигнала при приеме 22 дБ - ошибок быть просто не должно! Теперь собственно вопрос - как получить проверочную или порождающую матрицу LDPC-кода из имеющегося потока? Я знаю, как определять параметры кодов Хэмминга - заполнить матрицу и получить диагональную. Это канает для всех блочных циклических кодов - для LDPC тоже? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grizzly 0 5 января, 2016 Опубликовано 5 января, 2016 · Жалоба Теперь собственно вопрос - как получить проверочную или порождающую матрицу LDPC-кода из имеющегося потока? То есть вам априори ничего неизвестно о коде? Например, его скорость, длина блока и т.д. Это задача слепой идентификации кода. Смотреть статьи по темам "Blind Identification of LDPC Codes", "Identification of LDPC Codes" и т.д. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tirend 0 6 января, 2016 Опубликовано 6 января, 2016 · Жалоба То есть вам априори ничего неизвестно о коде? Например, его скорость, длина блока и т.д. Это задача слепой идентификации кода. Смотреть статьи по темам "Blind Identification of LDPC Codes", "Identification of LDPC Codes" и т.д. Спасибо, что откликнулись! Совсем забыл про это написать! Скорость кода известна - 0.5. Длина кодового слова тоже известна, но так как у меня все данные в академии я не помню точно сколько - но длина блока известна. Соответственно мне надо написать декодер этого кода, а чтобы его написать надо получить матрицу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grizzly 0 6 января, 2016 Опубликовано 6 января, 2016 (изменено) · Жалоба Спасибо, что откликнулись! Совсем забыл про это написать! Скорость кода известна - 0.5. Длина кодового слова тоже известна, но так как у меня все данные в академии я не помню точно сколько - но длина блока известна. Так уже лучше, но все равно таких матриц может быть очень много. Задача идентификации, как вы понимаете, весьма непростая. Кстати, про фазу. У вас после демодуляции должен быть битовый поток - последовательность 0 и 1. Как вы могли подбирать фазу? В случае мягкой демодуляции на выходе последовательность LLR. Здесь тоже непонятно, как вы что-то делали с фазой. Изменено 6 января, 2016 пользователем Grizzzly Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serg76 0 6 января, 2016 Опубликовано 6 января, 2016 · Жалоба Кстати, про фазу. У вас после демодуляции должен быть битовый поток - последовательность 0 и 1. Как вы могли подбирать фазу? Наверное, по преамбуле Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andyp 10 6 января, 2016 Опубликовано 6 января, 2016 · Жалоба Теперь собственно вопрос - как получить проверочную или порождающую матрицу LDPC-кода из имеющегося потока? Вопрос не очень корректен по двум причинам: 1. Существует много линейных кодов, соответствующих одному и тому же набору кодовых слов (см. эквивалентные коды). Их порождающие матрицы могут быть получены линейными преобразованиями друг из друга. 2. В потоке может быть недостаточно кодовых слов, чтобы получить порождающую матрицу (на сколько я это представляю, должно быть как минимум n/2 линейно независимых кодовых слов в Вашем случае) Если 2 выполняется, то можно выписать кодовые слова в строки и с помощью линейных преобразований привести полученную матрицу к виду [i -P], I - единичная, размером n/2. Получите порождающую матрицу эквивалентного кода в стандартной форме. Ирония в том, что у LDPC в строках и столбцах должно быть не больше определенного количества единиц (ну или четко определенное количество, если код регулярный). Полученная матрица этому условию скорее всего удовлетворять не будет, так как про систематические LDPC коды что-то не слышно. Мало того, даже если и удастся найти матрицу, удовлетворяющую этому условию (для этого надо знать макcимальную связность (parity and chеck node degree)), то не факт, что найденный эквивалентный код соответствует исходному (он, например, может быть получен из исходного простой перестановкой строк порождающей матрицы). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 6 января, 2016 Опубликовано 6 января, 2016 · Жалоба Вопрос не очень корректен по двум причинам: 1. Существует много линейных кодов, соответствующих одному и тому же набору кодовых слов (см. эквивалентные коды). Их порождающие матрицы могут быть получены линейными преобразованиями друг из друга. 2. В потоке может быть недостаточно кодовых слов, чтобы получить порождающую матрицу (на сколько я это представляю, должно быть как минимум n/2 линейно независимых кодовых слов в Вашем случае) Если 2 выполняется, то можно выписать кодовые слова в строки и с помощью линейных преобразований привести полученную матрицу к виду [i -P], I - единичная, размером n/2. Получите порождающую матрицу эквивалентного кода в стандартной форме. Ирония в том, что у LDPC в строках и столбцах должно быть не больше определенного количества единиц (ну или четко определенное количество, если код регулярный). Полученная матрица этому условию скорее всего удовлетворять не будет, так как про систематические LDPC коды что-то не слышно. Мало того, даже если и удастся найти матрицу, удовлетворяющую этому условию (для этого надо знать макcимальную связность (parity and chеck node degree)), то не факт, что найденный эквивалентный код соответствует исходному (он, например, может быть получен из исходного простой перестановкой строк порождающей матрицы). на мой взгляд это не реально из потока софт LLR восстановить H матрицу, особенно для больших матриц (количество chack node более тысячи), к тому же irregular Честно не могу представить как это будет выглядеть, если H матрица изначальна не известна Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andyp 10 6 января, 2016 Опубликовано 6 января, 2016 · Жалоба на мой взгляд это не реально из потока софт LLR восстановить H матрицу, особенно для больших матриц (количество chack node более тысячи), к тому же irregular Честно не могу представить как это будет выглядеть, если H матрица изначальна не известна Ну так и я про это. ТСу хочется странного. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tirend 0 7 января, 2016 Опубликовано 7 января, 2016 · Жалоба Кстати, про фазу. У вас после демодуляции должен быть битовый поток - последовательность 0 и 1. Как вы могли подбирать фазу? В случае мягкой демодуляции на выходе последовательность LLR. Здесь тоже непонятно, как вы что-то делали с фазой. Сигнал записан простым спутниковым модемом, кажется CDM какой-то, на его выходе БИТОВЫЙ поток. Код оказался систематическим - явно можно отделить проверочную часть от информационной. Так как модуляция 4-х позиционная, то путем перебора удалось подобрать фазу путем проворота созвездия, отсюда же и удалось выяснить истинную преамбулу (уникальное слово). Конец повествованию. Вопрос не очень корректен по двум причинам: 1. Существует много линейных кодов, соответствующих одному и тому же набору кодовых слов (см. эквивалентные коды). Их порождающие матрицы могут быть получены линейными преобразованиями друг из друга. 2. В потоке может быть недостаточно кодовых слов, чтобы получить порождающую матрицу (на сколько я это представляю, должно быть как минимум n/2 линейно независимых кодовых слов в Вашем случае) Если 2 выполняется, то можно выписать кодовые слова в строки и с помощью линейных преобразований привести полученную матрицу к виду [i -P], I - единичная, размером n/2. Получите порождающую матрицу эквивалентного кода в стандартной форме. Ирония в том, что у LDPC в строках и столбцах должно быть не больше определенного количества единиц (ну или четко определенное количество, если код регулярный). Полученная матрица этому условию скорее всего удовлетворять не будет, так как про систематические LDPC коды что-то не слышно. Мало того, даже если и удастся найти матрицу, удовлетворяющую этому условию (для этого надо знать макcимальную связность (parity and chеck node degree)), то не факт, что найденный эквивалентный код соответствует исходному (он, например, может быть получен из исходного простой перестановкой строк порождающей матрицы). На практике нам давали записанный цифровой поток, который являл собой турбокод на базе компонентных кодов Хэмминга. К сожалению это было достаточно давно и параметры кода я не помню. Так вот что мы делали, коротко говоря мы выписали кодовые слова (не турбокода, а одного из кодов Хэмминга), зная длину кодового слова мы заполнили матрицу шириною, равной длине кодового слова и очень большой высоты. Затем складывая различные строки мы получили матрицу с диагональной информационной частью - это была порождающая матрица. Из нее мы получили порождающий полином и из него - проверочный. Подставив полученный полином в программу для декодирования - мы получили поток после декодирования. Поэтому я точно знаю, что параметры турбокода так можно определить и я даже подозреваю, что наш препод иногда делает работу для государства. Тем не менее, как он говорил - так он колонул не один код и сам писал декодеры для взломанных кодов. Почему же LDPC код так нельзя сделать? Получить матрицу с диагональной информационной частью можно или нельзя? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smoke_111 0 7 января, 2016 Опубликовано 7 января, 2016 (изменено) · Жалоба Проблема в том что даже если вы получите матрицу в систематическом виде, с учётом сигнал шум 22 db это наверно даже возможно, вы как приведёте проверочную матрицу к низкоплотностному виду? А используя проверочную матрицу в систематическом виде о декодирование ldpc кода говорить сложно, поскольку исходные свойства графа будут полностью разрушены. Турбо-коды и правда легко ломаются подобным образом. Наверно это как то можно сделать, но я навскидку не знаю, надо идти читать) Да ещё один нюанс, проверочные матрицы квазициклических ldpc, часто бывают с линейно зависимыми строками, то есть, появляется ещё одна неопределённость. Правда интересно, если сделаете это ссылками на инфу поделитесь, пожалуйста. Изменено 7 января, 2016 пользователем smoke_111 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Corner 0 8 января, 2016 Опубликовано 8 января, 2016 · Жалоба Как это бывает в России. Преподаватель вынес на диплом задачку уровня кандидата наук, если не доктора... Авось, ТС выплывет и чтото придумает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serg76 0 8 января, 2016 Опубликовано 8 января, 2016 (изменено) · Жалоба Как это бывает в России. Преподаватель вынес на диплом задачку уровня кандидата наук, если не доктора... А что в этом плохого, или лучше когда все темы из года в год повторяются и весь процесс написания диплома сводится к банальной распечатке предыдущих лет? Понятно, что уровень кандидатской на порядок выше дипломной работы, но никто, думаю, не будет требовать со студента невозможного, можно решить проблему частично и вдруг эти материалы затем лягут в основу будущей диссертации, чем черт не шутит. Другое дело, если руководитель какой-то свой шкурный интерес в этом преследует... Изменено 8 января, 2016 пользователем Serg76 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tirend 0 8 января, 2016 Опубликовано 8 января, 2016 · Жалоба Как это бывает в России. Преподаватель вынес на диплом задачку уровня кандидата наук, если не доктора... Авось, ТС выплывет и чтото придумает. Лучше помоги советом или просто направь в нужном направлении Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
smoke_111 0 10 января, 2016 Опубликовано 10 января, 2016 · Жалоба Это все данные для этой задачи? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FatRobot 3 10 января, 2016 Опубликовано 10 января, 2016 · Жалоба Если вопрос в дипломе именно в такой постановке, то всё, что требуется - это - указать метод - например, constrained brute force attack (простой перебор по ограниченному множеству) - приблизительно оценить ограничения - оценить, сколько времени потребуется на нахождение матрицы на современном уровне техники и при разумных затратах. Это будет исчерпывающим ответом на вопрос "как": указан метод получения результата, указаны ресурсы. Пишу диплом. Теперь собственно вопрос - как получить проверочную или порождающую матрицу LDPC-кода из имеющегося потока? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться