-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFriis.html
More file actions
116 lines (106 loc) · 11.7 KB
/
Copy pathFriis.html
File metadata and controls
116 lines (106 loc) · 11.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<!DOCTYPE html>
<html lang="en">
<head>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4211938844076974"
crossorigin="anonymous"></script>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-6R4JGG0586"></script>
<script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js',new Date());gtag('config','G-6R4JGG0586');</script>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Friis Equation Calculator — RF Link Power Calculator | RF Toolbox</title>
<meta name="description" content="Calculate received power in a free-space RF link using the Friis transmission equation. Enter transmit power, antenna gains, frequency, and distance to get received power and path loss.">
<meta name="robots" content="index, follow">
<link rel="canonical" href="https://rftoolbox.ca/Friis.html">
<meta property="og:title" content="Friis Equation Calculator — RF Link Power Calculator | RF Toolbox">
<meta property="og:description" content="Calculate received power in a free-space RF link using the Friis transmission equation. Enter transmit power, antenna gains, frequency, and distance to get received power and path loss.">
<meta property="og:url" content="https://rftoolbox.ca/Friis.html">
<meta property="og:type" content="website">
<meta property="og:site_name" content="RF Toolbox">
<script src="MathJax.js"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/12.3.2/math.js" integrity="sha512-L6TOvunyzSyFBxlyKEYgAmofV+iAI+J9t3M9lc4smm/FbV8HlzKD+vflXUGjx8puTKzH7o4PCWsR4jDwlHXAHg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<link rel="stylesheet" href="style.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "Friis Equation Calculator — RF Link Power Calculator",
"description": "Calculate received power in a free-space RF link using the Friis transmission equation. Enter transmit power, antenna gains, frequency, and distance to get received power and path loss.",
"url": "https://rftoolbox.ca/Friis.html",
"applicationCategory": "EngineeringApplication",
"operatingSystem": "Web",
"offers": {"@type": "Offer", "price": "0", "priceCurrency": "USD"},
"publisher": {"@type": "Organization", "name": "RF Toolbox", "url": "https://rftoolbox.ca"}
}
</script>
</head>
<body class="no-nav">
<header><h2><a href="index.html" style="color:white;text-decoration:none;">RF Toolbox</a></h2></header>
<section>
<article>
<div class="breadcrumb"><a href="index.html">⌂ Home</a></div>
<h3>Friis Transmission Equation</h3>
<div class="tool-concept">
<p>The Friis equation gives the power received in a free-space radio link given transmit power, antenna gains, distance, and frequency. It assumes far-field, line-of-sight propagation with no atmospheric loss.</p>
<details style="margin-top:8px;">
<summary style="cursor:pointer;font-size:11px;color:#AA77FF;font-weight:bold;letter-spacing:0.05em;text-transform:uppercase;user-select:none;">Equations & Parameters ▸</summary>
<div style="background:#f0eeff;border-left:3px solid #AA77FF;padding:8px 12px 6px;border-radius:0 4px 4px 0;margin:6px 0 10px;font-size:12.5px;line-height:2.0;overflow-x:auto;">\(P_r = P_t G_t G_r \!\left(\dfrac{\lambda}{4\pi d}\right)^{\!2}\)</div>
<table style="font-size:12px;border-collapse:collapse;margin-top:6px;"><tr><td style="padding:3px 14px 3px 0;font-weight:bold;color:#5533aa;white-space:nowrap;vertical-align:top;">Pₜ</td><td style="padding:3px 0;">Transmit power (dBm).</td></tr><tr><td style="padding:3px 14px 3px 0;font-weight:bold;color:#5533aa;white-space:nowrap;vertical-align:top;">Gₜ, Gᵣ</td><td style="padding:3px 0;">Transmit and receive antenna gains (dBi). A half-wave dipole has 2.15 dBi.</td></tr><tr><td style="padding:3px 14px 3px 0;font-weight:bold;color:#5533aa;white-space:nowrap;vertical-align:top;">d</td><td style="padding:3px 0;">Link distance (m).</td></tr><tr><td style="padding:3px 14px 3px 0;font-weight:bold;color:#5533aa;white-space:nowrap;vertical-align:top;">f</td><td style="padding:3px 0;">Carrier frequency. Longer wavelengths have less free-space path loss.</td></tr><tr><td style="padding:3px 14px 3px 0;font-weight:bold;color:#5533aa;white-space:nowrap;vertical-align:top;">FSPL</td><td style="padding:3px 0;">Free-space path loss = 20·log₁₀(4πd/λ) dB.</td></tr><tr><td style="padding:3px 14px 3px 0;font-weight:bold;color:#5533aa;white-space:nowrap;vertical-align:top;">Pᵣ</td><td style="padding:3px 0;">Received power = Pₜ + Gₜ + Gᵣ − FSPL (in dB arithmetic).</td></tr></table>
<div style="margin-top:10px;padding-top:8px;border-top:1px solid #e0d8ff;"><div style="font-size:10px;font-weight:bold;color:#AA77FF;letter-spacing:0.07em;text-transform:uppercase;margin-bottom:4px;">Physical constants used</div><table style="font-size:12px;border-collapse:collapse;"><tr><td style="padding:3px 14px 3px 0;font-weight:bold;color:#5533aa;">c</td><td>Speed of light = 2.998×10⁸ m/s</td></tr>
<tr><td style="padding:3px 14px 3px 0;font-weight:bold;color:#5533aa;">µ₀</td><td>Permeability of free space = 4π×10⁻⁷ H/m ≈ 1.2566×10⁻⁶ H/m</td></tr>
<tr><td style="padding:3px 14px 3px 0;font-weight:bold;color:#5533aa;">ε₀</td><td>Permittivity of free space = 8.854×10⁻¹² F/m</td></tr></table></div>
<div style="margin-top:8px;padding-top:6px;border-top:1px solid #e0d8ff;font-size:11.5px;color:#666;"><span style="font-weight:bold;color:#AA77FF;">Reference: </span>H. Friis, "A note on a simple transmission formula," <em>Proc. IRE</em> 34, 254 (1946)</div>
</details>
</div>
<div class="sec-lbl">Inputs</div>
<div class="inp-grid"><div class="inp-row"><label>Transmit power, <span class="var">Pₜ</span></label><div class="inp-inline"><input type="text" id="fr-pt" value="20" data-tip="Transmit power in dBm. 0 dBm = 1 mW, 20 dBm = 100 mW, 30 dBm = 1 W."><span class="inp-units">dBm</span></div><span class="inp-hint">Typical WiFi: 20 dBm = 100 mW</span></div><div class="inp-row"><label>TX antenna gain, <span class="var">Gₜ</span></label><div class="inp-inline"><input type="text" id="fr-gt" value="2" data-tip="TX antenna gain in dBi relative to an isotropic radiator. Half-wave dipole = 2.15 dBi."><span class="inp-units">dBi</span></div><span class="inp-hint">Isotropic = 0, dipole ≈ 2.15</span></div><div class="inp-row"><label>RX antenna gain, <span class="var">Gᵣ</span></label><div class="inp-inline"><input type="text" id="fr-gr" value="2" data-tip="RX antenna gain in dBi. Same reference as Gₜ."><span class="inp-units">dBi</span></div></div><div class="inp-row"><label>Distance, <span class="var">d</span></label><div class="inp-inline"><input type="text" id="fr-d" placeholder="m" data-tip="Free-space distance between antennas in metres. FSPL increases 6 dB per doubling."><span class="inp-units">m</span></div><span class="inp-hint">Straight-line distance</span></div><div class="inp-row"><label>Frequency, <span class="var">f</span></label><div class="inp-inline"><input type="text" id="fr-f" placeholder="value" data-tip="Carrier frequency. Higher frequency → shorter wavelength → higher path loss."><select id="fr-fu"><option value="1e6">MHz</option><option value="1e9" selected>GHz</option></select></div></div></div>
<div style="display:flex;gap:8px;align-items:center;margin:12px 0 6px;"><button class="calc-btn" id="fr-btn">Calculate</button> <button class="example-btn" onclick="loadExample({"fr-pt": "20", "fr-gt": "2", "fr-gr": "2", "fr-d": "50", "fr-f": "2.4", "fr-fu": "1e9"})" title="2.4 GHz Wi-Fi at 50 m, 20 dBm TX">Load Example</button></div>
<div id="error" class="err-msg" style="color:#c0392b;font-size:12px;margin-bottom:6px;min-height:16px;"></div>
<div class="sec-lbl">Results</div>
<div class="res-grid"><div class="res-card"><h4>Path</h4><div class="res-row"><span class="res-lbl">Free-space path loss (FSPL)</span><span class="res-val " id="fr-fspl">—</span></div></div><div class="res-card"><h4>Received Power</h4><div class="res-row"><span class="res-lbl">Pᵣ (dBm)</span><span class="res-val " id="fr-pr-dbm">—</span></div><div class="res-row"><span class="res-lbl">Pᵣ (watts)</span><span class="res-val " id="fr-pr-w">—</span></div></div></div>
<div class="sec-lbl">Diagram</div>
<div class="schematic-box"><div id="tool-diagram"></div></div>
<script>
function drawDiagram() {
var fspl = document.getElementById('fr-fspl') ? document.getElementById('fr-fspl').textContent : '—';
var pr = document.getElementById('fr-pr-dbm') ? document.getElementById('fr-pr-dbm').textContent : '—';
var pt = parseFloat(document.getElementById('fr-pt')&&document.getElementById('fr-pt').value)||20;
var gt = parseFloat(document.getElementById('fr-gt')&&document.getElementById('fr-gt').value)||2;
var gr = parseFloat(document.getElementById('fr-gr')&&document.getElementById('fr-gr').value)||2;
var W=560,H=130,wy=65;
var s='<svg viewBox="0 0 '+W+' '+H+'" width="'+W+'" height="'+H+'" xmlns="http://www.w3.org/2000/svg" style="font-family:monospace;max-width:100%;">';
s+='<rect width="'+W+'" height="'+H+'" fill="#faf9ff" rx="4"/>';
// TX block
s+='<rect x="20" y="'+(wy-22)+'" width="90" height="44" fill="#f0eeff" stroke="#5533aa" stroke-width="2" rx="4"/>';
s+='<text x="65" y="'+(wy-5)+'" text-anchor="middle" font-size="12" font-weight="bold" fill="#5533aa">TX</text>';
s+='<text x="65" y="'+(wy+11)+'" text-anchor="middle" font-size="10" fill="#888">'+pt+' dBm</text>';
s+='<text x="65" y="'+(wy-28)+'" text-anchor="middle" font-size="9" fill="#888">Gₜ = '+gt+' dBi</text>';
// Dashed path
var pathX1=110, pathX2=370;
s+='<line x1="'+pathX1+'" y1="'+wy+'" x2="'+pathX2+'" y2="'+wy+'" stroke="#AA77FF" stroke-width="2" stroke-dasharray="6,4"/>';
// Arrows on path
s+='<polygon points="'+(pathX1+30)+','+wy+' '+(pathX1+22)+','+(wy-4)+' '+(pathX1+22)+','+(wy+4)+'" fill="#AA77FF"/>';
s+='<polygon points="'+(pathX2-2)+','+wy+' '+(pathX2-10)+','+(wy-4)+' '+(pathX2-10)+','+(wy+4)+'" fill="#AA77FF"/>';
// FSPL label
s+='<rect x="'+(pathX1+70)+'" y="'+(wy-16)+'" width="120" height="32" fill="#fffbee" stroke="#cc8800" stroke-width="1.2" rx="3"/>';
s+='<text x="'+(pathX1+130)+'" y="'+(wy-3)+'" text-anchor="middle" font-size="10" font-weight="bold" fill="#cc8800">FSPL</text>';
s+='<text x="'+(pathX1+130)+'" y="'+(wy+12)+'" text-anchor="middle" font-size="10" fill="#aa6600">'+fspl+'</text>';
// RX block
s+='<rect x="'+pathX2+'" y="'+(wy-22)+'" width="90" height="44" fill="#eeffee" stroke="#228844" stroke-width="2" rx="4"/>';
s+='<text x="'+(pathX2+45)+'" y="'+(wy-5)+'" text-anchor="middle" font-size="12" font-weight="bold" fill="#228844">RX</text>';
s+='<text x="'+(pathX2+45)+'" y="'+(wy+11)+'" text-anchor="middle" font-size="10" fill="#228844">'+pr+'</text>';
s+='<text x="'+(pathX2+45)+'" y="'+(wy-28)+'" text-anchor="middle" font-size="9" fill="#888">Gᵣ = '+gr+' dBi</text>';
s+='</svg>';
document.getElementById('tool-diagram').innerHTML=s;
}
</script>
<div class="wiki-link-hint">📖 <a href="wiki_link_budget.html">Learn about link budgets and the Friis equation →</a></div>
<script src="Friis.js"></script>
</article>
</section>
<footer><p><a href="index.html">Home</a> · <a href="wiki.html">📖 Wiki</a> · <a href="privacy.html">Privacy</a> · <a href="disclaimer.html">Disclaimer</a></p></footer>
<script src="tool-enhancements.js"></script>
</body>
</html>