SuperFly 0 28 сентября, 2010 Опубликовано 28 сентября, 2010 · Жалоба Без обратного элемента - это хорошо, но не всегда подходит. Часто заказчик требует особо быстрого декодирования 1-2 ошибок, а там без обратного элемента не получается. Я делал на 12 ошибок - алгоритм БМ без обратного элелемнта в GF(2^13) алгоритм RiBM вычислял коэф. за 24 такта, SiBM вычислил бы за 12 тактов, но чёто у меня не получилось его реализовать Для 1-2 ошибок Хемминг лучше Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x736C 0 28 сентября, 2010 Опубликовано 28 сентября, 2010 · Жалоба Вопрос ко всем. А вы память используете? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SuperFly 0 28 сентября, 2010 Опубликовано 28 сентября, 2010 · Жалоба Вопрос ко всем. А вы память используете? нет - всё на логике и сдвиговых регистрах Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 28 сентября, 2010 Опубликовано 28 сентября, 2010 · Жалоба Я делал на 12 ошибок - алгоритм БМ без обратного элелемнта в GF(2^13) алгоритм RiBM вычислял коэф. за 24 такта, SiBM вычислил бы за 12 тактов, но чёто у меня не получилось его реализовать если я правильно понял, то БМ по 4 такта на цикл. использовали умножители в GF за такт? ЗЫ. Классический алгоритм БМ, приведенный у блейхута это RiBM или SiBM? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SKov 0 28 сентября, 2010 Опубликовано 28 сентября, 2010 · Жалоба Для 1-2 ошибок Хемминг лучше Вы не поняли. Декодер исправляет, например, до 12 ошибок, но на декодирование 12 ошибок требует, например, 1000 тактов, а для 2-х ошибок - только 100. А для одной - 30. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SuperFly 0 28 сентября, 2010 Опубликовано 28 сентября, 2010 (изменено) · Жалоба ... использовали умножители в 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 Изменено 28 сентября, 2010 пользователем Mikhalych Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 1 октября, 2010 Опубликовано 1 октября, 2010 · Жалоба алгоритм RiBM вычислял коэф. за 24 такта, SiBM вычислил бы за 12 тактов, но чёто у меня не получилось его реализовать либо я тупой, либо одно из двух :crying: в статьях выложенных выше приведены 4 варианта алгоритма SiBM. Но все они разные. В целях пристрелки реализовал один в один 3 штуки ни один не работает(причем в одном алгоритме была ошибка). Детальное исполнение алгоритма на бумажке показывает что косяков в реализации нет, но алгоритм не работает %) Может быть у кого нить есть статья с описанием SiBM который приведен без ошибок? Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 2 октября, 2010 Опубликовано 2 октября, 2010 · Жалоба либо я тупой, либо одно из двух Отбой, все получилось, слишком невнимательно курил доки %) Есть еще такой вопрос, в алгоритмах iBM, rIBM, sIBM отсутствует проверка корректности полинома локатора ошибок (deg(Lambda(x)) == L) ? значит ли это, что вся нагрузка на определение корректности полинома ложиться на ченя? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 4 октября, 2010 Опубликовано 4 октября, 2010 · Жалоба Гуру кодирования прошу вашей помощи. Как поступают в том случае если число ошибок больше корректирующей способности БЧХ кода, а декодер считает что количество ошибок равно t и что-то исправляет? Пример такого количества и местоположения ошибок для кода 15,5,7 в приложении. bch_feature.zip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 7 4 октября, 2010 Опубликовано 4 октября, 2010 · Жалоба Гуру кодирования прошу вашей помощи. Как поступают в том случае если число ошибок больше корректирующей способности БЧХ кода, а декодер считает что количество ошибок равно t и что-то исправляет? ИМХО это нормальная ситуация, графики BER для кодированной и не кодированной модуляции пересекаются в области высокой вероятности ошибки, и не кодированная передача становится лучше, а в кодированной происходит размножение ошибок, шум превышает расстояние евклида или хемминга до границы принятия решения и декодер начинает принимать за истинные другие кодовые слова. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 4 октября, 2010 Опубликовано 4 октября, 2010 · Жалоба ИМХО это нормальная ситуация, графики BER для кодированной и не кодированной модуляции пересекаются в области высокой вероятности ошибки, и не кодированная передача становится лучше, а в кодированной происходит размножение ошибок, шум превышает расстояние евклида или хемминга до границы принятия решения и декодер начинает принимать за истинные другие кодовые слова. то что ситуация обычная это понятно, но ведь должен же существовать какой то способ, для определения того, что ошибок больше чем корректирующая способность(t)? На степень полинома локаторов надежды нет, т.к. он, алгоритмически ограничен t, поиск корней полинома тоже может дать сбой (как в этом примере). Вот мне и интересно, как определить что ошибок больше чем нужно и выдать сигнал decfailed, вместо мусора %) По идее можно бы воспользоваться свойством вырождения матрицы синдромов, но считать детерминант на лету, не есть гуд. Еще нашел в блейхуте что можно вычислить спектр кода, но вот пока еще неясно как и даст ли это результат. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SuperFly 0 4 октября, 2010 Опубликовано 4 октября, 2010 · Жалоба Вот мне и интересно, как определить что ошибок больше чем нужно и выдать сигнал decfailed, вместо мусора %) может CRC считать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 4 октября, 2010 Опубликовано 4 октября, 2010 · Жалоба может CRC считать? это для протокола более высокого уровня, мне нужно другое %) По идее можно бы воспользоваться свойством вырождения матрицы синдромов, но считать детерминант на лету, не есть гуд. да и не получится так, потому что синдром по определению определен на множестве элементов alpha^1 ...alpha^2t. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SuperFly 0 4 октября, 2010 Опубликовано 4 октября, 2010 · Жалоба это для протокола более высокого уровня, мне нужно другое %) а если сделать декодер на t+1 ошибку... и если ошибок t и меньше - то всё хорошо, а если t+1 - то недоверяем и говорим decfailed? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 7 4 октября, 2010 Опубликовано 4 октября, 2010 · Жалоба то что ситуация обычная это понятно, но ведь должен же существовать какой то способ, для определения того, что ошибок больше чем корректирующая способность(t)? На степень полинома локаторов надежды нет, т.к. он, алгоритмически ограничен t, поиск корней полинома тоже может дать сбой (как в этом примере). Вот мне и интересно, как определить что ошибок больше чем нужно и выдать сигнал decfailed, вместо мусора %) ИМХО не должен, если только дополнительную избыточность на это тратить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться