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

 
 
> LDPC код из стандарта DVB-S2, BER, отношение сигнал-шум, DVB-S2, LDPC
Vehfl
сообщение Nov 13 2012, 10:33
Сообщение #1





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



Есть программа на C++ для моделирования кодов LDPC для стандарта DVB-S2, в программе есть матрицы из стандарта, задающие коды, есть модем и канал связи с возможностью установки отношения Eb/No. Для всех кодов кроме скоростей 2/5, 1/3, 1/4 получились приемлимые графики зависимости BER (Bit Error Rate) от Eb/No, сходящиеся с теоретическими из статей. Для скоростей 1/4, 1/3, 2/5 декодер не работает, сам добавляет ошибки даже, если в канале ошибок не было. Может это опечатка в матрицах, взятых из стандарта. Ниже приведен стандарт. Не знаете с чем может быть связано, что не работают три скорости?
Прикрепленные файлы
Прикрепленный файл  DVB_S2_en_302307v010201p.pdf ( 682.13 килобайт ) Кол-во скачиваний: 181
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Neznaika
сообщение Jan 21 2014, 11:56
Сообщение #2


Частый гость
**

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



Спасибо за ответы) Со стандарта я конечно же и начинал... в нем указано как формируется кодовое слово (считаются проверочные биты), про матрицу не помню. Что касается разных переводов, то в одной литературе variable node и information node, как я понял одно и тоже... смысл один и тот же. Ну да бог ним) Почесал в очередной раз репу... пригляделся к способу формирования проверочных битов в памяти приведенной выше архитектуры. В первой строке похоже стоят проверочные биты... P0, P90, P180... и т.д... а в первом столбце P0, P1, Р2 и т.д.... Тогда действительно можно первую строку посчитать за один такт, зная правильные индексы информационных бит и применяя сдвиг в 360-битных регистрах, так чтобы, например, P0 соответствовали биты в регистрах его формирующих. Информационные биты идут в последовательном порядке... и правильно сдвинув регистры, а потом сложив мы получив верные Рi во всей 360-битной строке. Эти самые индексы можно, как мне кажется легко вычислить используя таблицы из Appendix A прикрепленной статьи. Но вот дальше интересно... пусть сохраним первую строку в буфере... вычисляем 2-ую строку... складываем ее с первой... вычисляем третью.. складываем со второй... вроде все получается... Р1=Р1 xor P0, P2=P2 xor P1... это что касается первого столбца... Р91=Р91 xor P90, P92=P92 xor P91... что касается второго... Но! Нет связи между Р89 и Р90... в стандарте вроде процесс идет непрерывно... и мы должны проделать операцию P90=P90 xor P89.... здесь же она выпадает... Почему? Или я опять не правильно где то понял?


Цитата(Dr.Alex @ Jan 21 2014, 12:45) *
Ну во-первых для кода 1/2 кол-во рёбер графа ("эджей") равно (226800 - 1), то есть всего 3.5 штуки на один выходной бит.
Один эдж это один ксор, одно чтение и одна запись. Так как у вас память двупортовая в плисине, то значит частота повысится всего в 3.5 раза, а для самого злостного кода 3/5 - в 4.4 раза.

Распараллеливание в любое кол-во раз до 360 тоже легко делается, вечером объясню, если ещё нужно будет, а щас времени совсем нет..

Спасибо) Да, было бы интересно... я не считал вашим способом, немного не понятно. Мне казалось, что частота для 1/2 может повыситься только в 2 раза, ведь на 1 информационный приходится 2 бита кода. В предложенной архитектуре пока не понятно что там происходит с частотами. Допустим есть 2 входных буфера (по 90 регистров в 360 бит), пока вычисляем проверочные биты, входные записываем во второй входной буфер... а дальше нужно как то считать с удвоенной скоростью и входные биты и проверочные... но пока подвис вопрос с потерей одного вычисления...

Сообщение отредактировал Neznaika - Jan 21 2014, 11:57
Прикрепленные файлы
Прикрепленный файл  Investigation_of_LDPC_code_in_DVB_S2.pdf ( 1.49 мегабайт ) Кол-во скачиваний: 228
 
Go to the top of the page
 
+Quote Post
Dr.Alex
сообщение Jan 21 2014, 22:00
Сообщение #3


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

Группа: Свой
Сообщений: 1 386
Регистрация: 5-04-05
Из: моська, RF
Пользователь №: 3 863



Цитата(Neznaika @ Jan 21 2014, 15:56) *
Мне казалось, что частота для 1/2 может повыситься только в 2 раза, ведь на 1 информационный приходится 2 бита кода.


Ну вы же сами писали про "использование опорной частоты минимум в 5 раз выше информационной скорости", только посчитали неверно.
На каждый парити-нод в коде 1/2 влияют 7 инфо-нодов (это называется "градус" нода). Кроме нулевого парити-нода - у него градус всегда на 1 меньше. Всего парити-нодов 32400, а всего бит на выходе 64800. Поэтому на каждый выходной бит по 3.5 операций.

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

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

1) Написать на сях кодер, использующий таблицу из стандарта, тупо по алгоритму из стандарта, безо всякого параллелизма. Это будет образцовый кодер, там трудно ошибиться.

2) Написать кодер, использующий "инверсную" таблицу из вашей доки, опять же безо всякого параллелизма. Сравнить с образцовым.

3) Если правильно, добавить параллелизм (раз 4-8, больше не нужно).

С проблемой из первой половины поста вы разберётесь ещё когда будете делать первый пункт.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Vehfl   LDPC код из стандарта DVB-S2   Nov 13 2012, 10:33
- - Serg76   Цитата(Vehfl @ Nov 13 2012, 13:33) Есть п...   Nov 13 2012, 13:59
|- - Vehfl   Цитата(Serg76 @ Nov 13 2012, 17:59) Промо...   Nov 13 2012, 16:24
|- - Mogwaika   Цитата(Vehfl @ Nov 13 2012, 20:24) Случай...   Nov 13 2012, 16:49
|- - Serg76   Цитата(Vehfl @ Nov 13 2012, 19:24) У меня...   Nov 13 2012, 17:18
- - Serg76   программная модель на C++. попробовал пару режимов...   Nov 13 2012, 16:30
- - slash_spb   У вас реализация с плавающей точкой? В реализациях...   Nov 15 2012, 15:49
|- - Serg76   Цитата(slash_spb @ Nov 15 2012, 19:49) У ...   Nov 15 2012, 16:52
|- - Vehfl   Цитата(slash_spb @ Nov 15 2012, 18:49) У ...   Nov 19 2012, 08:58
|- - slash_spb   Цитата(Vehfl @ Nov 19 2012, 11:58) Пожалу...   Nov 20 2012, 07:37
- - icyrock   Стандарт точен. Я сам проверял (у меня собственная...   Nov 19 2012, 08:44
- - Vehfl   Не могли бы поделиться алгоритмом декодирования ко...   Nov 22 2012, 13:03
|- - slash_spb   Цитата(Vehfl @ Nov 22 2012, 16:03) Не мог...   Nov 22 2012, 15:31
|- - Vehfl   Цитата(slash_spb @ Nov 22 2012, 18:31) Ва...   Nov 26 2012, 15:18
|- - Vehfl   Цитата(slash_spb @ Nov 22 2012, 18:31) Ал...   Nov 28 2012, 09:37
|- - slash_spb   Цитата(Vehfl @ Nov 28 2012, 12:37) Был бы...   Nov 29 2012, 14:47
|- - Vehfl   Цитата(slash_spb @ Nov 29 2012, 17:47) Не...   Nov 30 2012, 06:54
|- - slash_spb   Цитата(Vehfl @ Nov 30 2012, 09:54) Спасиб...   Nov 30 2012, 07:42
|- - Vehfl   Цитата(slash_spb @ Nov 30 2012, 10:42) Ду...   Nov 30 2012, 11:05
|- - slash_spb   Цитата(Vehfl @ Nov 30 2012, 14:05) Тогда ...   Dec 5 2012, 09:50
- - dimez   Могу выправить вам алгоритм и проконсультировать, ...   Nov 27 2012, 05:12
- - agate   А в RTL кто нибудь имеет DVB-S2 декодер?   Nov 30 2012, 02:42
- - Neznaika   Не стал открывать новую ветку. Встала задача по ре...   Jan 20 2014, 09:14
|- - Dr.Alex   Цитата(Neznaika @ Jan 20 2014, 13:14) Не ...   Jan 21 2014, 08:45
- - Serg76   Придется Вам еще почитать, потому как для этих код...   Jan 20 2014, 11:19
- - Neznaika   Я не против почитать, но было бы чего... Оперирова...   Jan 21 2014, 06:58
- - Serg76   Не надо, как говорится, рассказывать сказки, литер...   Jan 21 2014, 07:31
|- - SKov   Цитата(Dr.Alex @ Jan 22 2014, 02:00) ..эт...   Jan 22 2014, 12:57
|- - Dr.Alex   Цитата(SKov @ Jan 22 2014, 16:57) Интерес...   Jan 22 2014, 17:12
|- - SKov   Цитата(Dr.Alex @ Jan 22 2014, 21:12) Да х...   Jan 22 2014, 18:01
- - Neznaika   Спасибо) В целом стратегия понятна. Любопытно все-...   Jan 22 2014, 05:53
- - Neznaika   В процессе реализации кодера возник небольшой вопр...   Jan 28 2014, 08:37
|- - Dr.Alex   Эхе-хе.... Незнайка - Незнайка.. Откуда вы всё это...   Jan 28 2014, 20:14
- - Neznaika   Да-да) До вчерашнего вечера я думал что при 1/2 в...   Jan 29 2014, 06:13
|- - _Anatoliy   Цитата(Neznaika @ Jan 29 2014, 08:13) Пок...   Jan 29 2014, 07:01
|- - Neznaika   Цитата(_Anatoliy @ Jan 29 2014, 11:01) А ...   Jan 29 2014, 08:16
|- - _Anatoliy   Цитата(Neznaika @ Jan 29 2014, 10:16) Дей...   Jan 29 2014, 08:38
- - Serg76   Мдя..., это по нашему. Вместо того, чтобы изучить ...   Jan 29 2014, 07:14
|- - Dr.Alex   Присоединяюсь, в стандарте всё это есть. Кстати и ...   Jan 29 2014, 07:59
- - Neznaika   И снова здравствуйте! Были сделаны 2 варианта ...   Feb 19 2014, 09:06
|- - Maverick   Цитата(Neznaika @ Feb 19 2014, 11:06) И с...   Feb 19 2014, 09:22
- - andyp   Не знаток DVD-S2 кода, но: Shift Value с Figure ...   Feb 19 2014, 09:52
- - Neznaika   "The shuffling offsets and addresses ca...   Feb 19 2014, 11:07
- - andyp   Думал долго... Для меня тоже. Как работает shuffli...   Feb 19 2014, 21:36
|- - Dr.Alex   Цитата(andyp @ Feb 20 2014, 01:36) Думал ...   Feb 19 2014, 22:02
|- - andyp   Цитата(Dr.Alex @ Feb 20 2014, 02:02) Сове...   Feb 19 2014, 23:42
|- - Dr.Alex   Цитата(andyp @ Feb 20 2014, 03:42) Не уве...   Feb 20 2014, 00:00
|- - andyp   Цитата(Dr.Alex @ Feb 20 2014, 04:00) А ва...   Feb 20 2014, 10:26
- - Neznaika   Спасибо за ответы) Пока не верю в случайность чисе...   Feb 20 2014, 06:44
- - Neznaika   Всем привет! Подниму в очередной раз эту тему....   Jun 19 2014, 06:46
- - AspireSky   Добрый день уважаемые форумчане Помогите плиз.. с ...   Jun 29 2014, 11:21
|- - Maverick   Цитата(AspireSky @ Jun 29 2014, 14:21) До...   Jun 29 2014, 15:04
|- - AspireSky   Цитата(Maverick @ Jun 29 2014, 18:04) пос...   Jun 29 2014, 18:29
- - Neznaika   Всем привет! Подниму ка я снова эту тему. Сдел...   Dec 9 2014, 14:13
|- - Dr.Alex   Нет возможности (да наверно и необходимости) разби...   Dec 9 2014, 14:48
|- - petrov   Цитата(Neznaika @ Dec 9 2014, 17:13) Было...   Dec 9 2014, 14:51
- - Neznaika   В моделе на С++ я ко входному сигналу декодера доб...   Dec 10 2014, 06:41
|- - Dr.Alex   Цитата(Neznaika @ Dec 10 2014, 10:41) Воз...   Dec 10 2014, 07:08
|- - Neznaika   Цитата(Dr.Alex @ Dec 10 2014, 11:08) Заме...   Dec 10 2014, 07:49
|- - Dr.Alex   Цитата(Neznaika @ Dec 10 2014, 11:49) Кон...   Dec 10 2014, 09:09
|- - Neznaika   Цитата(Dr.Alex @ Dec 10 2014, 13:09) Мда,...   Dec 10 2014, 09:32
|- - Dr.Alex   Цитата(Neznaika @ Dec 10 2014, 13:32) раз...   Dec 10 2014, 09:44
|- - Neznaika   Цитата(Dr.Alex @ Dec 10 2014, 13:44) Непр...   Dec 10 2014, 10:40
|- - Dr.Alex   Да. Или проще —20log(sigma)   Dec 10 2014, 10:52
- - des00   в матлабе же есть DVB-S2 LDPC кодеры, собрать стен...   Dec 10 2014, 06:45
- - Tpeck   Всем доброго времени суток. Вот и меня настигла да...   Oct 5 2017, 15:36


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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 09:41
Рейтинг@Mail.ru


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