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

 
 
10 страниц V  < 1 2 3 4 > »   
Reply to this topicStart new topic
> Коды для восстановления ошибок, какой алгоритм применить?
i-mir
сообщение Nov 7 2011, 19:23
Сообщение #16


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

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



Цитата(GetSmart @ Nov 7 2011, 22:19) *
Там же ясно написано, что проблема с помехами (шумом?) в канале. Если они на уровне 4-ого бита, то хоть 20 битный АЦП ставь, пользы не будет.

Вопрос относительно "там" это где ?
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Nov 7 2011, 19:26
Сообщение #17


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(i-mir @ Nov 8 2011, 00:23) *
Вопрос относительно "там" это где ?

Чукча не читатель sm.gif
Цитата(777777 @ Nov 7 2011 @ 19:04)
Но вследствие помех в канале измерение иногда дает результат, отличающийся на единицу.

Очень предположительно, канал аналоговый. Или полуаналоговый. И ошибки аналоговые (+-1).
Вообще, подробности ТС зажал. Возможно подошли бы и другие методы повышения помехоустойчивости в аналоговом канале.

Сообщение отредактировал GetSmart - Nov 7 2011, 19:28


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 8 2011, 07:25
Сообщение #18


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

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



Про код Грэя не понял. В канале ж не передаются монотонные последовательности. Самые разные коды могут идти друг за другом. И кодировать разные состояния кодом Грэя не даст ничего.
А если не все коды используются (например, для 8-битовых, используются только 64), то можно, наоборот, увеличить кодовое расстояние, а не сводить его к 1.
Go to the top of the page
 
+Quote Post
des00
сообщение Nov 8 2011, 07:35
Сообщение #19


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

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



Цитата(ViKo @ Nov 8 2011, 01:25) *
Про код Грэя не понял. В канале ж не передаются монотонные последовательности. Самые разные коды могут идти друг за другом. И кодировать разные состояния кодом Грэя не даст ничего.

как не даст то ? в сабжевом примере, код из канала 1000, описывает 3 кода 0111/1000/1001 (4/0/1 битовая ошибка). в случае использования кода грея прием из канала 1000, даст 3 кода 0000/1000/1001 (всегда одна битовая ошибка или ошибок нет). и не важно что код немонотонный.


--------------------
Go to the top of the page
 
+Quote Post
Serg76
сообщение Nov 8 2011, 07:46
Сообщение #20


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

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



Цитата(ViKo @ Nov 8 2011, 10:25) *
Про код Грэя не понял. В канале ж не передаются монотонные последовательности. Самые разные коды могут идти друг за другом. И кодировать разные состояния кодом Грэя не даст ничего.
А если не все коды используются (например, для 8-битовых, используются только 64), то можно, наоборот, увеличить кодовое расстояние, а не сводить его к 1.

Конечно же даст. Основное правило построения кода Грея и заключается в том, что ошибка в декодировании соседнего символа приведет, как правило, к одиночной ошибке в битовой комбинации. Код Грея и отличается своей уникальностью, что не надо вводить дополнительно никакой избыточности.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 8 2011, 08:03
Сообщение #21


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

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



То, что описал ТС - это не ошибка в канале передачи, а ошибка измерения его телеметрии. Я так думаю. И кодируй их в чем попало, от этого ошибка не пропадет.
Цитата
ошибка в декодировании соседнего символа

Что есть "соседний" символ, если передается некий результат измерений? Сейчас 1000, в следующий момент 1010, 1100... Или в коде Грэя - какие-нибудь 1000, 1011, 0001... Совершенно не зависящие от слова к слову последовательности.

Если в канале часто случаются одиночные ошибки, эти ошибки могут появиться в любом бите слова (не обязательно в младшем, как написал ТС +-1). Они с равной вероятностью могут появиться в словах, закодированных в двоичном коде, или в коде Грэя.
Есть коды, обнаруживающие такие одиночные ошибки. Есть коды, исправляющие.
Go to the top of the page
 
+Quote Post
des00
сообщение Nov 8 2011, 08:11
Сообщение #22


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

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



Цитата(ViKo @ Nov 8 2011, 03:03) *
Или в коде Грэя - какие-нибудь 1000, 1011, 0001... Совершенно не зависящие от слова к слову последовательности.

Код
#  0 0000
#  1 0001
#  2 0011
#  3 0010
#  4 0110
#  5 0111
#  6 0101
#  7 0100
#  8 1100
#  9 1101
# 10 1111
# 11 1110
# 12 1010
# 13 1011
# 14 1001
# 15 1000


Цитата
Если в канале часто случаются одиночные ошибки, эти ошибки могут появиться в любом бите слова (не обязательно в младшем, как написал ТС +-1). Они с равной вероятностью могут появиться в словах, закодированных в двоичном коде, или в коде Грэя.

читали тему не винимательно, автор пришет источник этих ошибок, метод формирования и приема сигнала.


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


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

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



Цитата(des00 @ Nov 8 2011, 10:11) *
читали тему не винимательно, автор пришет источник этих ошибок, метод формирования и приема сигнала.

Если сигнал действительно практически неизменный (к примеру 1000), а из-за ошибки измерения может измениться (0111, 1001), то, наверное, оба эти значения для автора считаются неправильными. Ему нужно их "исправить"? Так просто найти разность между текущим значением и предыдущим (или усредненным). Вот и получится разница в 1. Дальше делайте, что хотите - отбрасывайте или используйте.

Могут ли такие ошибки (0111, 1001) с равной вероятностью появиться в самом канале связи? Сомнительно.
Если передавать в коде Грэя, эти ошибки измерения будут отличаться на один бит, согласен. Но это никак не уменьшает саму ошибку, не приближает к "истинному" значению. И не позволяет ее исправить.
Go to the top of the page
 
+Quote Post
Serg76
сообщение Nov 8 2011, 08:33
Сообщение #24


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

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



Цитата(ViKo @ Nov 8 2011, 11:03) *
То, что описал ТС - это не ошибка в канале передачи, а ошибка измерения его телеметрии. Я так думаю. И кодируй их в чем попало, от этого ошибка не пропадет.

Что есть "соседний" символ, если передается некий результат измерений? Сейчас 1000, в следующий момент 1010, 1100... Или в коде Грэя - какие-нибудь 1000, 1011, 0001... Совершенно не зависящие от слова к слову последовательности.

Если в канале часто случаются одиночные ошибки, эти ошибки могут появиться в любом бите слова (не обязательно в младшем, как написал ТС +-1). Они с равной вероятностью могут появиться в словах, закодированных в двоичном коде, или в коде Грэя.
Есть коды, обнаруживающие такие одиночные ошибки. Есть коды, исправляющие.

Сначала декодер демодулятора примет решение по переданным символам и при малом уровне шума в канале по максимальному правдоподобию с большой долей вероятности исказится ближайший к переданному символ. При этом неважно как кодировался сигнал - по амплитуде, частоте или фазе. Так вот в случае использования Грея эта ошибка в соседнем символе приведет уже к одиночной, а не групповой битовой ошибке, точно так как на рисунке des00. С одиночной ошибкой затем бороться проще.
Go to the top of the page
 
+Quote Post
777777
сообщение Nov 8 2011, 09:12
Сообщение #25


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

Группа: Участник
Сообщений: 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
Сообщение #26


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

Группа: Модераторы
Сообщений: 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
des00
сообщение Nov 8 2011, 09:23
Сообщение #27


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

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



Цитата(777777 @ Nov 8 2011, 04:12) *
Идея с переводом данных в код Грея + Хемминг конечно интересна, но сам код Хемминга требует большой избыточночти, с таким же успехом можно уменьшить число градаций амплитуды вдвое. Но обидно, что ошибка случаеся редко, одна на несколько десятков слов, а из-за этого не хочется уменьшать скорость в разы. Тогда уж лучше воспользоваться Ридом-Соломоном, для него даже есть исходники, настраивающиеся на разные размеры слов. Но я надеялся что если ошибка меняет значение слова на единицу, то может для такого случая есть коды с еще меньшей избыточностью.

накройте данные БЧХ укороченным кодом 240/224/2 исправит 2 битовых ошибки на блок в 240 бит. и реализуется просто.

ЗЫ. вот только синхронизацию декодера нужно будет сделать(в случае РС тоже самое).

Цитата(ViKo @ Nov 8 2011, 04:19) *
P.S. а про Грэя так и остался в непонятках. sad.gif

любой учебник по теории связи почитайте.


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


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

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



Цитата(des00 @ Nov 8 2011, 11:23) *
любой учебник по теории связи почитайте.

конретно?
Go to the top of the page
 
+Quote Post
des00
сообщение Nov 8 2011, 09:42
Сообщение #29


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

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



Цитата(ViKo @ Nov 8 2011, 03:25) *
конретно?

скляр/прокис/феер "цифровая связь"


--------------------
Go to the top of the page
 
+Quote Post
777777
сообщение Nov 8 2011, 09:50
Сообщение #30


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

Группа: Участник
Сообщений: 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

10 страниц V  < 1 2 3 4 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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