Jump to content

CommNet Overhaul


Recommended Posts

Previously I had expressed some grievances regarding the way that KSP handles signal strength and data transmission.  After some time with my nose buried in information theory books and 30 year old PDFs about the DSN, I propose an improved system that is a little more realistic, but not too technically challenging.

First, the concept of bands.  The DSN is capable of operating in several bands, and these are;

  • L-band (1-2 GHz)
  • S-band (2-4 GHz)
  • X-band (7-11 GHz)
  • and more recently Ka-band (26-40 GHz)

Lower power bands are available earlier in career mode, and the Tracking Station is capable of operating on higher energy bands with upgrades.  Also included with the L3 station would be the ability to use a 500 GHz infrared laser communicator (with a new part or 2), which would provide a wide-band long-range communication link with properly equipped vessels. Higher power bands provide more bandwidth and less distance attenuation, but have higher energy costs per mit.

Early antennae would only be able to utilize the L-band, but with the as-yet unimplemented part upgrade system they would be available to use a higher power band with the proper tech (eg, the Communotron 16 family would be L-band only at unlock, but could be upgraded to use the S-band later on).  The late-game antennae would be capable of utilizing all bands, but only one at a time.  This would be selected during vessel construction via the context menu, and would be fixed at launch.

Each antenna also has 2 qualities (for determining signal) for each band.  The first is the transmitter power measured in decibel-milliwatts (dBm), and the second is the antenna gain (also in dBm).  The antenna also has a noise power, but this is independent of the band used.  The tracking station also has these qualities for each band as well as a 'nominal bandwidth' value (~1-10Hz, except for the laser communicator which would be in the high kHz range), and upgrades will adjust the values to optimize for increased communication bandwidth and longer-distance communication (ie, higher power, higher gain, less noise power).

Working with real-world values is difficult in KSP because of the reduced system size, but I have here a worked example with some conceptualized values.  Before we get started, here is a quick unit conversion:

  • dBm = [10 * log(W)] + 30    (watts to decibel-milliwatts)
  • W = 10 ^ ([dBm + 30] / 10)   (decibel-milliwatts to watts)

Tracking Station: Level 1 L-band transmit/receive

  • Gain: +50 dBm  
    • gain is directly proportional to the square of the antenna diameter and inversely proportional to the square of the wavelength
  • Power: 30 kW = +44.8 dBm  
    • power is simply the transmitter power, a 'chosen' value
  • Noise Power: 4.00e-20 W or -173.9 dBm
    • thermal interference on the receiving end.  directly proportional to bandwidth and dependent on the boltzmann constant
  • Bandwidth: 10 Hz
    • Bandwidth choice is arbitrary (read: defined by the hardware), but is usually higher on manned missions in cis-munar to allow for direct voice transmission.  Unfortunately, this isn't a modelable feature so the bandwidth should stay low to keep the noise power down.

Communotron-16 in Mun orbit, L-band transmit/receive

  • Gain: +3 dBm
  • Power 0.1W = -10 dBm
  • Noise Power: 1.38e-20 W or -176.8 dBm

Munar orbit is ~11.5x10^6 m from kerbin (give or take), so distance attenuation is calculated by:

  • l^2 / (4*pi*r)^2

Where l is the wavelength and r the distance (units of meters, result is in watts).  L-band has a wavelength of ~20cm (0.2m), so this equation evaluates to ~2.7e-10 W or -95.6 dBm

To calculate received power, simply add the transmit power, the gains of the transmitter and receiver, and the distance losses.

  • Uplink Signal: 50 dBm (station) + 3 dBm (probe) + 44.8 dBm (station power) -95.6 dBm (distance loss) = 6.5 dBm or 4.6 Watts received at Mun
  • Downlink Signal: 50 dBm (station) + 3 dBm (probe) -10 dBm (probe power) -95.6 dBm (distance loss) = -48 dBm or 0.000015 Watts received at KSC

Now, we can calculate the signal-to-noise ratio (SNR) for the uplink and downlink, and this is done by dividing the signal by the noise power of the receiver.  Note that this has to be done in Watts because of the logarithmic nature of the decibel system.

  • Uplink SNR = 4.6 W / 1.38x10^-20 W = 3.33e20
  • Downlink SNR = 1.5x10^-5 W / 4x10^-20 W = 3.75e14

Using the Shannon-Hartley theorem, we the calculate the maximum bitrate at which information can be exchanged across the link.  This bitrate is used for determining probe control on the uplink side, and for determining data TX rate on the downlink side.

  • C = B * log(1+SNR)/log(2)

where C is the bitrate, B the available bandwidth, and log the logarithm base 10.  This equation can be simplified by taking the numerator and using a logarithm base 2 without the denominator, but I figured I'd put it in calculator-friendly mode for those of you who don't know how to do change of base.  Using this, we calculate our max bitrate in each direction:

  • Uplink bitrate = 10Hz * log(1+3.33e20) / log(2) = 681 bits/s
  • Downlink bitrate = 10Hz * log(1+3.75e14) / log(2) = 484 bits/s

As you can see, these numbers are pretty small compared to modern communication standards, but they are probably within an order of magnitude or two of the balanced values.  According to wikipedia (nb: not-necessarily reputable source) the 20W transmitter on the Apollo LM could support a 56 kbit telemetry link or a 1.6kbit backup link, ergo the base values for power, noise, and gain require a bit of tweaking (especially for the higher power bands).  As mentioned above, the downlink bitrate determines the rate at which science can be transmitted.  This requires a re-scaling of the 'mit', as these rates could transmit any experiment in less than a tenth of a second, however the 'mit' system seems to be arbitrary right now so this isn't a huge deal.  The uplink bitrate would determine whether a probe was controllable or not - too low of a bitrate (set arbitrary value here) and the probe can't effectively receive commands from ground. Alternatively, a minimum receive power could be used as the limiter rather than bitrate - this would allow the player to calculate probe controllability a little easier.  

The actual transmission system works like so:

Antenna also have a 'power per mit' value, which depends on the band being utilized.  Higher power bands require more EC/mit, but due to the difficult task of converting EC to Joules (EC/s to Watts) I haven't run any numbers here.  The rough estimate I've seen is 1EC = 1kJ (1EC/s = 1kW) but I'm not sure how well this is balanced.  The transmit bitrate for an antenna would be tweakable by a percentage slider; this allows the player to continuously transmit data at a slower rate than maximum which may be necessary do to electrical constraints.

For use with relays, each link would have a bitrate calculated, and the lowest bitrate would be the bitrate for the channel.

When a probe desires to transmit data to KSC, the downlink bitrate is calculated and a 'long action' similar to how the MPL works begins.  The antenna begins transmitting data at the calculated downlink bitrate times the percentage slider (and consuming EC at a proper rate), and science will either 1) begin to accumulate at KSC until all the data goes through OR 2) build up in the antenna until it has all been 'transmitted', from which another action made on the antenna will 'commit' the science to KSC.  The former would be ideal, but I'm not sure how KSP would take to incrementing the science over time, especially through warp. 

On the player end, they would require a signal distance attenuation table for each band, and the would simply sum the tracking station gain, probe gain, the loss in the table, and the transmitter power to get a received power.  The bitrates would be calculated under the hood, and be displayed on the probe antenna's context menu.  Send and receive power would be displayed in the current signal strength bar next to the chronometer.

The purpose of this redesign is simple: to increase realism in the science process.  Yes, the 'unlock points' system has its flaws, but that doesn't mean the transmission system has to be garbage as well.  The New Horizons probe took over a year to broadcast all of the data it collected at Pluto, and the Voyager probes still have a non-zero downlink bitrate (~200 bits/s IIRC).  Why can I send back all my data from Jool at lightning-speed?  Separating the uplink and downlink signals also allows us to create one-way links, for what that's worth - another realistic scenario that the current system cannot simulate.

tl;dr: The CommNet mechanics are trash and it wouldn't take much effort to make it better.

Link to comment
Share on other sites

Sounds like this would make a great mod for those that like the extra realism but I'm struggling to see how it really affects gameplay. It doesn't seem to matter whether you're dealing with antennas with a particular 'range' (however inaccurate that term is) or antennas with a particular bitrate (which might be technically more accurate), the practical upshot is much the same. Want to send a probe further out? Better equip it with a better antenna. And 'antenna range' for all its flaws, at least has the virtue of being easy to visualize.

In fact, for probe control, you could think of 'antenna range' as 'maximum range at which practical probe control is possible with that antenna'. The whole notion of probe control as currently depicted in-game isn't realistic anyway (interplanetary distances not being amenable to real-time control), so the added realism of antenna bitrate over antenna 'range' is largely moot anyway, in my opinion.

Science transmission - you might have a point here and if game time was important for anything else at all then a better science transmission mechanic might be fun. As it stands, your proposal doesn't seem to add much other than the possibility of timewarping your way through a data transmission if you choose to use a low power antenna? And for uncrewed vessels, given that a high power antenna would be necessary for 'probe control' anyway, then why can't we just transmit the science using that antenna?

Summary.  Fun if you like added realism or really can't stand the term 'antenna range' but otherwise given the lack of realism in so many other gameplay mechanics, this seems to be realism for realism's sake with no particular benefit to the rest of the game. In my opinion only of course.

 

Edited by KSK
Link to comment
Share on other sites

To work in game, this would have to use a system like ISRU, where the game would have the effective data rate of the system, and would "catch up" each time the craft in question was in focus. Ie: You have a data rate such that it takes 100 days to transmit all the science data (say 100 points for example). You go do something else, then com back in 25 days to do a course correction on your craft. The game would then increment your received science by 25 points, with the remaining 75 (a point a day) still to come. If your course corrections used up a day, you'd see that 1 point show up as well for the new day.

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...