Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Нужна помощь с алгоритмом коррекции ошибок
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
Unfog
Здравствуйте!
К сожалению, сам не силен в алгоритмах 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
возможных двойных битовых ошибок


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

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

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

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

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

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

Код Хемминга - систематический, как правило, сначала передаются информационные биты (20 бит), затем проверочная часть (5 бит), если не определено другое. В Вашем случае именно так и есть. Для декодирования достаточно будет приведенной Вами матрицы четности, она же проверочная, только ее надо еще дополнить справа единичной диагональной размером [5х5].
Fat Robot
в командной строке матлаба нужно набрать

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).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.