|
Оптимальные способы модуляции и кодирования для коротких пакетов |
|
|
|
Oct 26 2012, 13:17
|
Знающий
   
Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945

|
Стоит задача передавать пакеты размером 5-7 байт. Ключевое требование обеспечить максимальную помехоустойчивость и получить возможность работать при минимальных соотношениях энергии бита к энергии шума, обеспечив при этом максимальный радиус действия при минимальной мощности передатчика (батарейное питание), это ключевое требование. IEEE 802.15.4 читал, но идеалом его не считаю. Дан узкий диапазон (десятки kHz) поэтому склонен отказаться от использования DSSS, если кто-нибудь не переубедит меня в обратном  Думается, что на таких коротких пакетах использовать RS, LDPC или турбо-коды использовать нерационально. Вспоминается БЧХ. Может еще что-то подскажете, более эфективное. Возможность мягкого декодирования в приоритете. Насчет сверточного с прокалыванием (3/4) - думаю. По модуляции склоняемся к QPSK. О доступной комплектовке речь пока не идет, мыслим без ограничений  Будут рад если натолкнете меня на рассуждения в нужном русле. Спасибо!
Сообщение отредактировал _Макс - Oct 26 2012, 13:17
|
|
|
|
|
 |
Ответов
|
Oct 27 2012, 10:26
|
Знающий
   
Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945

|
Это реальный проект. Некоторый update по полосе канала - в ней я практически не ограничен, требование в 10kHz можно отодвинуть до 1MHz максимум, битрейт до 10-20кбит is Ok. Получается DSSS можно, вопрос в том, нужно ли. И что лучше, DSSS или турбо код 1/2, например. Последнее получается компактнее по частоте. Или и то, и другое. Сверточный код не хочу еще по той банальной причине, что от него всегда будет остаток равный длине кодера, увеличивается сообщение. Хотя его можно мягко декодировать, это радует. Насчет зависимости КПД передатчика от модуляции не знал. Спасибо, что напомнили. Почему-то к FSK у меня душа не лежит... Кажется по спектральной эффектности FSK-2 хуже. (Б. Скляра читал давно, обрывки воспоминаний вам выкладываю =) Да и нелинейные искажения там имеют место при модуляции. При QPSK можно поставить фильтр перед модулятором, чтобы сгладить переходы, хотя энергия бита при этом упадет. Да, в моих словах есть противоречия. Но как сказал коллега, тут нужно экспериментировать, подбирать, это правда. Приемо/передающий тракт можно составить из разных компонентов и у меня стоит задача, подобрать наиболее оптимальный набор сейчас. Конечно потом будут эксперименты. Но прежде, чем проектировать, нужно ориентироваться на что-то. Фокус один, обеспечить максимальнейший бюджет канала, просто невероятный, десятки километров при миливаттном передатчике в условиях NLOS
Сообщение отредактировал _Макс - Oct 27 2012, 10:28
|
|
|
|
|
Oct 27 2012, 11:21
|
Профессионал
    
Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775

|
Цитата(_Макс @ Oct 27 2012, 13:26)  Сверточный код не хочу еще по той банальной причине, что от него всегда будет остаток равный длине кодера, увеличивается сообщение. Хотя его можно мягко декодировать, это радует. Я думал об этом, когда предлагал Вам сверточный турбокод. возьмите циркулярный сверточный код, тогда не будет никакого хвостовика, правда процедуру кодирования надо 2 раза проводить, но думаю это не будет проблемой. кроме того, можно поиграться с длиной кодового ограничения для нужной помехоустойчивости (в пределах разумного, конечно, потому как сложность декодирования растет по экспоненте в зависимости от длины кодового ограничения), ну и плюс к этому куча разных алгоритмов мягкого декодирования.
|
|
|
|
|
Oct 27 2012, 11:55
|
Частый гость
 
Группа: Свой
Сообщений: 154
Регистрация: 5-01-05
Из: г. Зеленоград
Пользователь №: 1 817

|
Цитата(Serg76 @ Oct 27 2012, 15:21)  Я думал об этом, когда предлагал Вам сверточный турбокод. возьмите циркулярный сверточный код, тогда не будет никакого хвостовика, правда процедуру кодирования надо 2 раза проводить, но думаю это не будет проблемой. кроме того, можно поиграться с длиной кодового ограничения для нужной помехоустойчивости (в пределах разумного, конечно, потому как сложность декодирования растет по экспоненте в зависимости от длины кодового ограничения), ну и плюс к этому куча разных алгоритмов мягкого декодирования. Кодирование два раза проводить не надо, только декодирование. Время кодирования даже уменьшится. Навскидку, сверточный код со скоростью 1/2 и кодовым ограничением 9 будет достаточно простым и мощным. Все простые сверточные турбо-коды будут хуже и потянут за собой и всё остальное.
|
|
|
|
|
Oct 27 2012, 12:17
|
Профессионал
    
Группа: Участник
Сообщений: 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 байт, и все, ...какое ещё сверточный код ?! ну и что?
|
|
|
|
|
Oct 27 2012, 21:13
|
Частый гость
 
Группа: Свой
Сообщений: 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 бит для предложенного кода. Есть и другие ограничения, но, как мне кажется, проще промоделировать и определиться, задавшись целевыми потерями.
|
|
|
|
|
Oct 27 2012, 22:10
|
Профессионал
    
Группа: Участник
Сообщений: 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 делается так.
|
|
|
|
|
Oct 27 2012, 23:06
|
Частый гость
 
Группа: Свой
Сообщений: 154
Регистрация: 5-01-05
Из: г. Зеленоград
Пользователь №: 1 817

|
Цитата(Serg76 @ Oct 28 2012, 02:10)  да ничего я не путаю. напоминаю, что передача пакетная. для циркулярных сверточных кодов начальное и конечное состояния кодера совпадают, необходимо просто вычислить это правильное начальное состояние. это и делается в первом проходе кодирования при нулевом состоянии кодера и таблички, про которую Вы говорили. Теперь зная правильное начальное состояние, кодируем исходный пакет и получаем проверочную часть. В DVB-RCS делается так. Там же сверточный турбо-код, нет? Для него ситуация несколько сложнее, но и всё равно не требуется двух проходов, а только несколько больше полутора. Как кодируется обычный сверточный код за один проход - я написал. Подкину Вам материальчик, чтобы было понятнее.
|
|
|
|
Сообщений в этой теме
_Макс Оптимальные способы модуляции и кодирования для коротких пакетов 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|