Closing a link
What you will accomplish
You will start from a link that does not close, change one variable at a time, and find out which constraint is actually binding.
This is the most common real task in RF design, and guessing at it wastes far more time than measuring does.
Prerequisites
- A constellation and a ground station.
- Link budgets if the terms are unfamiliar.
The starting point
orbitforge link \
--constellation ph1.json \
--station "Madrid,40.43,-3.7,0.6" \
--frequency-ghz 20 --availability 99.9 --climate-zone K madrid: coverage 100.0%, 92 contacts, best margin 4.6 dB
Madrid link availability: does not close at 95%100 percent coverage, 92 contacts, and the link fails a 95 percent target. The geometry is excellent and the link is unusable.
Coverage and link closure are different questions. A satellite being overhead says nothing about whether enough signal survives the path.
This result means the constraint is RF, not geometry. Adding satellites will not fix it, and it is worth knowing that before spending a design cycle on more of them.
Test one lever at a time
Same constellation, same station, same 92 contacts throughout. Each run changes exactly one thing.
# Baseline
orbitforge link --constellation ph1.json --station "Madrid,40.43,-3.7,0.6" \
--frequency-ghz 20 --availability 99.9 --climate-zone K
# Lower the frequency
orbitforge link --constellation ph1.json --station "Madrid,40.43,-3.7,0.6" \
--frequency-ghz 12 --availability 99.9 --climate-zone K
# Relax the availability target
orbitforge link --constellation ph1.json --station "Madrid,40.43,-3.7,0.6" \
--frequency-ghz 20 --availability 99.0 --climate-zone K
# Drier climate zone
orbitforge link --constellation ph1.json --station "Madrid,40.43,-3.7,0.6" \
--frequency-ghz 20 --availability 99.9 --climate-zone E| Change | Best margin | Availability achieved |
|---|---|---|
| Baseline, 20 GHz, 99.9 percent, zone K | 4.6 dB | Does not close at 95 percent |
| Frequency 20 to 12 GHz | 14.1 dB | 99.822 percent |
| Availability target 99.9 to 99.0 percent | 10.1 dB | Does not close at 95 percent |
| Climate zone K to E | 7.3 dB | Does not close at 95 percent |
Reading the comparison
Frequency is the lever that works. Dropping from 20 to 12 GHz is worth 9.5 dB and turns a failing link into 99.8 percent availability.
Free-space loss accounts for only about 4.4 dB of that, from the term. The rest is atmospheric, and most of it is rain: at 20 GHz in a wet climate zone rain dominates the budget, while at 12 GHz it is a manageable term.
The other two levers improve the margin without closing the link, which is the trap in this table.
Relaxing the availability target to 99.0 percent gained 5.5 dB of best margin and still does not close. Moving to a drier climate zone gained 2.7 dB and still does not close.
A rising margin figure feels like progress. Only the availability line tells you whether you have a working link, and it is the line to read first.
Why the margin number misleads
best margin is the best moment of the best pass: highest elevation, shortest
slant range, calmest atmosphere.
Availability is evaluated across the whole pass at the worst geometry the elevation mask permits, in the weather the availability target implies. A design can have healthy best margin and negative margin for most of every pass.
Read the availability line. Use best margin only to see which direction a change moved things.
The levers, and what each costs
| Lever | Effect | Cost |
|---|---|---|
| Lower frequency | Large, especially in wet climates | Less bandwidth available, more spectrum competition |
| Higher transmit power | Direct | Power, mass, thermal |
| Larger antenna | Direct | Mass, stowage, pointing accuracy |
| Higher elevation mask | Removes the worst geometries | Fewer usable contacts, longer gaps |
| Lower availability target | Less rain margin required | More outage per year |
| Site diversity | Rain rarely hits both sites | A second ground station |
Raising the elevation mask deserves care: it improves the link by discarding the passes that were failing, which also reduces coverage. Check both together.
Finish against a measured threshold
Once the link closes, quote it against a decoder that was actually measured rather than a nominal figure:
orbitforge waveform thresholds --modcods qpsk-1/2 --output thr.json
orbitforge link --constellation ph1.json \
--station "Madrid,40.43,-3.7,0.6" \
--frequency-ghz 12 --availability 99.9 --climate-zone K \
--modcod-thresholds thr.json --modcod qpsk-1/2That is the difference between margin against an assumption and margin against a demonstration.
Checklist
- Read the availability line, not the margin, to judge success.
- Change one variable per run.
- Confirm the contact count is unchanged, so you know the geometry did not move.
- If you raised the elevation mask, re-check coverage.
- Quote the availability target and climate zone alongside any result.
Next steps
- Coverage and revisit for the other half of the question.
linkreference for antenna models and site diversity.
main (pre-release)