Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
Спецам по корректирующим кодам вопрос.
Отправлено
Xan 12 мая 2009, г. 14:02
Задача -- с младшенького микроконтроллера (пик16ф877а) хочется передавать через эфир инфу на комп. В обратном направлении - не.
Ессна, надо применить корректирующие коды -- милливатов мало, а шумов много.
Так как пик младшенький, то энкодер должен быть простым и жрущим мало памяти.
Попробовал три варианта кодирования с одинаковой избыточностью:
1. байт по спецтаблице преобразуется в 14-битное слово;
2. Рида-Соломона с 4-битными символами (8 данных, 6 чётности);
3. Рида-Соломона с 6-битными символами (32 данных, 24 чётности).
Пробовал таким образом:
Взял битовый массив длиной 336 бит.
В него укладываются 24 14-битных слова, или 6 блоков по второму варианту, или один блок по третьему.
Беру случайное число в диапазоне 0...335 и инвертирую в массиве бит с таким индексом. Это, якобы, случилась ошибка при передаче.
Теперь для всех трёх способов кодирования проверяю, не стала ли эта ошибка невосстановимой.
Потом беру следующее случайное число и порчу ещё один бит массива. Снова проверяю.
Когда один из способов даст сбой, запоминаю, при каком количестве плохих битов в массиве это случилось.
Когда все три способа ошиблись, чищу массив и начинаю сначала -- статистику набираю.
Ну и получаю интересный результат: первый способ внезапно оказался в 2...2.5 раза лучше Ридов-Соломонов.
В том смысле, что в _среднем_ он ошибается при 32.25 испорченных в массиве битах (BER = 0.096), а Риды-Соломоны при 12.75 и при 14.93.
Меня терзают смутные сомнения, правильно ли я делаю, использую массив ошибочных битов?
Составить ответ | Вернуться на конференцию.
Ответы
- Зато третий вариант _обнаруживает_ почти все ошибки. - SKov (12.05.2009, 20:06:23 62.182.93.238, пустое)
- Кто недавно занимался получением патента (в России) - подскажите. - SKov (12.05.2009, 20:00:31 62.182.93.238, 346 байт)
- есть подозрение, что для такого пакета и такого метода внесения ошибок сверточные коды - yes (12.05.2009, 18:45:35 89.175.180.242, 199 байт)
- А может - ну их в баню, эти корректирующие коды? Если (+): - argus98 (12.05.2009, 15:30:30 81.22.205.230, 436 байт)
- :-)))) Этакто сказал что ШПС избавляет от необходимости коррекции ошыбок? Данивжысть.. - Dr.Alex (12.05.2009, 23:59:9 193.19.83.15, пустое)
- Это ужасно сложно. :-)) 7 раз повторить бит еще проще, если никакой попутной синхронизации не надо:-) Для любителей - внутри чуток, не все, 41-разряядных кодов с уровнем боковиков АКФ не более 4 (уровень через запяту указал), баловался когда-то - -=ВН=- (12.05.2009, 16:08:12 217.23.20.86, 392 байт)
- Как то потрахавшись с подбором подходящих кодов шоб 1816ВЕ35 справлялся, принял единственно правильное решение покрутив настройку радиостанции поднял ширину полосы в полтора раза :) - Codavr (12.05.2009, 15:46:3 91.196.34.210, пустое)
- ;)+1 Есть в этом что-то... После ряда экспериментов пришёл к варианту Широтно-Модулированной кодировки (2/3 & 1/3 фиксированного Периода передаваемого значения бита). - Макаров (12.05.2009, 15:40:5 95.107.103.69, пустое)
- Обычно гораздо важнее не среднее число исправляемых битов, а минимаольное количество неисправляемых битов. - Oldring (12.05.2009, 14:59:40 85.141.197.250, 521 байт)
- Обсуждение кодирования без скорости в канале, уровня сигнал/шум и наличия других устройств в общем то бессмысленно. - Vladimir Ljaschko (12.05.2009, 14:41:12 93.85.17.16, пустое)
- Делать вам нечего, вот что! - vitalyn (12.05.2009, 14:35:5 192.168.1.101,217.117.85.104, 1136 байт, ссылка)
- РС эффективен при многоуровневой модуляции (4 битный, 6-ти и т.д.) а на 2-х уровневой и 1) способ достаточен. - ы (12.05.2009, 14:23:0 80.92.98.211, пустое)
- Дело не в коде, а в природе ошибок. Код подбирают под характерные ошибки. Лучше всего не имитируйте, а реально разнесите приемник - передатчик и набирайте статистику. Например, при бОльшей длине посылки вероятность правильного приема (с шумами) снижается, и пофиг какое кодирование. Может оказаться лучше просто посылать два блока подряд, но коротких. - Doppler (12.05.2009, 14:11:42 85.223.109.75, пустое)
- Всё правильно. У каждых кодов - своя область применимости. Коды БЧХ разумно применять только там, где ошибочные биты любят идти "гуськом", а там, где ошибочные биты распределены равномерно, БЧХ проигрывают. - Шунт_гороховый (12.05.2009, 14:09:24 93.80.211.6, пустое)