До того, как заняться приёмом сигналов со спутников, я ничего не знал о радио сигналах. Тем более о радио сигналах со спутников. В моём представлении это было: навести антенну на спутник и выставить частоту приёма. На самом деле частота сигнала меняется и на спектограмме выглядит как-то вот так: Если схематично представить, то принимаемый сигнал будет выглядеть вот так: С этим сигналом есть 2 проблемы (на самом деле больше): Каждый из этих эффектов можно компенсировать: Я выбрал второй способ фильтрации постоянной составляющей, поэтому формула вычисления смещения для сигнала следующая: long startFrequency = частота сигнала в начале приёма
long endFrequency = частота сигнала по окончанию приёма
long satelliteFrequency = настоящая частота передачи сигнала спутником
long maxOffset = Math.max(Math.abs(satelliteFrequency - startFrequency), Math.abs(satelliteFrequency - endFrequency));
long bandwidth = ширина сигнала спутника // обычно задаётся производителем
long offset = maxOffset + bandw