|
эффективнее делать многопроходный декодер максимального правдоподобия на основе теоремы Байеса. Но памяти жрет и вычислений жрет, как танк. Общий принцип такой - имеем двумерный массив likelihood[9][13], где первый индекс это количество цифр в пакете, второй - собственно по цифрам 0..9 синхро, повтор и неопределение. Сначала заполняем весь массив информацией об априорной вероятности - все единицы. Затем проходим по буферу с цифрами, на каждом шаге складывая логарифмические меры правдоподобия для каждой из цифр. Причем в меру правдоподобия можно учесть и уровни сигнала после корреляции(герцеля), и перекос уровней. Учитывая что ответ от АТС может прийти циклически несколько раз, производим такую операцию для длины буфера на 3-4 ответа, закольцовывая первый индекс в likelihood. Затем повторяем эту операцию, только задом наперед по буферу - с конца. И используя апостериорные вероятности с предыдущего шага в качестве априорных для следующего. Дальше остается найти наиболее вероятные цифры для каждой из 9-ти, ну и выровнять номер относительно стартового символа.
E-mail: info@telesys.ru