[an error occurred while processing this directive]
|
по идее, насколько я понимаю, при перемене местами квадратур инвертируется спектр сигнала. принимаемый сигнал CPFSK, таким образом, при инверсии спектра в демодулированном сигнале биты должны инвертироваться, то есть 1 станет 0, а 0 станет 1. Но эксперимент показывает, что спектр на самом деле не инвертируется:
принимаемый сигнал (квадратуры принимаются по одному 16бит слову по очереди) подвергаем fft и зажигаем один светодиод если частота несущей <0 и другой светодиод, если она >0. при этом параллельно демодулируем этот принимаемый сигнал (классический квадратурный ЧМ демодулятор), с определением синхрослова и поиском в принятом сигнале нужной посылки. при приеме искомой посылки зажигаем светодиод 3. При выполнении программы на отладочнике _без_ всяческого прерывания чем бы то ни было, частота периодически перепрыгивает (загорается то 1 то 2 светодиод) с периодом смены в десятки секунд - пару минут. при этом, третий светодиод непрерывно сигнализирует о том что посылка в сигнале присутствует, т.е. при любом результате fft происходит правильная демодуляция. если же в программе "руками" поменять местами I и Q массивы, то посылка не обнаруживается (так как демодулированный сигнал действительно становится инвертированным). то есть... опять непонятно :-?