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

 
 
 
Reply to this topicStart new topic
> Нужна помощь с алгоритмом коррекции ошибок, Нужно распознать/разобраться в алгоритме
Unfog
сообщение Feb 18 2015, 12:57
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 20-05-12
Из: Санкт-Петербург
Пользователь №: 71 932



Здравствуйте!
К сожалению, сам не силен в алгоритмах FEC, однако нужно понять, с чем имею дело.

Описание алгоритма:
Цитата
FEC установочной последовательности вычисляется по
полям SSID и длины передачи с использованием (25, 20) блочного кода согласно следующему уравнению:

[P1, ..., P5] = [SSID1, ..., SSID3, TL1, ..., TL17] HT,

где Рn – n-й бит FEC установочной последовательности (Р1 передается первым);
SSIDn – n-й бит идентификатора временного интервала станции (SSID = LSB); Приложение 10. Авиационная электросвязь Том I
TLn – n-й бит в длине передачи (TL1 = LSB);
HT – результат транспонирования матрицы четности, определенной ниже:
1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 0 1 1 0
1 1 0 0 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 1
1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 0 1 1
1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0
1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0

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


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

Сообщение отредактировал Unfog - Feb 18 2015, 12:57
Go to the top of the page
 
+Quote Post
Serg76
сообщение Feb 18 2015, 14:45
Сообщение #2


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

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



Цитата(Unfog @ Feb 18 2015, 16:57) *
Собственно интересно как называется данный алгоритм, и по какому алгоритму возможно восстановление ошибок.

Скорее всего, это укороченный код Хемминга от полного (31, 26), декодировать можно по синдрому, синдром равен номеру позиции, в которой произошла ошибка.
Go to the top of the page
 
+Quote Post
Unfog
сообщение Feb 19 2015, 08:06
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 20-05-12
Из: Санкт-Петербург
Пользователь №: 71 932



Похоже, но не уверен.
Данные передаются в эфире в следующем виде:
Идентификатор временного интервала станции (SSID) 3 бита
Длина передачи (бит) 17 бит
FEC установочной последовательности 5 бит

А в кодах Хемминга контрольные биты вставляются в места 1, 2, 4 и т. д.

Также мне непонятно как тут определить матрицу для обратного преобразования (число столбцов должно быть 25).
Go to the top of the page
 
+Quote Post
Unfog
сообщение Feb 19 2015, 09:27
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 20-05-12
Из: Санкт-Петербург
Пользователь №: 71 932



Все, разобрались, спасибо за помощь!
Это действительно Хемминг, в конец матрицы нужно единичную дописать, и все работает.
Go to the top of the page
 
+Quote Post
Serg76
сообщение Feb 19 2015, 09:30
Сообщение #5


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

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



Цитата(Unfog @ Feb 19 2015, 12:06) *
Похоже, но не уверен.
Данные передаются в эфире в следующем виде:
Идентификатор временного интервала станции (SSID) 3 бита
Длина передачи (бит) 17 бит
FEC установочной последовательности 5 бит

А в кодах Хемминга контрольные биты вставляются в места 1, 2, 4 и т. д.

Также мне непонятно как тут определить матрицу для обратного преобразования (число столбцов должно быть 25).

Код Хемминга - систематический, как правило, сначала передаются информационные биты (20 бит), затем проверочная часть (5 бит), если не определено другое. В Вашем случае именно так и есть. Для декодирования достаточно будет приведенной Вами матрицы четности, она же проверочная, только ее надо еще дополнить справа единичной диагональной размером [5х5].
Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Feb 19 2015, 09:48
Сообщение #6


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



в командной строке матлаба нужно набрать

doc syndtable

и посмотреть пример. В примере взята parity check matrix для кода Хэмминга. Для вашего случая нужно взять матрицу проверок на четность для вашего кода.

Я немного "провисаю" в отечественной терминологии, поэтому предположу 2 возможных варианта преобразования вашей матрицы HT в parity check matrix

parmat = [eye(5), HT]
или
parmat = gen2par( [HT', eye(20)] )

В документации матлаба есть ссылки на литературу.

Пока писал, уже всё прояснилось, хвала Святому Януарию.

Цитата(Unfog @ Feb 19 2015, 09:06) *
Также мне непонятно как тут определить матрицу для обратного преобразования (число столбцов должно быть 25).
Go to the top of the page
 
+Quote Post

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

 


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


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