Concept
Using the frequency and signal level of the telemetry system between the dock and the satellite it is possible to calculate the distance between the two.
Function
The formula for calculating distance based on signal frequency and level is...
distance (m) = 10 ^ ((27.55 - (20 * log10(frequency)) + signalLevel)/20)
This is implemented in the prototype software in Java as...
/**
* This method is used to calculate the distance to the partner telemetry module
*
* @param signalLevelInDb Double precision value of the measured signal level in decibels
* @param freqInMHz Double precision value of the measured signal frequency
*/
protected Double distanceFromPartner(double signalLevelInDb, double freqInMHz) {
// distance (m) = 10 ^ ((27.55 - (20 * log10(frequency)) + signalLevel)/20)
double exp = (27.55 - (20 * Math.log10(freqInMHz)) + Math.abs(signalLevelInDb)) / 20.0;
return Math.pow(10.0, exp);
}
Telemetry conversation for retrieving distance of satellite from the dock...
References
1. The full source code for the distance measurement software is available at the github for this project - https://github.com/mattythorne/ss-cornelius