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

 
 
> Коды для восстановления ошибок, какой алгоритм применить?
777777
сообщение Nov 6 2011, 08:43
Сообщение #1


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

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Телеметрия для передачи данных такова, что ошибочные слова в 99% случаев отличаются от истинных на +-1. Отклонение на большее число крайне редко и такие случаи можно не восстанавливать, а лишь сообщать об ошибке.

Какой алгоритм лучше применить для такого случая?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
i-mir
сообщение Nov 7 2011, 19:03
Сообщение #2


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

Группа: Свой
Сообщений: 197
Регистрация: 17-06-10
Из: Киев
Пользователь №: 57 986



Цитата(777777 @ Nov 7 2011, 19:04) *
При чем тут интеллект? Код передается как амплитуда одного периода синусоиды. имеется 16 градаций амплитуды и таким образом один период кодирует 4 бита. Но вследствие помех в канале измерение иногда дает результат, отличающийся на единицу.


Так отож. И при чем здесь кодирование? У вас проблемы с измерениями а не в канале связи.
Вы принципиально решаете не ту задачу. Лучше решить вопросы с 4-х битным АЦП.
А самый младший бит будет гулять - тут уж закон природы АЦП. Нужно 5 разрядов.
Go to the top of the page
 
+Quote Post
777777
сообщение Nov 8 2011, 09:12
Сообщение #3


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

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(i-mir @ Nov 7 2011, 23:03) *
Так отож. И при чем здесь кодирование? У вас проблемы с измерениями а не в канале связи.
Вы принципиально решаете не ту задачу. Лучше решить вопросы с 4-х битным АЦП.
А самый младший бит будет гулять - тут уж закон природы АЦП. Нужно 5 разрядов.

Не пытайтесь понять меня неправильно ©. Телеметрию канала я описал в сообщении #8. Амплитуда несущей синусоиды измеряется 14-разрдным АЦП с периодом 0.96 мкс, но в канале есть шумы, которые тоже измеряются в результате чего возникает ошибка.

Идея с переводом данных в код Грея + Хемминг конечно интересна, но сам код Хемминга требует большой избыточночти, с таким же успехом можно уменьшить число градаций амплитуды вдвое. Но обидно, что ошибка случаеся редко, одна на несколько десятков слов, а из-за этого не хочется уменьшать скорость в разы. Тогда уж лучше воспользоваться Ридом-Соломоном, для него даже есть исходники, настраивающиеся на разные размеры слов. Но я надеялся что если ошибка меняет значение слова на единицу, то может для такого случая есть коды с еще меньшей избыточностью.

Цитата(GetSmart @ Nov 7 2011, 23:26) *
Очень предположительно, канал аналоговый. Или полуаналоговый. И ошибки аналоговые (+-1).
Вообще, подробности ТС зажал.

Это не предположительно, это так и есть, написано об этом в сообщении #8
Цитата(GetSmart @ Nov 7 2011, 23:26) *
Возможно подошли бы и другие методы повышения помехоустойчивости в аналоговом канале.

Все резервы повышения на аналоговом уровне исчерпаны. Сигнал оцифровывается 16 раз за 15.84 мкс и из суммы квадратов извлекается квадратный корень. От количества отсчетов точность зависит очень сильно, но больше 16 я измерить уже не могу, имеющаяся аппаратура не позволяет. Поэтому остаются чисто математические методы.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 8 2011, 09:19
Сообщение #4


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(777777 @ Nov 8 2011, 11:12) *
Сигнал оцифровывается 16 раз за 15.84 мкс и из суммы квадратов извлекается квадратный корень.

А почему складываете квадраты, а не просто числа?
А результат измерения всегда будет скакать на 1, никакими способами от этого не избавиться, можно только сделать реже или чаще.
P.S. а про Грэя так и остался в непонятках. sad.gif
Тоже считаю, что проблема не в связи, а в измерении.

P.P.S. Добавьте бит четности, будете обнаруживать одиночную ошибку. И отбрасывать такой код.
Go to the top of the page
 
+Quote Post
777777
сообщение Nov 8 2011, 09:50
Сообщение #5


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

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(ViKo @ Nov 8 2011, 13:19) *
А почему складываете квадраты, а не просто числа?

Потому что только так можно измерить амплитуду синусоиды. Да еще чтобы полученное значение не зависело от положения первой точки.

Цитата(ViKo @ Nov 8 2011, 13:19) *
А результат измерения всегда будет скакать на 1, никакими способами от этого не избавиться, можно только сделать реже или чаще.

С чего бы ему скакать, если амплитуды дискретны и отстоят далеко? Только помеха может исказить сигнал.
Цитата(ViKo @ Nov 8 2011, 13:19) *
P.S. а про Грэя так и остался в непонятках. sad.gif

Если в кратце - код Хемминга позволяет исправить один испорченный бит. Код Грея позволяет превратить изменение числа на +-1 в изменение одного бита (и задача сводится к предыдущей как в анекдоте про чайник)

Цитата(ViKo @ Nov 8 2011, 13:19) *
P.P.S. Добавьте бит четности, будете обнаруживать одиночную ошибку. О отбрасывать такой код.

Это понятно, до этого так и делали. Но жалко выбрасывать целый пакет если в нем всего одна-две ошибки, да еще и отличающиеся всего на единицу.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 8 2011, 10:52
Сообщение #6


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(777777 @ Nov 8 2011, 11:50) *
Потому что только так можно измерить амплитуду синусоиды. Да еще чтобы полученное значение не зависело от положения первой точки.
С чего бы ему скакать, если амплитуды дискретны и отстоят далеко? Только помеха может исказить сигнал.

Там на картинке вы измеряете с интервалом 1/8 от периода, а пишете 1/4. Остальное правильно. А частота у вас известна точно?
Если амплитуды дискретны, и отстоят далеко, но попадают как раз на переход от одного кода к следующему (например, точно между 0111 и 1000), и от малейшего дуновения ветра выскакивает результат то один, то другой?
Усредните результат отдельных измерений амплитуды. Сложите 16 результатов и поделите на 16.

Еще раз про Грэя. sm.gif
Вы подменили двоичный код на код Грэя. Передали свой код Грэя. Вместо изменения (из-за ошибки, неважно какой, измерения, или в канале связи) 0111->1000 получили 0100->1100. И как вы обнаружите, что число неверное?

И вообще - ошибка на единицу младшего разряда - это и не ошибка даже, а основополагающее свойство цифровой природы!

Цитата(777777 @ Nov 8 2011, 11:50) *
Это понятно, до этого так и делали. Но жалко выбрасывать целый пакет если в нем всего одна-две ошибки, да еще и отличающиеся всего на единицу.

ЕМНИП, для исправления одиночной ошибки в 8-битовом слове нужно добавить еще 3 бита. Код Хэмминга.
Go to the top of the page
 
+Quote Post
des00
сообщение Nov 8 2011, 11:53
Сообщение #7


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

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



Цитата(ViKo @ Nov 8 2011, 05:52) *
Вы подменили двоичный код на код Грэя. Передали свой код Грэя. Вместо изменения (из-за ошибки, неважно какой, измерения, или в канале связи) 0111->1000 получили 0100->1100. И как вы обнаружите, что число неверное?

уже раза 3 писали что грея нужно использовать с корректирующим кодом.

Цитата
И вообще - ошибка на единицу младшего разряда - это и не ошибка даже, а основополагающее свойство цифровой природы!

это вообще не к месту.

Поиграю в телепата. У автора есть система связи.

формирователь пакетов -> бинарный маппер -> модулятор -> канал с АБГШ + наводки -> демодулятор -> жесткое решение -> бинарный демаппер -> приемник пакетов.

Иногда у него случаются ошибки в жестоком решении, которые приводят к тому, что вместо символа принимается его сосед. Именно символа, а не бита, цифрового кода АЦП и т.д.

Маппер/демаппер осуществляют преобразование двоичного кода в символы канала и наоборот. Для кодов со спектральной эффективностью выше 1 бита на символ(у автора 4 бита на символ), в общем случае, символьная ошибка != битовой ошибке. При используемом автором методе формирования символа (бинарный маппер), одиночная символьная ошибка(у автора принятие соседа) может дать 4 битовых ошибки. Поэтому лучше использовать вместо бинарного отображения, отображение по грею(кодер грея). В этом случае, при приеме соседнего символа (символьная ошибка), всегда будет 1 битовая ошибка. Но если ошибка в символе будет такова, что будет использован не соседний символ, а какой либо другой, то кол-во битовых ошибок будет больше.

А вот затем, эти битовые ошибки корректируются в декодере, с определенной исправляющей способностью. Осталось только выбрать алгоритм декодера. Читайте классиков.


--------------------
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 8 2011, 12:16
Сообщение #8


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата
Иногда у него случаются ошибки в жестоком решении, которые приводят к тому, что вместо символа принимается его сосед. Именно символа, а не бита, цифрового кода АЦП и т.д.

Вот это вы каким образом "стелепатировали", про соседа? Говорено было - ошибка на +-1. Именно про ошибку на единицу младшего разряда. "Число становится на единицу больше или меньше".
Вот если бы был канал связи, в котором наиболее вероятны ошибки, при которых принимается "сосед" из кодового множества, то ваши рассуждения имели бы правоту. Из постов топикстартера этого не видно.
По-моему, вы преувеличиваете техническую сложность канала связи 777777.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 777777   Коды для восстановления ошибок   Nov 6 2011, 08:43
- - Serg76   Цитата(777777 @ Nov 6 2011, 12:43) Телеме...   Nov 6 2011, 09:04
|- - 777777   Цитата(Serg76 @ Nov 6 2011, 13:04) Расшир...   Nov 7 2011, 09:40
|- - Serg76   Цитата(777777 @ Nov 7 2011, 12:40) Но они...   Nov 7 2011, 11:44
|- - 777777   Цитата(Serg76 @ Nov 7 2011, 15:44) Это ка...   Nov 7 2011, 12:15
|- - SKov   Цитата(777777 @ Nov 7 2011, 16:15) Да, но...   Nov 7 2011, 12:51
|- - des00   Цитата(777777 @ Nov 7 2011, 07:15) Да, но...   Nov 7 2011, 16:54
||- - GetSmart   Цитата(des00 @ Nov 7 2011, 21:54) код гре...   Nov 7 2011, 17:05
||- - des00   Цитата(GetSmart @ Nov 7 2011, 11:05) Я та...   Nov 7 2011, 17:12
|- - paskal   Цитата(777777 @ Nov 7 2011, 15:15) Да, но...   Nov 7 2011, 18:27
|- - Serg76   Цитата(777777 @ Nov 7 2011, 16:15) Да, но...   Nov 7 2011, 18:44
- - i-mir   Интерес вызывает именно Ваш канал передачи данных....   Nov 7 2011, 15:31
|- - 777777   Цитата(i-mir @ Nov 7 2011, 19:31) Ин...   Nov 7 2011, 16:04
|- - GetSmart   Цитата(i-mir @ Nov 8 2011, 00:03) Та...   Nov 7 2011, 19:19
||- - des00   Цитата(ViKo @ Nov 8 2011, 06:16) Вот это ...   Nov 8 2011, 12:27
||- - GetSmart   Цитата(ViKo @ Nov 8 2011, 17:16) Говорено...   Nov 8 2011, 12:27
|- - des00   Цитата(777777 @ Nov 8 2011, 04:12) Идея с...   Nov 8 2011, 09:23
|- - ViKo   Цитата(des00 @ Nov 8 2011, 11:23) любой у...   Nov 8 2011, 09:25
|- - des00   Цитата(ViKo @ Nov 8 2011, 03:25) конретно...   Nov 8 2011, 09:42
- - i-mir   Цитата(GetSmart @ Nov 7 2011, 22:19) Там ...   Nov 7 2011, 19:23
|- - GetSmart   Цитата(i-mir @ Nov 8 2011, 00:23) Во...   Nov 7 2011, 19:26
- - ViKo   Про код Грэя не понял. В канале ж не передаются мо...   Nov 8 2011, 07:25
|- - des00   Цитата(ViKo @ Nov 8 2011, 01:25) Про код ...   Nov 8 2011, 07:35
|- - Serg76   Цитата(ViKo @ Nov 8 2011, 10:25) Про код ...   Nov 8 2011, 07:46
- - ViKo   То, что описал ТС - это не ошибка в канале передач...   Nov 8 2011, 08:03
|- - des00   Цитата(ViKo @ Nov 8 2011, 03:03) Или в ко...   Nov 8 2011, 08:11
||- - ViKo   Цитата(des00 @ Nov 8 2011, 10:11) читали ...   Nov 8 2011, 08:31
|- - Serg76   Цитата(ViKo @ Nov 8 2011, 11:03) То, что ...   Nov 8 2011, 08:33
- - Fast   в лоб добавьте два бита, которые будут содержать р...   Nov 8 2011, 10:21
- - i-mir   Цитата(777777 @ Nov 8 2011, 12:12) Все ре...   Nov 8 2011, 10:24
|- - 777777   Цитата(i-mir @ Nov 8 2011, 14:24) Из...   Nov 8 2011, 11:34
- - Fast   p.s. аналогично, никогда не встречал, чтобы в цифр...   Nov 8 2011, 10:57
|- - Serg76   Цитата(Fast @ Nov 8 2011, 13:57) p.s. ана...   Nov 8 2011, 11:22
|- - Fast   Цитата(Serg76 @ Nov 8 2011, 15:22) Канал ...   Nov 8 2011, 11:59
- - Serg76   To 777777 Так все-таки какой длины пакеты? Иначе м...   Nov 8 2011, 12:12
|- - 777777   Цитата(Serg76 @ Nov 8 2011, 16:12) To 777...   Nov 8 2011, 12:38
|- - des00   Цитата(777777 @ Nov 8 2011, 06:38) Вообще...   Nov 8 2011, 12:43
||- - 777777   Цитата(des00 @ Nov 8 2011, 16:43) если за...   Nov 8 2011, 12:52
||- - des00   Цитата(777777 @ Nov 8 2011, 06:52) Что эт...   Nov 8 2011, 12:58
||- - 777777   Вот уж не думал что эта задача вызовет такой бурны...   Nov 8 2011, 18:08
||- - Fast   Цитата(777777 @ Nov 8 2011, 22:08) Как я ...   Nov 8 2011, 18:17
|||- - 777777   Цитата(Fast @ Nov 8 2011, 22:17) гораздо ...   Nov 8 2011, 18:26
|||- - Serg76   Цитата(777777 @ Nov 8 2011, 22:26) Что зн...   Nov 8 2011, 18:30
|||- - Fast   Цитата(777777 @ Nov 8 2011, 22:26) Что зн...   Nov 8 2011, 18:34
||- - Serg76   Цитата(777777 @ Nov 8 2011, 21:08) Как я ...   Nov 8 2011, 18:18
|- - ViKo   Т.е. 16-ю уровнями амплитуды некой несущей вы пере...   Nov 8 2011, 13:02
- - ViKo   Цитирую для телепатов дословно, сообщение №5: ...   Nov 8 2011, 12:32
|- - GetSmart   Цитата(ViKo @ Nov 8 2011, 17:32) Цитирую ...   Nov 8 2011, 12:35
|- - 777777   Цитата(ViKo @ Nov 8 2011, 16:32) Что ж вы...   Nov 8 2011, 12:46
- - Serg76   Есть длинные БЧХ с достаточной для Вашего случая к...   Nov 8 2011, 12:51
- - GetSmart   Осмелюсь предложить 4 битный FSK, который элемента...   Nov 8 2011, 12:59
|- - Serg76   Цитата(GetSmart @ Nov 8 2011, 15:59) Осме...   Nov 8 2011, 15:40
|- - 777777   Цитата(GetSmart @ Nov 8 2011, 16:59) Осме...   Nov 8 2011, 18:24
|- - Serg76   Цитата(777777 @ Nov 8 2011, 22:24) Если F...   Nov 8 2011, 18:26
|- - GetSmart   Цитата(777777 @ Nov 8 2011, 23:24) Если F...   Nov 8 2011, 18:29
|- - 777777   Цитата(GetSmart @ Nov 8 2011, 22:29) Да, ...   Nov 8 2011, 18:52
|- - Serg76   Цитата(777777 @ Nov 8 2011, 22:52) Пробов...   Nov 8 2011, 18:57
||- - 777777   Цитата(Serg76 @ Nov 8 2011, 22:57) ЧМ тео...   Nov 8 2011, 19:19
||- - Serg76   Цитата(777777 @ Nov 8 2011, 23:19) И след...   Nov 8 2011, 19:33
|- - GetSmart   Цитата(777777 @ Nov 8 2011, 23:52) Но из-...   Nov 8 2011, 18:57
|- - 777777   Цитата(GetSmart @ Nov 8 2011, 22:57) Нужн...   Nov 8 2011, 19:10
|- - GetSmart   Цитата(777777 @ Nov 9 2011, 00:06) Почему...   Nov 8 2011, 19:11
|- - Serg76   Цитата(777777 @ Nov 8 2011, 23:10) Насчет...   Nov 8 2011, 19:16
|- - GetSmart   Цитата(Serg76 @ Nov 9 2011, 00:16) синусо...   Nov 8 2011, 19:26
|- - des00   Цитата(GetSmart @ Nov 8 2011, 14:26) У не...   Nov 9 2011, 03:30
|- - 777777   Цитата(GetSmart @ Nov 8 2011, 23:26) У не...   Nov 9 2011, 05:18
- - i-mir   Цитата(777777 @ Nov 8 2011, 16:38) ... Вн...   Nov 8 2011, 15:09
|- - 777777   Цитата(i-mir @ Nov 8 2011, 19:09) А ...   Nov 8 2011, 18:35
- - Fast   перед всякими КАМами и ФСК неплохо бы прояснить, к...   Nov 8 2011, 16:36
|- - Serg76   Цитата(Fast @ Nov 8 2011, 19:36) неплохо ...   Nov 8 2011, 16:49
||- - Fast   Цитата(Serg76 @ Nov 8 2011, 20:49) А для ...   Nov 8 2011, 17:05
|- - GetSmart   Цитата(Fast @ Nov 8 2011, 21:36) перед вс...   Nov 8 2011, 16:58
|- - Serg76   Цитата(GetSmart @ Nov 8 2011, 20:58) ИМХО...   Nov 8 2011, 17:09
|- - Fast   Цитата(Serg76 @ Nov 8 2011, 21:09) А заче...   Nov 8 2011, 17:12
|- - Serg76   Цитата(Fast @ Nov 8 2011, 21:12) а зачем ...   Nov 8 2011, 17:21
|- - GetSmart   Цитата(Serg76 @ Nov 8 2011, 22:21) так и ...   Nov 8 2011, 17:29
|- - Serg76   Цитата(GetSmart @ Nov 8 2011, 20:29) Ошиб...   Nov 8 2011, 17:36
- - GetSmart   Ну прямо "Что? Где? Когда?" Аффтар...   Nov 8 2011, 17:23
|- - Serg76   Цитата(GetSmart @ Nov 8 2011, 21:23) Ну п...   Nov 8 2011, 17:27
- - GetSmart   Говорю же, FSK тудыть в качель. Никакого эквалайзе...   Nov 8 2011, 18:21
|- - Serg76   Цитата(GetSmart @ Nov 8 2011, 22:21) Гово...   Nov 8 2011, 18:23
- - Fast   только тут КАМ16 не спасет данные следуют со скоро...   Nov 8 2011, 18:39
|- - Serg76   Цитата(Fast @ Nov 8 2011, 22:39) только т...   Nov 8 2011, 18:50
|- - Fast   Цитата(Serg76 @ Nov 8 2011, 22:50) Что-то...   Nov 8 2011, 19:06
- - Fast   777777, с какой частотой необходимо оценивать ...   Nov 8 2011, 19:28
|- - 777777   Цитата(Fast @ Nov 8 2011, 23:28) 777777, ...   Nov 9 2011, 05:40
|- - des00   Цитата(777777 @ Nov 9 2011, 00:40) Хотело...   Nov 9 2011, 05:56
|- - Fast   Цитата(777777 @ Nov 9 2011, 09:40) Не пон...   Nov 9 2011, 08:32
|- - 777777   Цитата(Fast @ Nov 9 2011, 12:32) спасибо,...   Nov 9 2011, 09:05
- - Serg76   Поддерживаю des00, выше об этом уже писал. Может, ...   Nov 9 2011, 05:12
- - Serg76   777777 у Вас минимальное расстояние Хемминга при п...   Nov 9 2011, 05:34
- - Serg76   Fast если при нынешнем плачевном положении дел воз...   Nov 9 2011, 08:44
- - Fast   Цитата(Serg76 @ Nov 9 2011, 12:44) Fast е...   Nov 9 2011, 09:06
2 страниц V   1 2 >


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

 


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


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