|
Дата: 12 Апр 2017 11:26:00
#
10 лет назад делал сат_трэкер для покетРС, вот мой оттуда метод:
private void GetDopler(double siteX, double siteY, double siteZ, double siteVX, double siteVY, double siteVZ,
double satX, double satY, double satZ, double satVX, double satVY, double satVZ,
double freqTX, double freqRX, out double Tx, out double Rx)
{
double C = 2.997925e5;
double DX, DY, DZ;
DX = satX - siteX; DY = satY - siteY; DZ = satZ - siteZ;
double Range = Math.Sqrt(Math.Pow(DX, 2) + Math.Pow(DY, 2) + Math.Pow(DZ, 2));
double RangeRate = ((satVX - siteVX) * DX + (satVY - siteVY) * DY + (satVZ - siteVZ) * DZ)
/ Range;
double DopplerTX = -freqTX * RangeRate / C;
double DopplerRX = -freqRX * RangeRate / C;
Tx = freqTX - DopplerTX;
Rx = freqRX + DopplerRX;
}
siteX - это просто пространственные координаты.
satVX - что что-то как-то координаты со скоростью увязаны..я просто напрочь не помню уже всей то планетарной тригонометрии..
|