QAM4 - можно рассматривать как QPSK, которую в свою очередь можно рассматривать как 2xBPSK, т. е. как два независимых сигнала Cos и Sin одинаковой частоты и амплитуды, но сдвинутых по фазе. Иными словами, решить систему уравнений вида sin+cos=A. В любом случае вы вычисляете точку на созвездии, а затем принимаете решение, какой именно из 4 фиксированных эта точка является.
Да. Я решил умножать измеряемый сигнал скалярно на синусоиду и косинусоиду. Для простоты Это будет
вектор кратный периоду семплов. Причем максимально большой чтоб не делать лишних расчетов.
И максимально маленький чтоб не превышать половину (или меньше) импульс модулирующего.
В результате получим набор звездочек. Они будут прыгать и плавать по комплексной плоскости и дальше
надо будет угадывать что есть что.
1) Маркировать начало передачи или иным образом синхронизировать такты (фронт волны).
2) Детектировать условия среды передачи. Зная отправленный и имея принятый синхросигнал, можно определить параметры среды и определить корректирующие коэффициенты для дальнейшего приёма. В данном случае, это будет нулевая фаза и амплитуда.
Я думал так. Пускай QAM фазы кодируют 00,01,10,11 биты соотвественно. Тогда пилот-тон будет длинной последовательностью (3 секунды) фазы 00 после которой любое изменение будет означать начало передачи.
Если в пилоте фаза 00 сместится с 45 градусов допустим на 130 - мне будет пофиг. Я просто буду считать ее
началом отсчета. Вычту из всех фаз 130. Ф1 = 130 градусов.
Далее. Если звезды будут дрейфовать или поворачиваться по кругу мне придется на ходу подстраивать
эту фазу Ф1. Вот как ее подстраивать я еще не придумал.
UPD: Не туда закинул. Модератор перекинь пожалуйста в комментарии.