|
Декодирование FLDPC |
|
|
|
Feb 4 2016, 08:09
|
Участник

Группа: Участник
Сообщений: 47
Регистрация: 4-02-16
Пользователь №: 90 332

|
Здравствуйте, пытаюсь построить универсальный декодер fldpc кодов. Имеются разные значения длины кодовых слов и относительных скоростей. Написал декодер для длины кода 256 и скорости 1/2 (min-sum). Возникла проблема приведения сигнала 2/3 к скорости 1/2 - то есть вставке выколотых символов. Это нужно для того, чтобы декодировать одной матрицей независимо от скорости. Есть ли вообще возможность проведения такой процедуры?
|
|
|
|
|
Feb 5 2016, 19:15
|
Группа: Участник
Сообщений: 11
Регистрация: 13-11-11
Пользователь №: 68 288

|
Цитата(maratz @ Feb 4 2016, 11:09)  Возникла проблема приведения сигнала 2/3 к скорости 1/2 - то есть вставке выколотых символов. Это нужно для того, чтобы декодировать одной матрицей независимо от скорости. Есть ли вообще возможность проведения такой процедуры? Вопрос интересный. Укажите ссылку на литературу по LDPC или как Вы написали FLDPC - где это указано, хоть косвенно. И что Вы имеете ввиду написав FLDPC ?
|
|
|
|
|
Feb 6 2016, 15:20
|
Группа: Участник
Сообщений: 11
Регистрация: 13-11-11
Пользователь №: 68 288

|
Цитата(maratz @ Feb 6 2016, 13:14)  Я имел ввиду перфорировании матриц. В указанной Вами статье об этом ничего нет. Думал может Вы где в патентах встречали ?
|
|
|
|
|
Feb 8 2016, 11:19
|
Участник

Группа: Участник
Сообщений: 47
Регистрация: 4-02-16
Пользователь №: 90 332

|
Имеются в виду турбоподобные коды - то есть RA(repeat accumulate) коды. В статье "New class of turbo-like codes with universally good performance and high-speed decoding" говорится, что можно их декодировать и как LDPC-коды, и как систематические турбокоды, и что кодер работает как турбокодер. Также эти коды упомянуты в 802.16-2012.
Реализация MSA на ПЛИС фактически сводится к описанию матрицы, поэтому под каждую вариацию блок/скорость писать не вариант. Вопрос стоит в следующем: существует ли вообще возможность вставить выколотые биты для декодирования всех скоростей канонической матрицей 1/2?
PS. Я б прикрепил статью, но она весит 6.5 метров, если что - пишите письма.
|
|
|
|
|
Feb 8 2016, 14:44
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(maratz @ Feb 8 2016, 18:19)  Также эти коды упомянуты в 802.16-2012. Там есть CC, CTC, LDPC и BTC коды на основе кодов хэмминга? Вы последние имеете в виду ? Цитата Реализация MSA на ПЛИС фактически сводится к описанию матрицы, поэтому под каждую вариацию блок/скорость писать не вариант. Вопрос стоит в следующем: существует ли вообще возможность вставить выколотые биты для декодирования всех скоростей канонической матрицей 1/2? Нулевые метрики на места этих битов поставить нельзя ? Цитата PS. Я б прикрепил статью, но она весит 6.5 метров, если что - пишите письма. Вы новичок, поэтому у вас личка еще не работает. Если не сложно зашлите на shdv собака micran точка ру. Спасибо
--------------------
|
|
|
|
|
Feb 8 2016, 15:50
|
Участник

Группа: Участник
Сообщений: 47
Регистрация: 4-02-16
Пользователь №: 90 332

|
В стандарте страница 1286 (LDPC опционально). Очень похожи матрицы - наличие сдвоенной единичной диагонали.
Нет, выколотые символы не получается восстановить путём заполнения предполагаемых мест нулевыми метриками, проверки не сходятся после первой итерации. Сейчас моделирую турбокодек в Матлабе и, судя по всему, такой процедуры восстановления, о которой я говорю, нет. Буду рад, если кто-то опровергнет. Статью скинул на почту.
|
|
|
|
|
Feb 8 2016, 16:36
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(maratz @ Feb 8 2016, 23:50)  В стандарте страница 1286 (LDPC опционально). Очень похожи матрицы - наличие сдвоенной единичной диагонали. Хмм, ваймаксовский LDPC кодер, насколько знаю меняет скорость подменой матрицы, а не выкалыванием проверочных бит. Цитата Нет, выколотые символы не получается восстановить путём заполнения предполагаемых мест нулевыми метриками, проверки не сходятся после первой итерации. Сейчас моделирую турбокодек в Матлабе и, судя по всему, такой процедуры восстановления, о которой я говорю, нет. Буду рад, если кто-то опровергнет. Статью скинул на почту. Если я правильно понял статью, то в декодере должен меняться на лету интерливер и блок вычисления SPC, никаких вставок делать не надо.
--------------------
|
|
|
|
|
Feb 9 2016, 15:18
|
Участник

Группа: Участник
Сообщений: 47
Регистрация: 4-02-16
Пользователь №: 90 332

|
Можно ли где-нибудь найти законы перемежения для TW F-LDPC?
|
|
|
|
|
Feb 9 2016, 15:35
|
Частый гость
 
Группа: Участник
Сообщений: 90
Регистрация: 11-09-11
Пользователь №: 67 121

|
Цитата(maratz @ Feb 8 2016, 14:19)  Имеются в виду турбоподобные коды - то есть RA(repeat accumulate) коды. В статье "New class of turbo-like codes with universally good performance and high-speed decoding" говорится, что можно их декодировать и как LDPC-коды, и как систематические турбокоды, и что кодер работает как турбокодер. Также эти коды упомянуты в 802.16-2012.
Реализация MSA на ПЛИС фактически сводится к описанию матрицы, поэтому под каждую вариацию блок/скорость писать не вариант. Вопрос стоит в следующем: существует ли вообще возможность вставить выколотые биты для декодирования всех скоростей канонической матрицей 1/2? Там случайно проверочная матрица не для 4/5 самая большая, включает H(2/3), а та содержит H(1/2) как в ccsds LDPC кодеках? Но там не все комбинации скоростей (1/2 - 4/5) и размеров подматриц (128 - 8192) проверочной матрицы используются.
|
|
|
|
|
Feb 10 2016, 12:51
|
Участник

Группа: Участник
Сообщений: 47
Регистрация: 4-02-16
Пользователь №: 90 332

|
Не, там матрицы там другие.
Есть ли у кого-нибудь типичные законы перемежения? Я нашел один, потестил, но он не подходит. Есть основания полагать, что разработчики fldpc не стали выдумывать велосипед, а взяли уже готовый перемежитель,а они для турбокодов все однотипные вроде.
Вот этот не подошёл: for i = 1:N if mod(i, 4) == 0 p(i) = 0; elseif mod(i, 4) == 1 p(i) = N/2 + p1; elseif mod(i, 4) == 2 p(i) = p2; elseif mod(i, 4) == 3 p(i) = N/2 + p3; end end
for i = 1:N int_coef(i) = (mod((p0*i + p(i) + 1), N)+1); end
Сообщение отредактировал maratz - Feb 10 2016, 12:52
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|