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

 
 
> Оптимальные способы модуляции и кодирования для коротких пакетов
_Макс
сообщение Oct 26 2012, 13:17
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945



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

IEEE 802.15.4 читал, но идеалом его не считаю. Дан узкий диапазон (десятки kHz) поэтому склонен отказаться от использования DSSS, если кто-нибудь не переубедит меня в обратном sm.gif

Думается, что на таких коротких пакетах использовать RS, LDPC или турбо-коды использовать нерационально. Вспоминается БЧХ. Может еще что-то подскажете, более эфективное. Возможность мягкого декодирования в приоритете. Насчет сверточного с прокалыванием (3/4) - думаю.

По модуляции склоняемся к QPSK.

О доступной комплектовке речь пока не идет, мыслим без ограничений sm.gif

Будут рад если натолкнете меня на рассуждения в нужном русле. Спасибо!

Сообщение отредактировал _Макс - Oct 26 2012, 13:17
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_Макс
сообщение Oct 27 2012, 10:26
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945



Это реальный проект.

Некоторый update по полосе канала - в ней я практически не ограничен, требование в 10kHz можно отодвинуть до 1MHz максимум, битрейт до 10-20кбит is Ok. Получается DSSS можно, вопрос в том, нужно ли. И что лучше, DSSS или турбо код 1/2, например. Последнее получается компактнее по частоте. Или и то, и другое.

Сверточный код не хочу еще по той банальной причине, что от него всегда будет остаток равный длине кодера, увеличивается сообщение. Хотя его можно мягко декодировать, это радует.

Насчет зависимости КПД передатчика от модуляции не знал. Спасибо, что напомнили. Почему-то к FSK у меня душа не лежит... Кажется по спектральной эффектности FSK-2 хуже. (Б. Скляра читал давно, обрывки воспоминаний вам выкладываю =) Да и нелинейные искажения там имеют место при модуляции. При QPSK можно поставить фильтр перед модулятором, чтобы сгладить переходы, хотя энергия бита при этом упадет.

Да, в моих словах есть противоречия. Но как сказал коллега, тут нужно экспериментировать, подбирать, это правда. Приемо/передающий тракт можно составить из разных компонентов и у меня стоит задача, подобрать наиболее оптимальный набор сейчас. Конечно потом будут эксперименты. Но прежде, чем проектировать, нужно ориентироваться на что-то.

Фокус один, обеспечить максимальнейший бюджет канала, просто невероятный, десятки километров при миливаттном передатчике в условиях NLOS rolleyes.gif

Сообщение отредактировал _Макс - Oct 27 2012, 10:28
Go to the top of the page
 
+Quote Post
Serg76
сообщение Oct 27 2012, 11:21
Сообщение #3


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

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



Цитата(_Макс @ Oct 27 2012, 13:26) *
Сверточный код не хочу еще по той банальной причине, что от него всегда будет остаток равный длине кодера, увеличивается сообщение. Хотя его можно мягко декодировать, это радует.

Я думал об этом, когда предлагал Вам сверточный турбокод. возьмите циркулярный сверточный код, тогда не будет никакого хвостовика, правда процедуру кодирования надо 2 раза проводить, но думаю это не будет проблемой. кроме того, можно поиграться с длиной кодового ограничения для нужной помехоустойчивости (в пределах разумного, конечно, потому как сложность декодирования растет по экспоненте в зависимости от длины кодового ограничения), ну и плюс к этому куча разных алгоритмов мягкого декодирования.
Go to the top of the page
 
+Quote Post
Grumbler_2002
сообщение Oct 27 2012, 11:55
Сообщение #4


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

Группа: Свой
Сообщений: 154
Регистрация: 5-01-05
Из: г. Зеленоград
Пользователь №: 1 817



Цитата(Serg76 @ Oct 27 2012, 15:21) *
Я думал об этом, когда предлагал Вам сверточный турбокод. возьмите циркулярный сверточный код, тогда не будет никакого хвостовика, правда процедуру кодирования надо 2 раза проводить, но думаю это не будет проблемой. кроме того, можно поиграться с длиной кодового ограничения для нужной помехоустойчивости (в пределах разумного, конечно, потому как сложность декодирования растет по экспоненте в зависимости от длины кодового ограничения), ну и плюс к этому куча разных алгоритмов мягкого декодирования.


Кодирование два раза проводить не надо, только декодирование. Время кодирования даже уменьшится. Навскидку, сверточный код со скоростью 1/2 и кодовым ограничением 9 будет достаточно простым и мощным. Все простые сверточные турбо-коды будут хуже и потянут за собой и всё остальное.
Go to the top of the page
 
+Quote Post
Serg76
сообщение Oct 27 2012, 12:17
Сообщение #5


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

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



Цитата(Grumbler_2002 @ Oct 27 2012, 14:55) *
Кодирование два раза проводить не надо, только декодирование. Время кодирования даже уменьшится. Навскидку, сверточный код со скоростью 1/2 и кодовым ограничением 9 будет достаточно простым и мощным. Все простые сверточные турбо-коды будут хуже и потянут за собой и всё остальное.

именно кодирование, сначала для вычисления состояния регистра кодера, а затем для получения проверочной части.

Цитата(Aner @ Oct 27 2012, 15:07) *
пакеты то размером 5-7 байт, и все, ...какое ещё сверточный код ?!

ну и что?
Go to the top of the page
 
+Quote Post
Grumbler_2002
сообщение Oct 27 2012, 21:13
Сообщение #6


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

Группа: Свой
Сообщений: 154
Регистрация: 5-01-05
Из: г. Зеленоград
Пользователь №: 1 817



Цитата(Serg76 @ Oct 27 2012, 16:17) *
именно кодирование, сначала для вычисления состояния регистра кодера, а затем для получения проверочной части.


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

При декодировании обычно первые L бит, где L - глубина декодирования, декодируются дважды, чтобы получить последние L бит информации, пользуясь закольцованностью решетки. Таким образом, длина пакета ограничивается снизу глубиной декодирования, которая зависит от относительной скорости кода и кодового ограничения. Для 1/2 и К<=9 это обычно 4-6К, то есть примерно от 36 бит для предложенного кода. Есть и другие ограничения, но, как мне кажется, проще промоделировать и определиться, задавшись целевыми потерями.
Go to the top of the page
 
+Quote Post
Serg76
сообщение Oct 27 2012, 22:10
Сообщение #7


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

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



Цитата(Grumbler_2002 @ Oct 28 2012, 00:13) *
Вы что-то путаете. При кодировании первые К-1 бит образуют начальное состояние кодера. После кодирования бит с К-го по N-ый по текущему и начальному состоянию кодера выбираем из таблицы значение оставшихся К-1 бит. Кодируем этот остаток и получаем закольцованную решетку. Таким образом, время кодирования уменьшается на К-1 бит по сравнению с приведением кодера в фиксированное известное состояние.

При декодировании обычно первые L бит, где L - глубина декодирования, декодируются дважды, чтобы получить последние L бит информации, пользуясь закольцованностью решетки. Таким образом, длина пакета ограничивается снизу глубиной декодирования, которая зависит от относительной скорости кода и кодового ограничения. Для 1/2 и К<=9 это обычно 4-6К, то есть примерно от 36 бит для предложенного кода. Есть и другие ограничения, но, как мне кажется, проще промоделировать и определиться, задавшись целевыми потерями.

да ничего я не путаю. напоминаю, что передача пакетная. для циркулярных сверточных кодов начальное и конечное состояния кодера совпадают, необходимо просто вычислить это правильное начальное состояние. это и делается в первом проходе кодирования при нулевом состоянии кодера и таблички, про которую Вы говорили. Теперь зная правильное начальное состояние, кодируем исходный пакет и получаем проверочную часть. В DVB-RCS делается так.
Go to the top of the page
 
+Quote Post
Grumbler_2002
сообщение Oct 27 2012, 23:06
Сообщение #8


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

Группа: Свой
Сообщений: 154
Регистрация: 5-01-05
Из: г. Зеленоград
Пользователь №: 1 817



Цитата(Serg76 @ Oct 28 2012, 02:10) *
да ничего я не путаю. напоминаю, что передача пакетная. для циркулярных сверточных кодов начальное и конечное состояния кодера совпадают, необходимо просто вычислить это правильное начальное состояние. это и делается в первом проходе кодирования при нулевом состоянии кодера и таблички, про которую Вы говорили. Теперь зная правильное начальное состояние, кодируем исходный пакет и получаем проверочную часть. В DVB-RCS делается так.


Там же сверточный турбо-код, нет? Для него ситуация несколько сложнее, но и всё равно не требуется двух проходов, а только несколько больше полутора. Как кодируется обычный сверточный код за один проход - я написал. Подкину Вам материальчик, чтобы было понятнее.
Прикрепленные файлы
Прикрепленный файл  TurboTB_Ref4.pdf ( 88.32 килобайт ) Кол-во скачиваний: 733
 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- _Макс   Оптимальные способы модуляции и кодирования для коротких пакетов   Oct 26 2012, 13:17
- - Serg76   Цитата(_Макс @ Oct 26 2012, 16:17) Стоит ...   Oct 26 2012, 13:52
|- - _Макс   Цитата(Serg76 @ Oct 26 2012, 16:52) почем...   Oct 26 2012, 15:09
|- - petrov   Цитата(_Макс @ Oct 26 2012, 19:09) 10-12 ...   Oct 26 2012, 15:37
|- - Serg76   Цитата(_Макс @ Oct 26 2012, 18:09) Если к...   Oct 26 2012, 16:17
- - Aner   Вроде правильно мыслите, ... например GFSK, возмож...   Oct 26 2012, 15:18
|- - _Макс   Цитата(Aner @ Oct 26 2012, 18:18) Вроде п...   Oct 26 2012, 15:25
|- - Serg76   Цитата(_Макс @ Oct 26 2012, 18:25) Думает...   Oct 26 2012, 19:25
- - alexPec   Цитата(_Макс @ Oct 26 2012, 17:17) Стоит ...   Oct 26 2012, 21:01
- - Aner   Кодирование, сверточный турбокод, широкополосность...   Oct 26 2012, 21:15
|- - Serg76   Цитата(Aner @ Oct 27 2012, 00:15) Важен в...   Oct 27 2012, 07:41
- - Aner   Да согласен, что QPSK можно назвать не очень удачн...   Oct 27 2012, 09:45
||- - Serg76   Цитата(Grumbler_2002 @ Oct 28 2012, 02:06...   Oct 28 2012, 07:47
||- - Grumbler_2002   Цитата(Serg76 @ Oct 28 2012, 11:47) Да, т...   Oct 28 2012, 22:25
||- - Serg76   Цитата(Grumbler_2002 @ Oct 29 2012, 01:25...   Oct 29 2012, 07:14
|- - Serg76   Цитата(_Макс @ Oct 27 2012, 13:26) Насчет...   Oct 27 2012, 13:43
|- - _Макс   Цитата(Serg76 @ Oct 27 2012, 16:43) Для Q...   Oct 27 2012, 14:49
|- - Serg76   Цитата(_Макс @ Oct 27 2012, 17:49) Я всеж...   Oct 27 2012, 14:58
|- - AFK   Цитата(_Макс @ Oct 27 2012, 17:49) Я всеж...   Oct 27 2012, 20:40
- - Aner   Если это реальный проект, то и опираться надо на р...   Oct 27 2012, 11:05
|- - _Макс   Цитата(Aner @ Oct 27 2012, 14:05) ... дес...   Oct 27 2012, 13:13
|- - Aner   QUOTE (_Макс @ Oct 27 2012, 16:13) Голова...   Oct 27 2012, 16:10
- - Aner   пакеты то размером 5-7 байт, и все, ...какое ещё ...   Oct 27 2012, 12:07
- - _Макс   Цитата(Grumbler_2002 @ Oct 27 2012, 14:55...   Oct 27 2012, 12:52
- - Serg76   Цитата(_Макс @ Oct 27 2012, 15:52) Мне ка...   Oct 27 2012, 12:56


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

 


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


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