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

 
 
> Вопросы по итеративному декодированию, Реализация CTC/BTC/LDPC кодов
des00
сообщение Dec 24 2014, 14:00
Сообщение #201


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Добрый день!

Наконец то появилось время подтянуть себя в вопросах реализации кодов с вероятностным декодированием. Первая задача реализация DVB-RCS/WiMAX CTC кодера на ПЛИС, часть проекта будет выложен в опенсорс. Решил создать отдельную тему для обсуждения вопросов по реализации

После штудирования литературы и примеров сорцов в сети возникла часть вопросов, на которые не хватает ума/настойчивости найти ответы:
1. Для DVB-RCS оговорены выкалывания под скорости кодирования 1/3, 2/5, 1/2, 2/3, 3/4, 4/5, 6/7. Почему не определены скорости 5/6 (удивляет "дырка" между скоростями 4/5 и 6/7) и 7/8? При этому матрица выкалывания под эти скорости возможна.
2. Полиномы RCS для Wimax и DVB одинаковые, но перемежители разные. Это сделано по политическим причинам или это результат "улучшения" характеристик декодера в процессе разработки стандарта?
3. В сверточных бинарных кодах, свойство tail-bitting используется при декодировании: В одной доке нашел что дополняют принятую последовательность вначале и в конце, затем декодируют по витерби и выкусывают нужное. В примере матлаба вообще составляют два фрейма, декодируют один за другим, потом из двух декодированных собирают один результат. Никакого намека на похожие операции в доках на турбокоды не нашел. Почему в алгоритмах SOVA/MAP/... для турбокодов это не делается?
4. По tail-bitting нашел в доках только то, что особым образом инициализируются рекурсия прямой и обратной метрики на первой итерации, а на всех остальных значения между итерациями сохраняются. Но
в сорцах от CML цикл по итерациям выглядит так :
Код
for it = 1:max_iterations
    inx1 = X + inner_extr;
    [outx1, outz1]=DuobinaryCRSCDecode( inx1, inz1, poly, decoder_type);
    
    llrx1 = outx1 - inner_extr;
    inx2(1:3*N) = llrx1( code_interleaver_GF4);
    [outx2, outz2, out_info]=DuobinaryCRSCDecode( inx2, inz2, poly, decoder_type);
    detected_data(code_interleaver.info_intl) = (out_info>0)+0;
    errors(it)= sum( sum(abs(detected_data - data)));
    if (errors(it) == 0)
        break;
    else
        inner_extr(code_interleaver_GF4) = outx2 - inx2;
    end
end

Т.е. видно что последовательные вызовы функции DuobinaryCRSCDecode между собой не обмениваются этой информацией. А в самих функциях
Код
    // initialization  for CRSC code
    for (i =0; i< max_states; i++)
    {
        alpha[i][0] = 0;
        beta[i][len] = 0;
    }

Т.е. не используется даже свойство одинакового начального состояния. Более того, в алгоритмах с оконным расчетом обратной рекурсии тоже забивают на свойство tail-bitting. Так насколько это важно и почему во всех доках настойчиво пишут кодировать данные 2 раза для определения состояния инициализации?
5. В алгоритмах, наследованных от Log-MAP метрика ветки считается как сумма корреляций метрик приемных битов с выходными битами решетки : gamma(Sk-1, S) = Lapri + (ys0*xs0 + ys1*xs1 + yp0*xp0 + yp1*xp1). При этом предполагается что y - надежность принятого символа , x = -1/1 выходной(переданный) бит. В сорцах от CML это место выглядит так :
Код
    int m_input = 2;  // 2 input bits,
    int max_states = 8; // total state numbers
    int M_input = 1<<m_input;
    int i, j, max_trellis = M_input * max_states;
.......
        for (j = 0; j< max_trellis; j++)
        {
            temp_input = j%M_input;
            temp_output = trellis_out[j];
            gamma[j] = ( temp_input ==0)? 0: inx[ (temp_input -1)+ i*llr_height ];   //llr for systematic symbol
            gamma[j] += ( temp_output ==0)? 0: inz[ (temp_output -1)+ i*llr_height ];  //llr for parity symbol
        }

Насколько я понимаю Си gamma[j] = ( temp_input ==0)? 0: inx[ (temp_input -1)+ i*llr_height ] - берет надежности символов кроме нулевого. Диапазон изменения temp_input = 0..3 или в битах 00/01/10/11. Вот этот момент мне совсем не понятен.

Пока всё sm.gif Прошу помощи тех кто в теме.


--------------------
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- des00   Вопросы по итеративному декодированию   Dec 24 2014, 14:00
- - des00   Никто не находил/вычислял таблицы полиномов битов ...   Jun 24 2016, 10:15
- - maratz   По FLEX известно, что интерливер строится на основ...   Jun 25 2016, 09:13
|- - des00   Цитата(maratz @ Jun 25 2016, 16:13) По FL...   Jun 25 2016, 17:11
- - maratz   Патент описывает некий турбоподобный код с хорошей...   Jun 27 2016, 06:26
|- - des00   Раскурил патент по запчастям Цитата(maratz @ ...   Jun 27 2016, 10:49
|- - andyp   Цитата(des00 @ Jun 27 2016, 13:49) Изучая...   Jun 27 2016, 11:13
|- - des00   Цитата(andyp @ Jun 27 2016, 18:13) http:/...   Jun 27 2016, 11:17
- - maratz   В статье A_New_Class_of_Turbo_like_Codes_with_Uni...   Jun 29 2016, 06:56
- - des00   Покурил немного тему про TPC. Созрел глупый вопрос...   Jun 29 2016, 08:03
|- - maratz   Цитата(des00 @ Jun 29 2016, 12:03) Вы про...   Jun 29 2016, 08:17
|- - Maverick   Цитата(des00 @ Jun 29 2016, 11:03) Покури...   Jun 29 2016, 08:26
||- - des00   Цитата(Maverick @ Jun 29 2016, 15:26) мож...   Jun 29 2016, 09:40
|- - andyp   Цитата(des00 @ Jun 29 2016, 11:03) Покури...   Jun 29 2016, 08:32
- - des00   Туплю. В приложении алгоритм SISO декодера для код...   Jun 30 2016, 04:50
|- - des00   Цитата(des00 @ Jun 30 2016, 11:50) Не мог...   Jun 30 2016, 07:08
- - maratz   В книге, автором которой является автор статьи (и,...   Jun 30 2016, 08:01
|- - des00   Цитата(maratz @ Jun 30 2016, 15:01) И, кс...   Jun 30 2016, 09:30
|- - maratz   Цитата(des00 @ Jun 30 2016, 13:30) 1. Код...   Jun 30 2016, 10:40
|- - des00   Цитата(maratz @ Jun 30 2016, 17:40) Не со...   Jun 30 2016, 10:47
|- - maratz   Цитата(des00 @ Jun 30 2016, 14:47) В случ...   Jun 30 2016, 10:54
|- - des00   Цитата(maratz @ Jun 30 2016, 17:54) А вот...   Jun 30 2016, 11:02
|- - maratz   Цитата(des00 @ Jun 30 2016, 15:02) Сам пр...   Jun 30 2016, 11:20
|- - des00   Цитата(maratz @ Jun 30 2016, 18:20) Так н...   Jun 30 2016, 15:34
|- - maratz   Цитата(des00 @ Jun 30 2016, 19:34) Тут не...   Jun 30 2016, 15:55
|- - des00   Цитата(maratz @ Jun 30 2016, 22:55) Ну ка...   Jul 1 2016, 03:02
- - des00   Сделал F-LDPC кодек в матлабе (сорцы причешу и чут...   Jul 4 2016, 17:01
|- - des00   Цитата(des00 @ Jul 5 2016, 00:01) 1. Как ...   Jul 5 2016, 03:53
|- - des00   Цитата(des00 @ Jul 5 2016, 10:53) Надо по...   Jul 5 2016, 12:25
- - maratz   Мельком посмотрел, исправляющая способность лучше,...   Jul 5 2016, 07:13
- - des00   Возник вот такой вопрос. В MAX LOG MAP алгоритме, ...   Jul 5 2016, 17:07
|- - andyp   Цитата(des00 @ Jul 5 2016, 20:07) Возник ...   Jul 21 2016, 10:23
- - des00   Цитата(des00 @ Jul 5 2016, 19:25) Гыыы......   Jul 6 2016, 04:15
- - des00   Доброго всем. Озадачился вопросом, есть ли возмо...   Jul 7 2016, 05:13
|- - maratz   Цитата(des00 @ Jul 7 2016, 09:13) Поведен...   Jul 15 2016, 14:46
|- - des00   Цитата(maratz @ Jul 15 2016, 21:46) Судя ...   Jul 16 2016, 13:12
- - maratz   Есть ли у кого-нибудь материалы или сведения о вли...   Feb 9 2017, 15:02
3 страниц V  < 1 2 3


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

 


RSS Текстовая версия Сейчас: 17th June 2025 - 04:12
Рейтинг@Mail.ru


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