Link budgets are used in radio communications to design parameters such as antenna sizes, bit rates, transmit power etc. A quick link budget explains why Voyager 1 only transmits at ~ 160 bit/s, even though we use a 34m antenna on Earth to receive its signal!
About 10 years ago we wrote a java program for link budget calculations during an ISU workshop. Here is a version of the code. The tutorial we wrote for this application is still very relevant and discusses the effect of antenna gains, EIRP, bit rates etc.
Recently this software has been converted to an Android app. Here are a couple of screen shots (from the initial release):
The LHS shows entry of some LB parameters for a cubesat downlink. After completing all the boxes with blue lines, the "CALC" button produces outputs shown on the RHS. The current app is fairly simple -
2nd Dec 2017: an updated version of this app now includes several sample link budgets, with a few comments on the parameters in each case. These include two satellite links, one terrestrial application and a high-altitude balloon example.
Jan 2019: Now updated to 0.5 on Google Play. This version retains your LB parameters for re-use at a later time and includes some information on spectral efficiency.