Перейти к содержанию
    

Без обратного элемента - это хорошо, но не всегда подходит. Часто заказчик требует

особо быстрого декодирования 1-2 ошибок, а там без обратного элемента не получается.

 

Я делал на 12 ошибок - алгоритм БМ без обратного элелемнта в GF(2^13)

алгоритм RiBM вычислял коэф. за 24 такта, SiBM вычислил бы за 12 тактов, но чёто у меня не получилось его реализовать

 

Для 1-2 ошибок Хемминг лучше

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос ко всем. А вы память используете?

 

нет - всё на логике и сдвиговых регистрах

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я делал на 12 ошибок - алгоритм БМ без обратного элелемнта в GF(2^13)

алгоритм RiBM вычислял коэф. за 24 такта, SiBM вычислил бы за 12 тактов, но чёто у меня не получилось его реализовать

если я правильно понял, то БМ по 4 такта на цикл. использовали умножители в GF за такт?

 

ЗЫ. Классический алгоритм БМ, приведенный у блейхута это RiBM или SiBM?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для 1-2 ошибок Хемминг лучше

:biggrin:

Вы не поняли. Декодер исправляет, например, до 12 ошибок, но на декодирование 12 ошибок требует, например, 1000 тактов,

а для 2-х ошибок - только 100. А для одной - 30.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

... использовали умножители в GF за такт?

 

Да - за один такт. Сделаны на логике - для некоторых видов порождающих полиномов есть очень простое решение (статейку на эту тему я приводил)

 

ЗЫ. Классический алгоритм БМ, приведенный у блейхута это RiBM или SiBM?

У него iBM вроде =)

 

Если сравнивать аппаратные затраты и скорость вычислений для этих 3х алгоритмов - то тут данные такие:

t - исправляющая способность кода; GFA - сумматор в GF; GFM - умножитель в GF; MUX - мультиплексор; REG - регистр; Cycle - число тактов для вычисления коэф-тов

 

iBM -> GFA: 2t+1 GFM: 3+3 REG: 4t+4 MUX: t+1 Cycle: 3t

RiBM -> GFA: 3t+1 GFM: 6t+2 REG: 6t+2 MUX: 3t+1 Cycle: 2t

SiBM -> GFA: 2t GFM: 4t REG: 2t+1 MUX: 2t Cycle: t

Изменено пользователем Mikhalych

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

алгоритм RiBM вычислял коэф. за 24 такта, SiBM вычислил бы за 12 тактов, но чёто у меня не получилось его реализовать

либо я тупой, либо одно из двух :crying: в статьях выложенных выше приведены 4 варианта алгоритма SiBM. Но все они разные. В целях пристрелки реализовал один в один 3 штуки ни один не работает(причем в одном алгоритме была ошибка). Детальное исполнение алгоритма на бумажке показывает что косяков в реализации нет, но алгоритм не работает %)

Может быть у кого нить есть статья с описанием SiBM который приведен без ошибок?

 

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

либо я тупой, либо одно из двух

Отбой, все получилось, слишком невнимательно курил доки %)

Есть еще такой вопрос, в алгоритмах iBM, rIBM, sIBM отсутствует проверка корректности полинома локатора ошибок (deg(Lambda(x)) == L) ? значит ли это, что вся нагрузка на определение корректности полинома ложиться на ченя?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гуру кодирования прошу вашей помощи. Как поступают в том случае если число ошибок больше корректирующей способности БЧХ кода, а декодер считает что количество ошибок равно t и что-то исправляет?

Пример такого количества и местоположения ошибок для кода 15,5,7 в приложении.

bch_feature.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гуру кодирования прошу вашей помощи. Как поступают в том случае если число ошибок больше корректирующей способности БЧХ кода, а декодер считает что количество ошибок равно t и что-то исправляет?

 

ИМХО это нормальная ситуация, графики BER для кодированной и не кодированной модуляции пересекаются в области высокой вероятности ошибки, и не кодированная передача становится лучше, а в кодированной происходит размножение ошибок, шум превышает расстояние евклида или хемминга до границы принятия решения и декодер начинает принимать за истинные другие кодовые слова.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ИМХО это нормальная ситуация, графики BER для кодированной и не кодированной модуляции пересекаются в области высокой вероятности ошибки, и не кодированная передача становится лучше, а в кодированной происходит размножение ошибок, шум превышает расстояние евклида или хемминга до границы принятия решения и декодер начинает принимать за истинные другие кодовые слова.

то что ситуация обычная это понятно, но ведь должен же существовать какой то способ, для определения того, что ошибок больше чем корректирующая способность(t)? На степень полинома локаторов надежды нет, т.к. он, алгоритмически ограничен t, поиск корней полинома тоже может дать сбой (как в этом примере). Вот мне и интересно, как определить что ошибок больше чем нужно и выдать сигнал decfailed, вместо мусора %)

 

По идее можно бы воспользоваться свойством вырождения матрицы синдромов, но считать детерминант на лету, не есть гуд. Еще нашел в блейхуте что можно вычислить спектр кода, но вот пока еще неясно как и даст ли это результат.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот мне и интересно, как определить что ошибок больше чем нужно и выдать сигнал decfailed, вместо мусора %)

может CRC считать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

может CRC считать?

это для протокола более высокого уровня, мне нужно другое %)

 

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

да и не получится так, потому что синдром по определению определен на множестве элементов alpha^1 ...alpha^2t.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

это для протокола более высокого уровня, мне нужно другое %)

а если сделать декодер на t+1 ошибку... и если ошибок t и меньше - то всё хорошо, а если t+1 - то недоверяем и говорим decfailed?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

то что ситуация обычная это понятно, но ведь должен же существовать какой то способ, для определения того, что ошибок больше чем корректирующая способность(t)? На степень полинома локаторов надежды нет, т.к. он, алгоритмически ограничен t, поиск корней полинома тоже может дать сбой (как в этом примере). Вот мне и интересно, как определить что ошибок больше чем нужно и выдать сигнал decfailed, вместо мусора %)

 

ИМХО не должен, если только дополнительную избыточность на это тратить.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...