Есть набор значений амплитуд, которые может принимать сигнал на передающей стороне. На приемной стороне нужно определить амплитуду отправленного сигнала (в канале, разумеется, есть шум). Оцифровка на приемной стороне - 6 бит. Сделал на VHDL определение амплитуды как кучу сравнений. Но такой вариант реализации не кажется мне красивым. Вопрос - можно урезать ли как-нибудь разрядность оцифровки входного сигнала(с учетом отброшенных бит), чтобы сразу сопоставить значение оцифровки номеру отправленного сигнала.
Один из вариантов наборов сигналов
№ Код Десятичное значение
1 001100 12
2 010010 18
3 110110 -12
4 101110 -18
На первый взгляд можно обойтись первыми двумя битами, но тогда граница будет установлена неверно - вместо 14 граничным значением будет 16. Как эту вещь правильно округлить, может есть какие-нибудь алгоритмы?