реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Матричный анализ кодов, Поиск параметров LDPC
Loona
сообщение Jan 5 2016, 06:22
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 15-12-15
Пользователь №: 89 693



Всем привет. Пишу диплом. Нужна помощь следующего характера. Мой руководитель дал мне запись ЦИФРОВОГО ПОТОКА после демодуляции QPSK сигнала. Видна структура на периоде. Путем перебора удалось подобрать правильную фазу для устранения фазовой неоднозначности. Уровень сигнала при приеме 22 дБ - ошибок быть просто не должно!

Теперь собственно вопрос - как получить проверочную или порождающую матрицу LDPC-кода из имеющегося потока?

Я знаю, как определять параметры кодов Хэмминга - заполнить матрицу и получить диагональную. Это канает для всех блочных циклических кодов - для LDPC тоже?
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение Jan 5 2016, 15:13
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 467
Регистрация: 22-02-13
Пользователь №: 75 748



Цитата(Loona @ Jan 5 2016, 09:22) *
Теперь собственно вопрос - как получить проверочную или порождающую матрицу LDPC-кода из имеющегося потока?


То есть вам априори ничего неизвестно о коде? Например, его скорость, длина блока и т.д. Это задача слепой идентификации кода. Смотреть статьи по темам "Blind Identification of LDPC Codes", "Identification of LDPC Codes" и т.д.
Go to the top of the page
 
+Quote Post
Loona
сообщение Jan 6 2016, 00:46
Сообщение #3





Группа: Новичок
Сообщений: 4
Регистрация: 15-12-15
Пользователь №: 89 693



Цитата(Grizzzly @ Jan 6 2016, 01:13) *
То есть вам априори ничего неизвестно о коде? Например, его скорость, длина блока и т.д. Это задача слепой идентификации кода. Смотреть статьи по темам "Blind Identification of LDPC Codes", "Identification of LDPC Codes" и т.д.

Спасибо, что откликнулись!
Совсем забыл про это написать! Скорость кода известна - 0.5. Длина кодового слова тоже известна, но так как у меня все данные в академии я не помню точно сколько - но длина блока известна.
Соответственно мне надо написать декодер этого кода, а чтобы его написать надо получить матрицу.
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение Jan 6 2016, 08:41
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 467
Регистрация: 22-02-13
Пользователь №: 75 748



Цитата(Loona @ Jan 6 2016, 03:46) *
Спасибо, что откликнулись!
Совсем забыл про это написать! Скорость кода известна - 0.5. Длина кодового слова тоже известна, но так как у меня все данные в академии я не помню точно сколько - но длина блока известна.


Так уже лучше, но все равно таких матриц может быть очень много. Задача идентификации, как вы понимаете, весьма непростая.

Кстати, про фазу. У вас после демодуляции должен быть битовый поток - последовательность 0 и 1. Как вы могли подбирать фазу?

В случае мягкой демодуляции на выходе последовательность LLR. Здесь тоже непонятно, как вы что-то делали с фазой.

Сообщение отредактировал Grizzzly - Jan 6 2016, 10:30
Go to the top of the page
 
+Quote Post
Serg76
сообщение Jan 6 2016, 10:39
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 029
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(Grizzzly @ Jan 6 2016, 11:41) *
Кстати, про фазу. У вас после демодуляции должен быть битовый поток - последовательность 0 и 1. Как вы могли подбирать фазу?

Наверное, по преамбуле
Go to the top of the page
 
+Quote Post
andyp
сообщение Jan 6 2016, 11:17
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 425
Регистрация: 23-07-08
Пользователь №: 39 163



Цитата(Loona @ Jan 5 2016, 09:22) *
Теперь собственно вопрос - как получить проверочную или порождающую матрицу LDPC-кода из имеющегося потока?


Вопрос не очень корректен по двум причинам:
1. Существует много линейных кодов, соответствующих одному и тому же набору кодовых слов (см. эквивалентные коды). Их порождающие матрицы могут быть получены линейными преобразованиями друг из друга.
2. В потоке может быть недостаточно кодовых слов, чтобы получить порождающую матрицу (на сколько я это представляю, должно быть как минимум n/2 линейно независимых кодовых слов в Вашем случае)

Если 2 выполняется, то можно выписать кодовые слова в строки и с помощью линейных преобразований привести полученную матрицу к виду [I -P], I - единичная, размером n/2. Получите порождающую матрицу эквивалентного кода в стандартной форме. Ирония в том, что у LDPC в строках и столбцах должно быть не больше определенного количества единиц (ну или четко определенное количество, если код регулярный). Полученная матрица этому условию скорее всего удовлетворять не будет, так как про систематические LDPC коды что-то не слышно. Мало того, даже если и удастся найти матрицу, удовлетворяющую этому условию (для этого надо знать макcимальную связность (parity and chеck node degree)), то не факт, что найденный эквивалентный код соответствует исходному (он, например, может быть получен из исходного простой перестановкой строк порождающей матрицы).
Go to the top of the page
 
+Quote Post
Maverick
сообщение Jan 6 2016, 13:06
Сообщение #7


я только учусь...
******

Группа: Модераторы
Сообщений: 3 394
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(andyp @ Jan 6 2016, 13:17) *
Вопрос не очень корректен по двум причинам:
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 матрица изначальна не известна


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
andyp
сообщение Jan 6 2016, 13:31
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 425
Регистрация: 23-07-08
Пользователь №: 39 163



Цитата(Maverick @ Jan 6 2016, 16:06) *
на мой взгляд это не реально из потока софт LLR восстановить H матрицу, особенно для больших матриц (количество chack node более тысячи), к тому же irregular
Честно не могу представить как это будет выглядеть, если H матрица изначальна не известна


Ну так и я про это. ТСу хочется странного.
Go to the top of the page
 
+Quote Post
Loona
сообщение Jan 7 2016, 09:12
Сообщение #9





Группа: Новичок
Сообщений: 4
Регистрация: 15-12-15
Пользователь №: 89 693



Цитата(Grizzzly @ Jan 6 2016, 18:41) *
Кстати, про фазу. У вас после демодуляции должен быть битовый поток - последовательность 0 и 1. Как вы могли подбирать фазу?

В случае мягкой демодуляции на выходе последовательность LLR. Здесь тоже непонятно, как вы что-то делали с фазой.

Сигнал записан простым спутниковым модемом, кажется CDM какой-то, на его выходе БИТОВЫЙ поток. Код оказался систематическим - явно можно отделить проверочную часть от информационной. Так как модуляция 4-х позиционная, то путем перебора удалось подобрать фазу путем проворота созвездия, отсюда же и удалось выяснить истинную преамбулу (уникальное слово). Конец повествованию.

Цитата(andyp @ Jan 6 2016, 21:17) *
Вопрос не очень корректен по двум причинам:
1. Существует много линейных кодов, соответствующих одному и тому же набору кодовых слов (см. эквивалентные коды). Их порождающие матрицы могут быть получены линейными преобразованиями друг из друга.
2. В потоке может быть недостаточно кодовых слов, чтобы получить порождающую матрицу (на сколько я это представляю, должно быть как минимум n/2 линейно независимых кодовых слов в Вашем случае)

Если 2 выполняется, то можно выписать кодовые слова в строки и с помощью линейных преобразований привести полученную матрицу к виду [I -P], I - единичная, размером n/2. Получите порождающую матрицу эквивалентного кода в стандартной форме. Ирония в том, что у LDPC в строках и столбцах должно быть не больше определенного количества единиц (ну или четко определенное количество, если код регулярный). Полученная матрица этому условию скорее всего удовлетворять не будет, так как про систематические LDPC коды что-то не слышно. Мало того, даже если и удастся найти матрицу, удовлетворяющую этому условию (для этого надо знать макcимальную связность (parity and chеck node degree)), то не факт, что найденный эквивалентный код соответствует исходному (он, например, может быть получен из исходного простой перестановкой строк порождающей матрицы).

На практике нам давали записанный цифровой поток, который являл собой турбокод на базе компонентных кодов Хэмминга. К сожалению это было достаточно давно и параметры кода я не помню. Так вот что мы делали, коротко говоря мы выписали кодовые слова (не турбокода, а одного из кодов Хэмминга), зная длину кодового слова мы заполнили матрицу шириною, равной длине кодового слова и очень большой высоты. Затем складывая различные строки мы получили матрицу с диагональной информационной частью - это была порождающая матрица. Из нее мы получили порождающий полином и из него - проверочный. Подставив полученный полином в программу для декодирования - мы получили поток после декодирования.
Поэтому я точно знаю, что параметры турбокода так можно определить и я даже подозреваю, что наш препод иногда делает работу для государства. Тем не менее, как он говорил - так он колонул не один код и сам писал декодеры для взломанных кодов.
Почему же LDPC код так нельзя сделать? Получить матрицу с диагональной информационной частью можно или нельзя?
Go to the top of the page
 
+Quote Post
smoke_111
сообщение Jan 7 2016, 10:43
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 9-09-10
Из: москва
Пользователь №: 59 392



Проблема в том что даже если вы получите матрицу в систематическом виде, с учётом сигнал шум 22 db это наверно даже возможно, вы как приведёте проверочную матрицу к низкоплотностному виду? А используя проверочную матрицу в систематическом виде о декодирование ldpc кода говорить сложно, поскольку исходные свойства графа будут полностью разрушены. Турбо-коды и правда легко ломаются подобным образом. Наверно это как то можно сделать, но я навскидку не знаю, надо идти читать)
Да ещё один нюанс, проверочные матрицы квазициклических ldpc, часто бывают с линейно зависимыми строками, то есть, появляется ещё одна неопределённость. Правда интересно, если сделаете это ссылками на инфу поделитесь, пожалуйста.

Сообщение отредактировал smoke_111 - Jan 7 2016, 10:48
Go to the top of the page
 
+Quote Post
Corner
сообщение Jan 8 2016, 06:51
Сообщение #11


Профессионал
*****

Группа: Участник
Сообщений: 1 057
Регистрация: 11-12-12
Пользователь №: 74 815



Как это бывает в России. Преподаватель вынес на диплом задачку уровня кандидата наук, если не доктора... Авось, ТС выплывет и чтото придумает.
Go to the top of the page
 
+Quote Post
Serg76
сообщение Jan 8 2016, 08:21
Сообщение #12


Профессионал
*****

Группа: Участник
Сообщений: 1 029
Регистрация: 4-04-07
Пользователь №: 26 775



Цитата(Corner @ Jan 8 2016, 10:51) *
Как это бывает в России. Преподаватель вынес на диплом задачку уровня кандидата наук, если не доктора...

А что в этом плохого, или лучше когда все темы из года в год повторяются и весь процесс написания диплома сводится к банальной распечатке предыдущих лет? Понятно, что уровень кандидатской на порядок выше дипломной работы, но никто, думаю, не будет требовать со студента невозможного, можно решить проблему частично и вдруг эти материалы затем лягут в основу будущей диссертации, чем черт не шутит. Другое дело, если руководитель какой-то свой шкурный интерес в этом преследует...

Сообщение отредактировал Serg76 - Jan 8 2016, 08:51
Go to the top of the page
 
+Quote Post
Loona
сообщение Jan 8 2016, 09:12
Сообщение #13





Группа: Новичок
Сообщений: 4
Регистрация: 15-12-15
Пользователь №: 89 693



Цитата(Corner @ Jan 8 2016, 16:51) *
Как это бывает в России. Преподаватель вынес на диплом задачку уровня кандидата наук, если не доктора... Авось, ТС выплывет и чтото придумает.

Лучше помоги советом или просто направь в нужном направлении
Go to the top of the page
 
+Quote Post
smoke_111
сообщение Jan 10 2016, 10:03
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 9-09-10
Из: москва
Пользователь №: 59 392



Это все данные для этой задачи?
Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Jan 10 2016, 11:32
Сообщение #15


ʕʘ̅͜ʘ̅ʔ
****

Группа: Свой
Сообщений: 972
Регистрация: 3-05-05
Пользователь №: 4 691



Если вопрос в дипломе именно в такой постановке, то всё, что требуется - это
- указать метод - например, constrained brute force attack (простой перебор по ограниченному множеству)
- приблизительно оценить ограничения
- оценить, сколько времени потребуется на нахождение матрицы на современном уровне техники и при разумных затратах.

Это будет исчерпывающим ответом на вопрос "как": указан метод получения результата, указаны ресурсы.

Цитата(Loona @ Jan 5 2016, 10:22) *
Пишу диплом.

Теперь собственно вопрос - как получить проверочную или порождающую матрицу LDPC-кода из имеющегося потока?
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd November 2017 - 11:13
Рейтинг@Mail.ru


Страница сгенерированна за 0.25166 секунд с 7
ELECTRONIX ©2004-2016