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

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


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

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



Цитата(brig01 @ Dec 10 2010, 17:45) *
Честно говоря не знаю что сдесь не ясно, код вроде элементарный.

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

Цитата(brig01 @ Dec 10 2010, 17:45) *
Лана, в метриках я уверен, у меня были моменты когда я метрики считал не правельно, это сильно влияет на выходной BER, статьи поищу, всё равно их нужно по другому пересчитать для double Gray-code labeling.

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

Вопрос еще вот в чем: имеется ли у Вас диффкодирование? если нет, то перед началом расчета метрик надо обязательно устранить фазовую неоднозначность в соответствии с меппингом модулятора, иначе рассчитанные метрики будут неверными. я столкнулся с похожей проблемой, когда надо было разложить 16QAM.

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

проверить можно только посчитав BER или же визуально на какой-нибудь заранее известной ПСП
Go to the top of the page
 
+Quote Post
brig01
сообщение Dec 13 2010, 05:18
Сообщение #32


Участник
*

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



Цитата(Serg76 @ Dec 10 2010, 21:44) *
вам может понятно, другим не очень, зачем мне разбираться в чужом коде, если для объяснения достаточно написать два предложения или привести одно выражение. ну да ладно, ваши проблемы в конце концов.


Вопрос еще вот в чем: имеется ли у Вас диффкодирование? если нет, то перед началом расчета метрик надо обязательно устранить фазовую неоднозначность в соответствии с меппингом модулятора, иначе рассчитанные метрики будут неверными. я столкнулся с похожей проблемой, когда надо было разложить 16QAM.


проверить можно только посчитав BER или же визуально на какой-нибудь заранее известной ПСП


Двумя предложениями не получится. Код он не врёт, в отличии от коментариев.

Диффкодирование отсутствует, но если фаз необдносзачность это когда квадрат созвездия может встать в одну из 4 фаз (0, 90, 180, 270)? то для устранения этого эффекта я модему сигнализирую есть или нет фреймовая синхронизация. Если не сложно выложите ссылку на алгоритмы устранение фазовую неоднозначность в метриках?

По BER проверял, сошлось, визуально это как?, ну до этого я просто перебирал всё возможные значения, и смотрел на соответствие.



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


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

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



Цитата(brig01 @ Dec 13 2010, 08:18) *
Двумя предложениями не получится. Код он не врёт, в отличии от коментариев.

Диффкодирование отсутствует, но если фаз необдносзачность это когда квадрат созвездия может встать в одну из 4 фаз (0, 90, 180, 270)? то для устранения этого эффекта я модему сигнализирую есть или нет фреймовая синхронизация. Если не сложно выложите ссылку на алгоритмы устранение фазовую неоднозначность в метриках?

По BER проверял, сошлось, визуально это как?, ну до этого я просто перебирал всё возможные значения, и смотрел на соответствие.

Как раз код то и может врать sm.gif, а вот математика вряд-ли.

По поводу фазовой неоднозначности вы все правильно делаете, так в реальной жизни и поступают.
Go to the top of the page
 
+Quote Post
des00
сообщение Jan 25 2011, 14:56
Сообщение #34


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

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



Цитата(Serg76 @ Dec 8 2010, 09:57) *
Имеется ввиду, что главное правило при построении манипуляционного кода заключается в том, что бинарные значения соседних отсчетов в сигнальном созвездии не должны отличаться более, чем на один бит, иначе при возникновении ошибки в принятом символе Вы сразу можете получить несколько ошибочных бит, которые декодеру будет сложнее исправить.

немного офттопик. Мучает меня один вопрос про использование кодов Грея ("созвездия по грею", как например в атаче). С одной стороны понятно, что использование этого кода имеет определенные перспективы, но с другой стороны рассмотрим модем. Можем взять один из модемов уважаемого petrov. В модуляторе, перед мапером ставят кодер грея, затем в демодуляторе, после жесткого решения, ставят декодер грея. Этим на корню убивая эффект от применения этого кода, т.к. берется функция от битов жесткого решения. И пусть ошибка в символе будет только в одном бите, после прохождения декодера грея она может преобразоваться в многобитную ошибку. Вот пример на созвездии в атаче : пусть передавалась точка 1111 (до кодера грея это было числом 1010), а принята точка 0111 (после декодера это будет число 0110). Вместо ошибки в одном бите, мы получили ошибку в двух битах. Так какой тогда смысл в таком кодировании созвездия?

Я бы понял эффект использования грея, в том случае если изменяется алгоритм жесткого решения, например, мы уходим от комбинационных функций с выкушенными битами, в пользу ну положим кучки компараторов. Но ведь так никто не делает. Или я что то не понимаю в применении кода грея ?

Спасибо.

ЗЫ. вижу единственный вариант когда такое кодирование имеет смысл. Это поставить кодирование грея не на входе мапера, а на входе кодера. Тогда декодирование грея можно осуществлять после основного декодера. Но как тогда использовать например, байтовый кодер рида соломона для QPSK или QAM32 остается не понятным.
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Go to the top of the page
 
+Quote Post
thermit
сообщение Jan 25 2011, 15:34
Сообщение #35


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата
des00:
Так какой тогда смысл в таком кодировании созвездия?


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

Сообщение отредактировал thermit - Jan 25 2011, 15:37
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jan 25 2011, 15:38
Сообщение #36


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(des00 @ Jan 25 2011, 20:56) *
Так какой тогда смысл в таком кодировании созвездия?

смысл в том, что малая ошибка в канале приводит к малой ошибке в решении, большая - к большой. исправление ошибок, конечно, никто не отменял
Go to the top of the page
 
+Quote Post
Serg76
сообщение Jan 25 2011, 16:31
Сообщение #37


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

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



Цитата(des00 @ Jan 25 2011, 17:56) *
В модуляторе, перед мапером ставят кодер грея, затем в демодуляторе, после жесткого решения, ставят декодер грея. Этим на корню убивая эффект от применения этого кода, т.к. берется функция от битов жесткого решения. И пусть ошибка в символе будет только в одном бите, после прохождения декодера грея она может преобразоваться в многобитную ошибку.

Не может преобразоваться. Похоже здесь какое-то недопонимание. Что такое маппинг? Это отображение Ваших квадбитов на сигнальном созвездии в соответствии с манипуляционным кодом, который Вы хотите применить. Теперь посмотрим со стороны демодулятора, а точнее на его решающее устройство. Как это должно делаться. В решающем устройстве демодулятора хранится таблица с эталонной конструкцией сигнального созвездия, такая же как и в модуляторе. РУ демодулятора принимает решение о переданном символе исходя из правила минимума Эвклидова расстояния (или для простоты его квадрата) между принятым вектором сигнального отсчета (символа) и ближайшего из эталонной кодовой конструкции и ставит в соответствие этому (эталонному) значению жесткое решение в соответствии с манипуляционным кодом. Правда в случае когерентного приема может возникнуть проблема с неоднозначностью фазы, но она устраняется на этапе помехоустойчивого декодера либо диффкодированием. Можно сделать еще и по-другому, когда РУ демодулятора работает в последовательном коде, тогда после получения жесткого решения, битовый поток необходимо будет перекодировать в соответствии с тем же самым мапипуляционным кодом (но при этом надо будет иметь представление как построен последовательный код, чтобы правильно выполнить соответствующую перекодировку). Это что касается принятия жесткого решения. При получении мягкого решения необходимо просто квадратуры с выхода РУ пропустить через квантователь и вообще не заморачиваться каой там манипуляционный код применялся. Эту проблему уже надо будет решать на этапе декодирования.

Кстати, в приведенном Вами сигнальном созвездии правило Грея выполняется.
Go to the top of the page
 
+Quote Post
des00
сообщение Jan 25 2011, 16:42
Сообщение #38


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

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



Цитата(thermit @ Jan 25 2011, 09:34) *
Каждой точке ставится в соответствие n-разрядный код.

вопрос в том, как этот код ставиться в соответствие. в приведенном мной численном примере, логика такого соответствия дает размножение битовой ошибки по сырым данным

Цитата(vadimuzzz @ Jan 25 2011, 09:38) *
смысл в том, что малая ошибка в канале приводит к малой ошибке в решении, большая - к большой. исправление ошибок, конечно, никто не отменял

это то понятно, вопрос стоит в другом.

Цитата(Serg76 @ Jan 25 2011, 10:31) *
Не может преобразоваться.

если мы говорим о символах в радиоканале, то не спорю. Все так как вы говорите. Но мой вопрос касался не символов в радиоканале, а исходном битовом потоке (сырых данных). Как мне видиться функция преобразования данных в символы(кодировние и декодирование грея, перед мапером) приводит к тому, что количество битовых ошибок в исходных данных увеличиться.

Цитата
Кстати, в приведенном Вами сигнальном созвездии правило Грея выполняется.

да, выполняется, это взято из даташита на чипы AHA. Если не сложно, дайте комментарии к приведенному мной численному примеру.


--------------------
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jan 25 2011, 16:48
Сообщение #39


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



по-моему вы путаете алгоритм с конкретной реализацией. в вашей же картинке кубиты - исходные данные - преобразуются маппером в отсчеты квадратур. как раз по правилу Грея - соседние точки в созвездии отличаются в одном бите исходных данных.
Go to the top of the page
 
+Quote Post
Serg76
сообщение Jan 25 2011, 17:23
Сообщение #40


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

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



2 des00 поддерживаю vadimuzzz

Цитата(des00 @ Jan 25 2011, 19:42) *
если мы говорим о символах в радиоканале, то не спорю. Все так как вы говорите. Но мой вопрос касался не символов в радиоканале, а исходном битовом потоке (сырых данных). Как мне видиться функция преобразования данных в символы(кодировние и декодирование грея, перед мапером) приводит к тому, что количество битовых ошибок в исходных данных увеличиться.

Че-то я не совсем Вас понимаю. Зачем делать еще какие-нибудь промежуточные операции перекодировки, если Вы сразу Ваш исходный поток преобразовываете в отсчеты квадратур по правилу Грея, которое Вы привели на рисунке. Таким же образом делаете и на приемном конце. Можно использовать промежуточную перекодировку, но в случае если у Вас в решающем устройстве прописан какой-нибудь последовательный манипуляционный код, который не соответствует кодировке Грея. А вот потом уже этот битовый поток надо пропустить через декодер, который преобразует Ваш последовательный код в код Грея

2 des00 По-моему сейчас я начинаю понимать, что Вы хотите сказать. Подобная проблема у меня возникла, когда я делал TDMA демодулятор. Так там действительно при обнаружении преамбулы коррелятором необходимо было символы синхропоследовательности перекодировать из кода Грея в последовательный код, т.е. так как они идут в радиоканале, иначе коррелятор не отрабатывает. Может Вы это имеете ввиду?
Go to the top of the page
 
+Quote Post
thermit
сообщение Jan 25 2011, 20:53
Сообщение #41


Знающий
****

Группа: Участник
Сообщений: 781
Регистрация: 3-08-09
Пользователь №: 51 730



Цитата
des00:
в приведенном мной численном примере, логика такого соответствия дает размножение битовой ошибки по сырым данным


Ваш численный пример содержит 2 бестолковые операции: 1 - кодер грея (чего там кодировать, если решетка уже составлена согласно c кодом грея) 2 - декодер грея. Дальнейшие рассуждения о размножении ошибок смысл теряют.
Go to the top of the page
 
+Quote Post
des00
сообщение Jan 26 2011, 05:37
Сообщение #42


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

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



Цитата(vadimuzzz @ Jan 25 2011, 10:48) *
по-моему вы путаете алгоритм с конкретной реализацией............

Цитата(thermit @ Jan 25 2011, 14:53) *
Ваш численный пример содержит 2 бестолковые операции:...........

Чтобы внести ясность, давайте рассмотрим модель модема от petrov qam_fb_gardner_symbol_farrow_sync_fb_phase_sync_agc_2007_06_18.mdl, внизу скрины модулятора и демодулятора, а именно как исходный битовый поток переводится в символы радиоканала. Как мы видим, в этом модеме исходный битовый поток (нас же интересует передача именно данных), обрабатывается по грею и только потом поступает в маппер. На приемном конце происходит тоже самое. Т.е. свойством отображения созвездия по грею обладает не сборка маппер-демаппер, а сборка кодер грея - мапер - демапер - декодер грея. Вот именно от такой сборки я выигрыша и не вижу. Потому что ошибка в один бит в символе, в демапере, после декодера грея может привести к ошибке в двух битах в исходных данных.

Таким образом, я считаю, для того, что бы от созвездия по грею получить выигрыш, нужно либо ставить его до основного кодера (LDPC например) либо интегрировать это свойство в маппер демапер. Рассмотрим маппер. Для начала возьмем нативное созвездие, для реализации которого требуется минимум логики(созвездие в атаче). Функция отображения для этого созвездия примитивнейшая(язык псевдо си)
Код
bit [3 : 0] data;
bit [1 : 0] dat_re, dat_im;
dat_re = data[1 : 0];
dat_im = data[3 : 2];
re = (dat_re[1] ? 2 : -2) + (dat_re[0] ? 1 : -1);
im = (dat_im[1] ? 2 : -2) + (dat_im[0] ? 1 : -1);

демапер для такого созвездия тоже примитивнейший
Код
bit [7 : 0] vector_re, vector_im; // let it be 8 bit signed vectors, and decision levels is maximum
bit [3 : 0] data;
bit [1 : 0] dat_re, dat_im;

dat_re[1] = !vector_re[7]; // take signum bit
dat_re[0] =  vector_re[6];

dat_im[1] = !vector_im[7]; // take signum bit
dat_im[0] =  vector_im[6];

data[1 : 0] = dat_re;
data[3 : 2] = dat_im;


Видно что требуется минимум логики, а вот как реализовать отображение созвездия по грею от AHA? Если с мапером еще более менее понятно, с демапером получится не так просто, т.к. взять комбинационную функцию от определенных битов нельзя (это будет фактически выходной декодер грея, от которого нет толку). Как делают такие демапперы?

Цитата(Serg76 @ Jan 25 2011, 11:23) *
Че-то я не совсем Вас понимаю.

я пытаюсь посмотреть на связку модем + кодер, с точки зрения их оптимальной работы друг с другом и при этом оценить ресурсы которые требуются для реализации этой оптимальности. Помимо этого я не вижу логических обоснований вот этого
Цитата
1. Коды грея я использую. Это улучшает ВER всего потока в два раза.

при том что автор, как я понял, поставил кодер грея перед мапером и декодер грея после демапера.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 


--------------------
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jan 26 2011, 05:57
Сообщение #43


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



нативное созвездие явно не оптимально. например, см. внутренние точки (а для них С/Ш самый хреновый, да) - ошибка в одну позицию в созвездии приведет к 2 битовым ошибкам. и демаппером не понимаю, в чем вопрос. берем квадратуру, пусть re. [-3, -1, 1, 3] <-> [00, 01, 11, 10], для мнимой - аналогично. в чем проблема? если мягкое решение надо, см. , например, аттач
Прикрепленные файлы
Прикрепленный файл  28_03_04.pdf ( 826.52 килобайт ) Кол-во скачиваний: 117
 
Go to the top of the page
 
+Quote Post
des00
сообщение Jan 26 2011, 06:05
Сообщение #44


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

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



Цитата(vadimuzzz @ Jan 25 2011, 23:57) *
нативное созвездие явно не оптимально. например, см. внутренние точки (а для них С/Ш самый хреновый, да) - ошибка в одну позицию в созвездии приведет к 2 битовым ошибкам.

все так, но к таким же ошибкам приведет наличие кодера грея перед нативным созвездием.
Цитата
берем квадратуру, пусть re. [-3, -1, 1, 3] <-> [00, 01, 11, 10], для мнимой - аналогично. в чем проблема?

проблема в алгоритме построения демапера. если мы берем биты [7:6] выходных векторов и ставим функцию преобразования бит(чтобы вектор 1 конвертировать в точку 11), то фактически мы накладываем на эти биты декодер грея. Что thermit назвал бестолковой операцией. Или я не прав?


--------------------
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Jan 26 2011, 06:58
Сообщение #45


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(des00 @ Jan 26 2011, 12:05) *
все так, но к таким же ошибкам приведет наличие кодера грея перед нативным созвездием.

так это врожденный дефект нативного созвездия. код грея делает ровно одну вещь - увязывает хеммингово расстояние с евклидовым. в ваших обозначениях выше (кстати, с какого перепугу re и im - 2-битовые?)
CODE

re "нативный код" грей
3(3'b011) 11 10
1(3'b001) 10 11
-1(3'b111) 01 01
-3(3'b101) 00 00

я не вижу, чем здесь нативный код проще

Цитата(des00 @ Jan 26 2011, 12:05) *
проблема в алгоритме построения демапера.

демаппер использует симметрии - относительно 0 и относительно +/-2
Go to the top of the page
 
+Quote Post

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

 


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


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