<< Miscellaneous`Units`; << 
      Miscellaneous`PhysicalConstants`;

Q[x_]  :=  (1/(Sqrt[2  π])) (∫_x^∞) (E^((((-(y^2))/2)))) \[DifferentialD]y
BER[x_]  :=  (1/2) Q[(Sqrt[2  x])]

Constants

(Subscript[G, c]) = 6.672×(10^(-11));
(Subscript[M, Earth]) = 5.974×(10^24);
(Subscript[M, Neptune]) = 102.43×(10^24);
(Subscript[T, Earth]) = 86164.09;
(Subscript[T, Neptune]) = 57996;
(Subscript[R, Neptune]) = 24764×(10^3);
(Subscript[k, constant]) = 1.380658×(10^(-23));

Orbital Calculations

Calculating Geostationary Neptune Orbit (GNO)

(Subscript[R, GNO]) = 
        R /. (Solve[
                (Subscript[T, Neptune]) == ((2 π (R^((3/2))))/(Sqrt[(Subscript[G, c]) (Subscript[M, Neptune])])), 
                R])[[1]];
Print["The radius of a GNO satellite is ",  (Subscript[R, GNO]), "m (",  
      (Subscript[R, GNO])/1000, "km)"]

Determine distance from GNO satellite to probe at 45° and -45°

(Subscript[D, probe]) = (Sqrt[((Subscript[R, Neptune])^2) + ((Subscript[R, GNO])^2) - 2 (Subscript[R, Neptune]) (Subscript[R, GNO]) Cos[45  °]])

Angle of Satellite to Probe (at 0 bar)

A  =  
      ArcCos[((((Subscript[D, probe])^2) - ((Subscript[R, Neptune])^2) + ((Subscript[R, GNO])^2))/(2 (Subscript[D, probe]) (Subscript[R, GNO])))] ((180/π))

Equipment Calculations

(Subscript[λ, probe]) = 
        (299792458/(0.5×(10^9)));
Bandwidth = 2.046×(10^6);

Gain of Probe Aperture Antenna

(Subscript[R, probeantenna]) = 1.2/2;   (* 
      meter *) 
(Subscript[η, probeantenna]) =  .85;

(Subscript[G, probeantenna]) = ((4  π ((Subscript[η, probeantenna]) π ((Subscript[R, probeantenna])^2)))/((Subscript[λ, probe])^2));
(Subscript[G, probeantennadB]) = 
        10 Log[10,  (Subscript[G, probeantenna])];
Print["The probe antenna gain is ",  
      (Subscript[G, probeantenna]),  " (",  
      (Subscript[G, probeantennadB]), "dBi)"]

Probe Calculations

Power out of Probe (noise negligible)

(Subscript[P, probe]) = 20;       
(Subscript[P, probedB]) = 
      10 Log[10, (Subscript[P, probe])];
(Subscript[T, chip]) = (2^20);   (* 
      1.023 M Chips/Sec *) 
(Subscript[T, data]) = 
      16×(2^10);   (* 
      16 Kbits/
          Sec *) 


(Subscript[C, probedB]) = (Subscript[P, probedB])  + (Subscript[G, probeantennadB]) ;
(Subscript[C, probe]) = (10^(((Subscript[C, probedB])/10)));
Print["Power = ",  (Subscript[C, probe]) // N, " (",  
      (Subscript[C, probedB]) // N, "dB)"]

Link Budget from Off-Angle Probe to Relay Satellite (Worst Case)

From the probe to the relay satellite, the power received at the antenna of the satellite is calculated.  This value is determined at the worst case, which is an off-angle probe that is 420km into the atmosphere.  The total attenuation, using a cummulative entry angle calculation was determined to be 4.8dB total for a frequency of 500 MHz.

Similarly, like the GPS system on Earth, the bandwidth is approximately 2 MHz.

(Subscript[R, offangletorelay]) = 67565×(10^3);   
(Subscript[A, offangletoatmosphere]) = 4.72;    

(Subscript[P, receivedatrelaydB]) = 
      (Subscript[C, probedB]) - (Subscript[A, offangletoatmosphere]) + 
        20 Log[10, ((Subscript[λ, probe])/(4 π (Subscript[R, offangletorelay])))];
(Subscript[P, receivedatrelay]) = 
        (10^(((Subscript[P, receivedatrelaydB])/10)));
Print["Power received at relay satellite = ", 
      (Subscript[P, receivedatrelay]) ", (",  
      (Subscript[P, receivedatrelaydB]), "dB)"]

Relay Satellite Receiver (data from Probe)

\(\(\(\(G\_relayreceiveantennadB = 
        G\_probeantennadB;\)

    \(G\_relayreceiveantenna = G\_probeantenna;\)

    T\_relayreceiveantenna = 
      76 + 300; \  (*\ °K\ *) 
G\_relayreceiveLNAdB = 27; \  (*\ dB\ *) 
G\_relayreceiveLNA = 
      10\^\(G\_relayreceiveLNAdB\/10\);

    \(\(T\_relayreceiveLNA = 
        61\) \);  (*\ °K\ *) 
\(\(T\_receivebandpass = 
        36.214\)\(\ \)\( (*\ ºK\ *) \)\);\)\(
\)\)\)

Carrier (P) calculations through the receiver

The power received at the antenna was calculated in the previous section.  Note that the noise was negligible due to the probe being actively powered by a large power source ((Subscript[P, out]) >> (Subscript[N, out])).  The despreading gain is not considered at this point in the calculation.

(Subscript[P, dB1]) = 
        (Subscript[P, receivedatrelaydB]) + 
          (Subscript[G, relayreceiveantennadB]);
(Subscript[P, dB2]) = (Subscript[P, dB1]) + (Subscript[G, relayreceiveLNAdB]);
(Subscript[P, dB3]) = (Subscript[P, dB2])  +  0;
(Subscript[P, 3]) = (10^(((Subscript[P, dB3])/10)));
Print["The power up to the BP filter is ",  (Subscript[P, 3]),  " (",  
      (Subscript[P, dB3]), "dB)"]

Noise (N) calculations through the receiver

The primary sources of noise occur at the receiver, especially with the receiving dish pointing at the planet, giving a noise temperature of about 300K.  The noise is calculated up to the Bandpass Filter.  The Despreading noise (and interference) will be calculated in the next section.

(Subscript[N, 1]) = ((Subscript[k, constant])) ((Subscript[T, relayreceiveantenna])) (Bandwidth);
(Subscript[N, 2]) = ((Subscript[N, 1])) ((Subscript[G, relayreceiveLNA])) + ((Subscript[k, constant])) ((Subscript[T, relayreceiveLNA])) (Bandwidth);
(Subscript[N, 3]) = 
        (Subscript[N, 2]) +  ((Subscript[k, constant])) ((Subscript[T, receivebandpass])) (Bandwidth);
(Subscript[N, dB3]) = 10 Log[10,  (Subscript[N, 3])];
Print["The power up to the BP filter is ",  (Subscript[N, 3]),  " (",  
      (Subscript[N, dB3]), "dB)"]

Calculate the (C/N) ratio between (Subscript[P, 1]) and (Subscript[P, 3]), add despreading gain

The Carrier to Noise ratio is calculated up to the Bandpass filter, and then the despreading gain is added to this.

M = ((Subscript[T, chip])/(Subscript[T, data]));
numProbes = 3;
(Subscript[CtoN, dB]) = 
        10 Log[10, ((Subscript[P, 3])/(Subscript[N, 3]))] +  
          10  Log[10, (((M) ((Subscript[P, 3])))/((Subscript[N, 3]) + (numProbes - 1) (Subscript[P, 3])))];
Print["The Carrier-to-Noise ratio after despreading is ",  
        (Subscript[CtoN, dB]), "dB"];

Relay Satellite to Earth Deep Space Network

Carrier

(Subscript[η, relayantenna]) = 0.85;
(Subscript[R, relayantenna]) = 4/2;
(Subscript[λ, xband]) = 
        (299792458/(8.425×(10^9)));

(Subscript[G, relayantenna]) = ((4  π ((Subscript[η, relayantenna]) π ((Subscript[R, relayantenna])^2)))/((Subscript[λ, xband])^2));
(Subscript[G, relayantennadB]) = 10  Log[10, (Subscript[G, relayantenna])];

(Subscript[R, NeptuneToEarthMin]) = 4.3×(10^9)   ;
(Subscript[R, NeptuneToEarthMax]) = 4.5×(10^12)   ;
(Subscript[P, relaytransmitter]) = 100   ;
(Subscript[P, relaytransmitterdB]) = 
        10  Log[10, (Subscript[P, relaytransmitter])] // N;
(Subscript[η, DSN]) = 0.94;
(Subscript[R, DSN]) = 34/2;
(Subscript[G, DSN]) = ((4  π ((Subscript[η, DSN]) π ((Subscript[R, DSN])^2)))/((Subscript[λ, xband])^2));
(Subscript[G, DSNdB]) = 10 Log[10, (Subscript[G, DSN])];
(Subscript[C, receiveearthdB]) = 
        (Subscript[P, relaytransmitterdB]) + (Subscript[G, relayantennadB])  + 
          20  Log[10, ((Subscript[λ, xband])/(4 π (Subscript[R, NeptuneToEarthMax])))] +  (Subscript[G, DSNdB]);
(Subscript[C, receiveearth]) = 
        (10^(((Subscript[C, receiveearthdB])/10)));
Print["The power received at the DSN is ",  
      (Subscript[C, receiveearth]),  " (",  
      (Subscript[C, receiveearthdB]), "dB)"]

Noise

Noise = ((Subscript[k, constant])) (20) (75000);
(Subscript[Noise, dB]) = 10  Log[10, Noise] // N;
Print["The noise power received at the DSN is ",  
      Noise,  " (",  (Subscript[Noise, dB]), "dB)"]

Carrier to Noise

(Subscript[CtoN, earth]) = ((Subscript[C, receiveearth])/Noise);
(Subscript[CtoN, earthdB]) = 
        10 Log[10, (Subscript[CtoN, earth])];
Print["The C/N received at the DSN is ",  
      (Subscript[CtoN, earth]),  " (",  (Subscript[CtoN, earthdB]), "dB)"]