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

 
 
5 страниц V  < 1 2 3 4 > »   
Reply to this topicStart new topic
> LDPC+QAM256, Создание QC-LDPC-BC пров.матриц под модуляцию QAM256
petrov
сообщение Dec 9 2010, 16:41
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



В гугле достаточно статей можно найти, вот на вскидку

http://www.csie.ntu.edu.tw/~mku/research/L...PC_for_ADSL.pdf

Смотрите не TCM а pragmatic approach double Gray binary coding BICM QAM soft demapping LLR и т. п.
Go to the top of the page
 
+Quote Post
SKov
сообщение Dec 9 2010, 21:23
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119



Цитата(brig01 @ Dec 9 2010, 17:27) *
P.S.S. Сейчас читаю Скляра, оч. тяжОлое чтиво, есть что нить по достпупнее, в плане подачи матерьяла?)

Вообще, туго вам придется, если нет опыта в этой области. Там одних только методов постоения LDPC - добрый десяток, да и модификаций декодеров не меньше. И, кстати, QC-LDPC - это разве только сначала кажется приличным классом кодов. Единственное их достоинство - легкость построения. И кодирования. А вообще, если сложность кодера не очень критична, а главное - качество кода, то советую глянуть PG-LDPC. Но еще раз скажу, если это вам курсовик надо написать или диплом - то сойдет и так. А если серьезную разработку надо сделать, то с полгодика надо статьи почитать и "землю порыть". Одной местной конференцией вам не обойтись.
Потому как это тема - "цельная наука" wink.gif))
Go to the top of the page
 
+Quote Post
brig01
сообщение Dec 10 2010, 06:05
Сообщение #18


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 7-05-10
Пользователь №: 57 120



Цитата(SKov @ Dec 10 2010, 03:23) *
Вообще, туго вам придется, если нет опыта в этой области. Там одних только методов постоения LDPC - добрый десяток, да и модификаций декодеров не меньше. И, кстати, QC-LDPC - это разве только сначала кажется приличным классом кодов. Единственное их достоинство - легкость построения. И кодирования. А вообще, если сложность кодера не очень критична, а главное - качество кода, то советую глянуть PG-LDPC. Но еще раз скажу, если это вам курсовик надо написать или диплом - то сойдет и так. А если серьезную разработку надо сделать, то с полгодика надо статьи почитать и "землю порыть". Одной местной конференцией вам не обойтись.
Потому как это тема - "цельная наука" wink.gif))


Опыт дело наживное было бы желание. QC-LDPC-BC используеться в WiMax и GhM сетях, янки плохое не будут закладывать, есть другие альтернативы когда размер фрейма на десятки тысяч бит? Кстате их я реализовал/отладил в железе sm.gif. Сложность критична, нужно упихать в ограниченный ресурс(EP1C12) на скорости до 180Мбит. Так то хотел кандидатскую написать sm.gif)). А какие ещё есть конференции на эту тему?

P.S. В QC-LDPC-BC сильно не понравилось что для эффективного декодирования требуеться от 10 итераций и выше.

Цитата(petrov @ Dec 9 2010, 22:41) *
В гугле достаточно статей можно найти, вот на вскидку

http://www.csie.ntu.edu.tw/~mku/research/L...PC_for_ADSL.pdf

Смотрите не TCM а pragmatic approach double Gray binary coding BICM QAM soft demapping LLR и т. п.


Огромное спсб.

Сообщение отредактировал brig01 - Dec 10 2010, 05:36


--------------------
Ох не лёгкая это работа попасть в группу "свой"....
Go to the top of the page
 
+Quote Post
SKov
сообщение Dec 10 2010, 08:51
Сообщение #19


Знающий
****

Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119



Цитата(brig01 @ Dec 10 2010, 09:05) *
QC-LDPC-BC используеться в WiMax и GhM сетях,
янки плохое не будут закладывать


Ну, с таким подходом мы из состояния банановой республики уже никогда не вылезем. wink.gif
Кстати, те же янки используют PG-коды в 10-гигабитном эзернете. Там , правда,
длина небольшая - 2048. И во флеш-памяти (там длина около 10000).
Если критична сложность кодера, то янки просто приписываеют к проверочной матрице двойную единичную матрицу wink.gif)
Тоже нормальное дело, если хочется подпортить качество кода ради упрощения кодирования.wink.gif

Цитата
А какие ещё есть конференции на эту тему?

Я не знаю. Вообще, конференция полезна, если вы совсем "чайник" и вам надо получить начальную "ориентацию в пространстве"
и легкий дружеский пинок в нужном напрвлении. Либо, если вы уже гуру, но какой-то очень частный вопрос не можете
раскусить - тогда тоже могут помочь. А использовать конференцию для решения задачи обучения - это последнее дело.
Тут вам быстро расскажут про "модификацию проверочной матрицы" в процессе декодирования.
Вы потом долго переучиваться будете wink.gif

Цитата
P.S. В QC-LDPC-BC сильно не понравилось что для эффективного декодирования требуеться от 10 итераций и выше.

Это вообще какая-то ерунда, которую я не понимаю. Количество итераций зависит в первую очередь от уровня шума.
Даже плохой код будет быстро декодироваться при малом уровне шумов. И даже хороший код требует многих итераций
при большом шуме. Все очень относительно. Вы можете силовым приемом ограничить число итераций на приемлемом
уровне - и смотреть, что получается.
Go to the top of the page
 
+Quote Post
brig01
сообщение Dec 10 2010, 09:51
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 7-05-10
Пользователь №: 57 120



Цитата(SKov @ Dec 10 2010, 14:51) *
Ну, с таким подходом мы из состояния банановой республики уже никогда не вылезем. wink.gif
Кстати, те же янки используют PG-коды в 10-гигабитном эзернете. Там , правда,
длина небольшая - 2048. И во флеш-памяти (там длина около 10000).
Если критична сложность кодера, то янки просто приписываеют к проверочной матрице двойную единичную матрицу wink.gif)
Тоже нормальное дело, если хочется подпортить качество кода ради упрощения кодирования.wink.gif


Я не знаю. Вообще, конференция полезна, если вы совсем "чайник" и вам надо получить начальную "ориентацию в пространстве"
и легкий дружеский пинок в нужном напрвлении. Либо, если вы уже гуру, но какой-то очень частный вопрос не можете
раскусить - тогда тоже могут помочь. А использовать конференцию для решения задачи обучения - это последнее дело.
Тут вам быстро расскажут про "модификацию проверочной матрицы" в процессе декодирования.
Вы потом долго переучиваться будете wink.gif


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


1. На начальном этапе мне и моему начальству нужен был результат, результат проще добиться когда задача не сложная, тем более когда кодированием не знанимался, поэтому QC-LDPC-BC без вариантов.

2.Конференции всегда важны хоть чайник ты, хоть утюг, хоть гуру из тебета sm.gif

3.Количество итераций зависит от ресурса, чем его больше тем больше итераций, у меня без всяких "силовых", тупо в EP1C12 не лезет больше 3итераций. В моём случае на R=5/6 QAM256 я получил выигрышь 6дБ (замеренно в железе), этого мало, нужно ещё 1дБ. Если б у меня была возможность добавить ещё итераций 7 было бы лучшe причём сильно, кстате после 16итераций выигрыша практически нет. Поэтому я и говорю что для эффективного ДЕкодирования (масимального выигрыша в дБ) нужно 10итераций.


P.S. Переделаю схему FEC на выходных как посоветовал камрад petrov, отпишусь что получилось sm.gif




--------------------
Ох не лёгкая это работа попасть в группу "свой"....
Go to the top of the page
 
+Quote Post
petrov
сообщение Dec 10 2010, 10:35
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(brig01 @ Dec 10 2010, 12:51) *
P.S. Переделаю схему FEC на выходных как посоветовал камрад petrov, отпишусь что получилось sm.gif


Не торопитесь ничего переделывать, может и не нужно вам это.

А как у вас сейчас сделано извлечение мягкой информации из 256QAM?
Go to the top of the page
 
+Quote Post
brig01
сообщение Dec 10 2010, 11:17
Сообщение #22


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 7-05-10
Пользователь №: 57 120



Цитата(petrov @ Dec 10 2010, 16:35) *
Не торопитесь ничего переделывать, может и не нужно вам это.

А как у вас сейчас сделано извлечение мягкой информации из 256QAM?



1. На передющей стороне биты кодирую в грей:

Код
always_ff@(posedge clk)begin
        gray[3]  <= #Tp acc[3];
        gray[2]  <= #Tp acc[2]^acc[3];
        gray[1]  <= #Tp acc[1]^acc[2]^acc[3];
        gray[0]  <= #Tp acc[0]^acc[1]^acc[2]^acc[3];
    end


Данные скармливаю модему. Получаю фазовый портрет рис. в одном из моих ответов.

2. На приёмной стороне с эквалайзера приходит 7бит(старшие биты ) для одной квадратуры.

3. Расщепление квадратуры в метрики:

Код
function bit signed [6:0] prod_minus(input bit signed [6:0] in);
integer i;    
bit     sign;
begin
    prod_minus  =   0;    
    for(i=0;i<7;i++)begin
            prod_minus[i]  =   ~in[i];            
        end
end    
endfunction    

function bit signed [6:0] abs(input bit [6:0] in);
integer i;
begin
    abs  =   0;
    for(i=0;i<7;i++)begin
            abs[i]  =   in[i]^(in[6]);
        end
end
endfunction

task automatic calc_metric(bit signed [6:0] in, ref bit signed [6:0] met [3:0]);    
begin    
    //
    met[3]   =   prod_minus(in);
    met[2]   =   abs(in)-32;
    met[1]   =   abs(met[2])-16;
    met[0]   =   abs(met[1])-8;        
    //
    for(int i=0;i<4;i++)begin
            if(met[i]>7)
                met[i]  =   7;
            else if(met[i]<-8)
                met[i]  =  -8;
        end
end    
endtask


Сообщение отредактировал brig01 - Dec 10 2010, 11:26


--------------------
Ох не лёгкая это работа попасть в группу "свой"....
Go to the top of the page
 
+Quote Post
Serg76
сообщение Dec 10 2010, 11:28
Сообщение #23


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

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



2 brig01

А можно для лучшего восприятия привести словесный алгоритм расщепителя или математические выражения?
Go to the top of the page
 
+Quote Post
brig01
сообщение Dec 10 2010, 11:39
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 7-05-10
Пользователь №: 57 120



Цитата(Serg76 @ Dec 10 2010, 17:28) *
2 brig01

А можно для лучшего восприятия привести словесный алгоритм расщепителя или математические выражения?


Честно говоря не знаю что сдесь не ясно, код вроде элементарный.

Логи выполнения:

Код
# In    = 0000 InM   =   -16 OutM  = -64 M[3] =  7 M[2] =  7 M[1] =  7 M[0] =  7  
# In    = 0000 InM   = -15 OutM  = -63 M[3] =  7 M[2] =  7 M[1] =  7 M[0] =  6  
# In    = 0000 InM   = -15 OutM  = -62 M[3] =  7 M[2] =  7 M[1] =  7 M[0] =  5  
# In    = 0000 InM   = -15 OutM  = -61 M[3] =  7 M[2] =  7 M[1] =  7 M[0] =  4  
# In    = 0000 InM   =   -15 OutM  = -60 M[3] =  7 M[2] =  7 M[1] =  7 M[0] =  3  
# In    = 0000 InM   = -14 OutM  = -59 M[3] =  7 M[2] =  7 M[1] =  7 M[0] =  2  
# In    = 0000 InM   = -14 OutM  = -58 M[3] =  7 M[2] =  7 M[1] =  7 M[0] =  1  
# In    = 0000 InM   = -14 OutM  = -57 M[3] =  7 M[2] =  7 M[1] =  7 M[0] =  0  
# In    = 0001 InM   =   -14 OutM  = -56 M[3] =  7 M[2] =  7 M[1] =  7 M[0] = -1  
# In    = 0001 InM   = -13 OutM  = -55 M[3] =  7 M[2] =  7 M[1] =  6 M[0] = -2  
# In    = 0001 InM   = -13 OutM  = -54 M[3] =  7 M[2] =  7 M[1] =  5 M[0] = -3  
# In    = 0001 InM   = -13 OutM  = -53 M[3] =  7 M[2] =  7 M[1] =  4 M[0] = -4  
# In    = 0001 InM   =   -13 OutM  = -52 M[3] =  7 M[2] =  7 M[1] =  3 M[0] = -5  
# In    = 0001 InM   = -12 OutM  = -51 M[3] =  7 M[2] =  7 M[1] =  2 M[0] = -6  
# In    = 0001 InM   = -12 OutM  = -50 M[3] =  7 M[2] =  7 M[1] =  1 M[0] = -7  
# In    = 0001 InM   = -12 OutM  = -49 M[3] =  7 M[2] =  7 M[1] =  0 M[0] = -8  
# In    = 0011 InM   =   -12 OutM  = -48 M[3] =  7 M[2] =  7 M[1] = -1 M[0] = -8  
# In    = 0011 InM   = -11 OutM  = -47 M[3] =  7 M[2] =  7 M[1] = -2 M[0] = -7  
# In    = 0011 InM   = -11 OutM  = -46 M[3] =  7 M[2] =  7 M[1] = -3 M[0] = -6  
# In    = 0011 InM   = -11 OutM  = -45 M[3] =  7 M[2] =  7 M[1] = -4 M[0] = -5  
# In    = 0011 InM   =   -11 OutM  = -44 M[3] =  7 M[2] =  7 M[1] = -5 M[0] = -4  
# In    = 0011 InM   = -10 OutM  = -43 M[3] =  7 M[2] =  7 M[1] = -6 M[0] = -3  
# In    = 0011 InM   = -10 OutM  = -42 M[3] =  7 M[2] =  7 M[1] = -7 M[0] = -2  
# In    = 0011 InM   = -10 OutM  = -41 M[3] =  7 M[2] =  7 M[1] = -8 M[0] = -1  
# In    = 0010 InM   =   -10 OutM  = -40 M[3] =  7 M[2] =  7 M[1] = -8 M[0] =  0  
# In    = 0010 InM   =  -9 OutM  = -39 M[3] =  7 M[2] =  6 M[1] = -8 M[0] =  1  
# In    = 0010 InM   =  -9 OutM  = -38 M[3] =  7 M[2] =  5 M[1] = -8 M[0] =  2  
# In    = 0010 InM   =  -9 OutM  = -37 M[3] =  7 M[2] =  4 M[1] = -8 M[0] =  3  
# In    = 0010 InM   =    -9 OutM  = -36 M[3] =  7 M[2] =  3 M[1] = -8 M[0] =  4  
# In    = 0010 InM   =  -8 OutM  = -35 M[3] =  7 M[2] =  2 M[1] = -8 M[0] =  5  
# In    = 0010 InM   =  -8 OutM  = -34 M[3] =  7 M[2] =  1 M[1] = -8 M[0] =  6  
# In    = 0010 InM   =  -8 OutM  = -33 M[3] =  7 M[2] =  0 M[1] = -8 M[0] =  7  
# In    = 0110 InM   =    -8 OutM  = -32 M[3] =  7 M[2] = -1 M[1] = -8 M[0] =  7  
# In    = 0110 InM   =  -7 OutM  = -31 M[3] =  7 M[2] = -2 M[1] = -8 M[0] =  6  
# In    = 0110 InM   =  -7 OutM  = -30 M[3] =  7 M[2] = -3 M[1] = -8 M[0] =  5  
# In    = 0110 InM   =  -7 OutM  = -29 M[3] =  7 M[2] = -4 M[1] = -8 M[0] =  4  
# In    = 0110 InM   =    -7 OutM  = -28 M[3] =  7 M[2] = -5 M[1] = -8 M[0] =  3  
# In    = 0110 InM   =  -6 OutM  = -27 M[3] =  7 M[2] = -6 M[1] = -8 M[0] =  2  
# In    = 0110 InM   =  -6 OutM  = -26 M[3] =  7 M[2] = -7 M[1] = -8 M[0] =  1  
# In    = 0110 InM   =  -6 OutM  = -25 M[3] =  7 M[2] = -8 M[1] = -8 M[0] =  0  
# In    = 0111 InM   =    -6 OutM  = -24 M[3] =  7 M[2] = -8 M[1] = -8 M[0] = -1  
# In    = 0111 InM   =  -5 OutM  = -23 M[3] =  7 M[2] = -8 M[1] = -7 M[0] = -2  
# In    = 0111 InM   =  -5 OutM  = -22 M[3] =  7 M[2] = -8 M[1] = -6 M[0] = -3  
# In    = 0111 InM   =  -5 OutM  = -21 M[3] =  7 M[2] = -8 M[1] = -5 M[0] = -4  
# In    = 0111 InM   =    -5 OutM  = -20 M[3] =  7 M[2] = -8 M[1] = -4 M[0] = -5  
# In    = 0111 InM   =  -4 OutM  = -19 M[3] =  7 M[2] = -8 M[1] = -3 M[0] = -6  
# In    = 0111 InM   =  -4 OutM  = -18 M[3] =  7 M[2] = -8 M[1] = -2 M[0] = -7  
# In    = 0111 InM   =  -4 OutM  = -17 M[3] =  7 M[2] = -8 M[1] = -1 M[0] = -8  
# In    = 0101 InM   =    -4 OutM  = -16 M[3] =  7 M[2] = -8 M[1] =  0 M[0] = -8  
# In    = 0101 InM   =  -3 OutM  = -15 M[3] =  7 M[2] = -8 M[1] =  1 M[0] = -7  
# In    = 0101 InM   =  -3 OutM  = -14 M[3] =  7 M[2] = -8 M[1] =  2 M[0] = -6  
# In    = 0101 InM   =  -3 OutM  = -13 M[3] =  7 M[2] = -8 M[1] =  3 M[0] = -5  
# In    = 0101 InM   =    -3 OutM  = -12 M[3] =  7 M[2] = -8 M[1] =  4 M[0] = -4  
# In    = 0101 InM   =  -2 OutM  = -11 M[3] =  7 M[2] = -8 M[1] =  5 M[0] = -3  
# In    = 0101 InM   =  -2 OutM  = -10 M[3] =  7 M[2] = -8 M[1] =  6 M[0] = -2  
# In    = 0101 InM   =  -2 OutM  =  -9 M[3] =  7 M[2] = -8 M[1] =  7 M[0] = -1  
# In    = 0100 InM   =    -2 OutM  =  -8 M[3] =  7 M[2] = -8 M[1] =  7 M[0] =  0  
# In    = 0100 InM   =  -1 OutM  =  -7 M[3] =  6 M[2] = -8 M[1] =  7 M[0] =  1  
# In    = 0100 InM   =  -1 OutM  =  -6 M[3] =  5 M[2] = -8 M[1] =  7 M[0] =  2  
# In    = 0100 InM   =  -1 OutM  =  -5 M[3] =  4 M[2] = -8 M[1] =  7 M[0] =  3  
# In    = 0100 InM   =    -1 OutM  =  -4 M[3] =  3 M[2] = -8 M[1] =  7 M[0] =  4  
# In    = 0100 InM   =   0 OutM  =  -3 M[3] =  2 M[2] = -8 M[1] =  7 M[0] =  5  
# In    = 0100 InM   =   0 OutM  =  -2 M[3] =  1 M[2] = -8 M[1] =  7 M[0] =  6  
# In    = 0100 InM   =   0 OutM  =  -1 M[3] =  0 M[2] = -8 M[1] =  7 M[0] =  7  
# In    = 1100 InM   =     0 OutM  =   0 M[3] = -1 M[2] = -8 M[1] =  7 M[0] =  7  
# In    = 1100 InM   =   0 OutM  =   1 M[3] = -2 M[2] = -8 M[1] =  7 M[0] =  6  
# In    = 1100 InM   =   0 OutM  =   2 M[3] = -3 M[2] = -8 M[1] =  7 M[0] =  5  
# In    = 1100 InM   =   0 OutM  =   3 M[3] = -4 M[2] = -8 M[1] =  7 M[0] =  4  
# In    = 1100 InM   =     1 OutM  =   4 M[3] = -5 M[2] = -8 M[1] =  7 M[0] =  3  
# In    = 1100 InM   =   1 OutM  =   5 M[3] = -6 M[2] = -8 M[1] =  7 M[0] =  2  
# In    = 1100 InM   =   1 OutM  =   6 M[3] = -7 M[2] = -8 M[1] =  7 M[0] =  1  
# In    = 1100 InM   =   1 OutM  =   7 M[3] = -8 M[2] = -8 M[1] =  7 M[0] =  0  
# In    = 1101 InM   =     2 OutM  =   8 M[3] = -8 M[2] = -8 M[1] =  7 M[0] = -1  
# In    = 1101 InM   =   2 OutM  =   9 M[3] = -8 M[2] = -8 M[1] =  6 M[0] = -2  
# In    = 1101 InM   =   2 OutM  =  10 M[3] = -8 M[2] = -8 M[1] =  5 M[0] = -3  
# In    = 1101 InM   =   2 OutM  =  11 M[3] = -8 M[2] = -8 M[1] =  4 M[0] = -4  
# In    = 1101 InM   =     3 OutM  =  12 M[3] = -8 M[2] = -8 M[1] =  3 M[0] = -5  
# In    = 1101 InM   =   3 OutM  =  13 M[3] = -8 M[2] = -8 M[1] =  2 M[0] = -6  
# In    = 1101 InM   =   3 OutM  =  14 M[3] = -8 M[2] = -8 M[1] =  1 M[0] = -7  
# In    = 1101 InM   =   3 OutM  =  15 M[3] = -8 M[2] = -8 M[1] =  0 M[0] = -8  
# In    = 1111 InM   =     4 OutM  =  16 M[3] = -8 M[2] = -8 M[1] = -1 M[0] = -8  
# In    = 1111 InM   =   4 OutM  =  17 M[3] = -8 M[2] = -8 M[1] = -2 M[0] = -7  
# In    = 1111 InM   =   4 OutM  =  18 M[3] = -8 M[2] = -8 M[1] = -3 M[0] = -6  
# In    = 1111 InM   =   4 OutM  =  19 M[3] = -8 M[2] = -8 M[1] = -4 M[0] = -5  
# In    = 1111 InM   =     5 OutM  =  20 M[3] = -8 M[2] = -8 M[1] = -5 M[0] = -4  
# In    = 1111 InM   =   5 OutM  =  21 M[3] = -8 M[2] = -8 M[1] = -6 M[0] = -3  
# In    = 1111 InM   =   5 OutM  =  22 M[3] = -8 M[2] = -8 M[1] = -7 M[0] = -2  
# In    = 1111 InM   =   5 OutM  =  23 M[3] = -8 M[2] = -8 M[1] = -8 M[0] = -1  
# In    = 1110 InM   =     6 OutM  =  24 M[3] = -8 M[2] = -8 M[1] = -8 M[0] =  0  
# In    = 1110 InM   =   6 OutM  =  25 M[3] = -8 M[2] = -7 M[1] = -8 M[0] =  1  
# In    = 1110 InM   =   6 OutM  =  26 M[3] = -8 M[2] = -6 M[1] = -8 M[0] =  2  
# In    = 1110 InM   =   6 OutM  =  27 M[3] = -8 M[2] = -5 M[1] = -8 M[0] =  3  
# In    = 1110 InM   =     7 OutM  =  28 M[3] = -8 M[2] = -4 M[1] = -8 M[0] =  4  
# In    = 1110 InM   =   7 OutM  =  29 M[3] = -8 M[2] = -3 M[1] = -8 M[0] =  5  
# In    = 1110 InM   =   7 OutM  =  30 M[3] = -8 M[2] = -2 M[1] = -8 M[0] =  6  
# In    = 1110 InM   =   7 OutM  =  31 M[3] = -8 M[2] = -1 M[1] = -8 M[0] =  7  
# In    = 1010 InM   =     8 OutM  =  32 M[3] = -8 M[2] =  0 M[1] = -8 M[0] =  7  
# In    = 1010 InM   =   8 OutM  =  33 M[3] = -8 M[2] =  1 M[1] = -8 M[0] =  6  
# In    = 1010 InM   =   8 OutM  =  34 M[3] = -8 M[2] =  2 M[1] = -8 M[0] =  5  
# In    = 1010 InM   =   8 OutM  =  35 M[3] = -8 M[2] =  3 M[1] = -8 M[0] =  4  
# In    = 1010 InM   =     9 OutM  =  36 M[3] = -8 M[2] =  4 M[1] = -8 M[0] =  3  
# In    = 1010 InM   =   9 OutM  =  37 M[3] = -8 M[2] =  5 M[1] = -8 M[0] =  2  
# In    = 1010 InM   =   9 OutM  =  38 M[3] = -8 M[2] =  6 M[1] = -8 M[0] =  1  
# In    = 1010 InM   =   9 OutM  =  39 M[3] = -8 M[2] =  7 M[1] = -8 M[0] =  0  
# In    = 1011 InM   =    10 OutM  =  40 M[3] = -8 M[2] =  7 M[1] = -8 M[0] = -1  
# In    = 1011 InM   =  10 OutM  =  41 M[3] = -8 M[2] =  7 M[1] = -7 M[0] = -2  
# In    = 1011 InM   =  10 OutM  =  42 M[3] = -8 M[2] =  7 M[1] = -6 M[0] = -3  
# In    = 1011 InM   =  10 OutM  =  43 M[3] = -8 M[2] =  7 M[1] = -5 M[0] = -4  
# In    = 1011 InM   =    11 OutM  =  44 M[3] = -8 M[2] =  7 M[1] = -4 M[0] = -5  
# In    = 1011 InM   =  11 OutM  =  45 M[3] = -8 M[2] =  7 M[1] = -3 M[0] = -6  
# In    = 1011 InM   =  11 OutM  =  46 M[3] = -8 M[2] =  7 M[1] = -2 M[0] = -7  
# In    = 1011 InM   =  11 OutM  =  47 M[3] = -8 M[2] =  7 M[1] = -1 M[0] = -8  
# In    = 1001 InM   =    12 OutM  =  48 M[3] = -8 M[2] =  7 M[1] =  0 M[0] = -8  
# In    = 1001 InM   =  12 OutM  =  49 M[3] = -8 M[2] =  7 M[1] =  1 M[0] = -7  
# In    = 1001 InM   =  12 OutM  =  50 M[3] = -8 M[2] =  7 M[1] =  2 M[0] = -6  
# In    = 1001 InM   =  12 OutM  =  51 M[3] = -8 M[2] =  7 M[1] =  3 M[0] = -5  
# In    = 1001 InM   =    13 OutM  =  52 M[3] = -8 M[2] =  7 M[1] =  4 M[0] = -4  
# In    = 1001 InM   =  13 OutM  =  53 M[3] = -8 M[2] =  7 M[1] =  5 M[0] = -3  
# In    = 1001 InM   =  13 OutM  =  54 M[3] = -8 M[2] =  7 M[1] =  6 M[0] = -2  
# In    = 1001 InM   =  13 OutM  =  55 M[3] = -8 M[2] =  7 M[1] =  7 M[0] = -1  
# In    = 1000 InM   =    14 OutM  =  56 M[3] = -8 M[2] =  7 M[1] =  7 M[0] =  0  
# In    = 1000 InM   =  14 OutM  =  57 M[3] = -8 M[2] =  7 M[1] =  7 M[0] =  1  
# In    = 1000 InM   =  14 OutM  =  58 M[3] = -8 M[2] =  7 M[1] =  7 M[0] =  2  
# In    = 1000 InM   =  14 OutM  =  59 M[3] = -8 M[2] =  7 M[1] =  7 M[0] =  3  
# In    = 1000 InM   =    15 OutM  =  60 M[3] = -8 M[2] =  7 M[1] =  7 M[0] =  4  
# In    = 1000 InM   =  15 OutM  =  61 M[3] = -8 M[2] =  7 M[1] =  7 M[0] =  5  
# In    = 1000 InM   =  15 OutM  =  62 M[3] = -8 M[2] =  7 M[1] =  7 M[0] =  6  
# In    = 1000 InM   =  15 OutM  =  63 M[3] = -8 M[2] =  7 M[1] =  7 M[0] =  7


In - входые биты до грея
InM - это Жёсткое решение 4 бита OutM
OutM - на выходе модема
M[3..0] - метрики

Сообщение отредактировал brig01 - Dec 10 2010, 11:41


--------------------
Ох не лёгкая это работа попасть в группу "свой"....
Go to the top of the page
 
+Quote Post
petrov
сообщение Dec 10 2010, 11:39
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(Serg76 @ Dec 10 2010, 14:28) *
2 brig01

А можно для лучшего восприятия привести словесный алгоритм расщепителя или математические выражения?


Да тяжеловато так сообразить.


brig01 или источник приведите по которому делали.
Go to the top of the page
 
+Quote Post
brig01
сообщение Dec 10 2010, 12:16
Сообщение #26


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 7-05-10
Пользователь №: 57 120



Цитата(petrov @ Dec 10 2010, 17:39) *
Да тяжеловато так сообразить.


brig01 или источник приведите по которому делали.


Делал сам, изходя из позиции здравого смысла.

Алгоритм MIN-SUM для LDPC, договариваемся, одна метрика 4бита.

-8 - самая достоверная 1
....
-1 - самая недостоверная 1
0 - самый недостоверный 0
....
7 - самый достоверный 0

Далее одна квадратура это число от -64 до 63. Смотрим, как распределяються и биты и какие растояния до точек перехода из 0 в 1 для каждого бита на фазовом портрете и выходим не оч. сложные соотношения

Чтобы получить метрики:

met[3] = prod_minus(I)
met[2] = abs(I) - 32
met[1] = abs(met[2]) - 16
met[0] = abs(met[1]) - 8

abs - абсюлютное значение
prod_minus - умножение на минус, функции описанны выше.

Нечто подобное, только для QAM64, можно почитать тут.

Сообщение отредактировал brig01 - Dec 10 2010, 12:44
Прикрепленные файлы
Прикрепленный файл  soft_met.pdf ( 140.19 килобайт ) Кол-во скачиваний: 126
 


--------------------
Ох не лёгкая это работа попасть в группу "свой"....
Go to the top of the page
 
+Quote Post
petrov
сообщение Dec 10 2010, 13:09
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Смотрите чтобы не получалось неправильных метрик, может нормально у вас сделано, а может и лучше можно, не берусь судить.
Go to the top of the page
 
+Quote Post
brig01
сообщение Dec 10 2010, 13:18
Сообщение #28


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 7-05-10
Пользователь №: 57 120



Цитата(petrov @ Dec 10 2010, 19:09) *
Смотрите чтобы не получалось неправильных метрик, может нормально у вас сделано, а может и лучше можно, не берусь судить.



А как можно проверить на появление неправельных метрик? Если метрик неправельных нет, это лучший вариант?


--------------------
Ох не лёгкая это работа попасть в группу "свой"....
Go to the top of the page
 
+Quote Post
petrov
сообщение Dec 10 2010, 13:34
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937



Цитата(brig01 @ Dec 10 2010, 16:18) *
А как можно проверить на появление неправельных метрик? Если метрик неправельных нет, это лучший вариант?


Это уже на исследование целое тянет, лучше поискать статьи по оптимальному маппингу-демаппингу 256QAM.
Go to the top of the page
 
+Quote Post
brig01
сообщение Dec 10 2010, 13:45
Сообщение #30


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 7-05-10
Пользователь №: 57 120



Цитата(petrov @ Dec 10 2010, 19:34) *
Это уже на исследование целое тянет, лучше поискать статьи по оптимальному маппингу-демаппингу 256QAM.


Лана, в метриках я уверен, у меня были моменты когда я метрики считал не правельно, это сильно влияет на выходной BER, статьи поищу, всё равно их нужно по другому пересчитать для double Gray-code labeling.

В середине недели отпишусь как получилось с кодированием только младших бит.


--------------------
Ох не лёгкая это работа попасть в группу "свой"....
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 06:21
Рейтинг@Mail.ru


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