1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
---|
2 | <html><head> |
---|
3 | |
---|
4 | |
---|
5 | <meta http-equiv="Content-Language" content="en-us"> |
---|
6 | <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> |
---|
7 | <meta name="GENERATOR" content="ZyTrax"> |
---|
8 | <meta name="keywords" content="wireless calculators, Fresnel Zones, dBm conversion, Free Space Loss, Radio System Budget, cck,16QAM,64QAM,DQPSK"> |
---|
9 | |
---|
10 | <title>ZYTRAX - Wireless Calculators</title> |
---|
11 | |
---|
12 | <!-- this page originated from http://www.zytrax.com/tech/wireless/calc.htm --> |
---|
13 | <!-- HTTP_USER_AGENT=Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.2) Gecko/20090810 Ubuntu/9.10 (karmic) Firefox/3.5.2 --> |
---|
14 | <style type="text/css"> |
---|
15 | <!-- |
---|
16 | /* ZYTRAX STYLE SHEET */ |
---|
17 | /* google maps */ |
---|
18 | v\:* {behavior:url(#default#VML);} |
---|
19 | a {text-decoration:none;} |
---|
20 | body {background-color:white;color:black;margin:0px;padding:0px;font:normal 10pt Verdana,Arial, Helvetica, sans-serif;} |
---|
21 | div.l-f table{width:100%;padding:4px;} |
---|
22 | h1 {font-size:14pt;background:#EEE;border-width:0 0 5px 0;border-style:solid;border-color:#9bf;padding:4px;color:#336} |
---|
23 | h2 {border-width:0 0 5px 0;border-color:#9bf;border-style:solid;font-size:12pt;font-weight:bold;padding:4px;color:#336} |
---|
24 | h3 {border-width:0 0 3px 0;border-color:#9BF;border-style:solid;font-size:12pt;padding:4px;color:#336;} |
---|
25 | h4 {border-width:0 0 2px 0;border-color:#9BF;border-style:solid;font-size:10pt;padding:2px;color:#336;} |
---|
26 | h5 {border-width:0 0 2px 0;border-color:silver;border-style:solid;font-size:10pt;font-weight:bold;padding:4px;} |
---|
27 | h6 {border-width:0 0 1px 0;border-color:silver;border-style:solid; font-size:10pt;color:silver;padding:4px;} |
---|
28 | form {border:1px solid #ccc;} |
---|
29 | input {border:1px solid #999;background:#acf;} |
---|
30 | textarea {border:1px solid #999;background:#acf;} |
---|
31 | /* Printer friendly */ |
---|
32 | |
---|
33 | div.l-r #layout {visibility:visible;} |
---|
34 | div.l-l-fp #layout {visibility:visible;} |
---|
35 | .l-l {position:absolute;top:60px;left:6px;width:110px;font:10pt Verdana,Helvetica, Arial, sans-serif;z-index:1;} |
---|
36 | .l-c {margin:45px 170px 0px 125px;padding:4px 20px;font:1.0em Verdana,Helvetica, Arial, sans-serif;border-width:0 1px; border-style:solid; border-color:#336; z-index:5; line-height:1.3em;} |
---|
37 | .l-r {font:10pt Verdana,Arial, Helvetica, sans-serif;position:absolute;top:60px;right:6px;width:160px;background:#eee;z-index:2;} |
---|
38 | #popups {visibility:visible;} |
---|
39 | |
---|
40 | /* end printer friendly - begin divs - generic */ |
---|
41 | .button {background:#ddd;border:3px outset #black;} |
---|
42 | .l-f {margin:0 200px 0 125px;} |
---|
43 | .l-c-fp {margin:0 160px 0 125px;padding:4px;font:10pt Verdana,Helvetica, Arial, sans-serif;border-width:0 1px;border-style:solid;border-color:#336;z-index:5;} |
---|
44 | .l-p {margin:10px;padding:4px;font:10pt Verdana,Helvetica, Arial, sans-serif;} |
---|
45 | .l-100 {width:100%;margin:0;} |
---|
46 | /* end divs - nav pop-outs */ |
---|
47 | .n-l1 {padding:0;margin:0;list-style:none;width:100px;} |
---|
48 | .n-l1-e {text-align:right;margin:0;padding:2px;position:relative;} |
---|
49 | .n-t1-e,.n-t2-e,.n-t3-e {text-align:left;margin:0;padding:2px 5px;border:1px solid blue;border-width:1px 1px 0 1px;position:relative;} |
---|
50 | .n-t1-es,.n-t2-es,.n-t3-es {text-align:left;margin:0;padding:2px 5px;border:1px solid blue;border-width:1px 1px 0 1px;position:relative;background:#ccf;} |
---|
51 | .n-t1-v {position:absolute;display:none;padding:0;margin:0;list-style:none;top:100%;right:0;width:100px;border-bottom:1px solid blue;background:#EEE;} |
---|
52 | .n-t1-vr {position:absolute;display:none;padding:0;margin:0;list-style:none; top:100%;right:0;width:100px;border-bottom:1px solid blue;background:#EEE;} |
---|
53 | .n-t2,.n-t3 {position:absolute;display:none;padding:0;margin:0;list-style:none;top:0;right:100%;width:120px;border-bottom:1px solid blue;background:#EEE;} |
---|
54 | /* end pop-up styles - nav effects */ |
---|
55 | a:hover {text-decoration:underline;} |
---|
56 | a:hover.p-f-s {color:black} |
---|
57 | .g-c-n:hover {background:#eee;} |
---|
58 | .g-c-s:hover {background:#eee;} |
---|
59 | .g-t-n:hover {background:#acf;} |
---|
60 | div.n-l a:hover {color:#336;} |
---|
61 | div.g-sb a:hover {background-color:#DDD;} |
---|
62 | /* W3c pop-ups - ignored by MSIE 6- */ |
---|
63 | div.n-t0:hover > ul {display:block;} |
---|
64 | li.n-t1-e:hover > ul {display:block;} |
---|
65 | li.n-t1-es:hover > ul {display:block;} |
---|
66 | li.n-t1-e:hover, li.n-t1-es:hover,li.n-t2-e:hover,li.n-t2-es:hover,li.n-t3-e:hover {background:#ccc;} |
---|
67 | li.n-t2-e:hover > ul {display:block;} |
---|
68 | li.n-t2-es:hover > ul {display:block;} |
---|
69 | .n-l1-e:hover > ul {display:block;} |
---|
70 | .n-l1-es:hover > ul {display:block;} |
---|
71 | .n-l2-e:hover > ul {display:block;} |
---|
72 | .n-l2-es:hover > ul {display:block;} |
---|
73 | .n-l3-e:hover > ul {display:block;} |
---|
74 | .n-l3-es:hover > ul {display:block;} |
---|
75 | li.n-l1-e:hover,li.n-l2-e:hover,li.n-l2-es:hover, li.n-l3-e:hover, li.n-l3-es:hover,li.n-l4-e:hover {background:#ccc;} |
---|
76 | /* end pop-out effects - generic alpha */ |
---|
77 | .adv {} |
---|
78 | .at {font-family:Verdana,sans-serif;font-size:9pt;margin:0px;text-indent:8px;} |
---|
79 | .b-1 {font-family:Verdana, sans-serif;} |
---|
80 | .b-r {border-width:0 0 0 1px;border-color:#336;border-style:solid;width:150px;} |
---|
81 | .b-l {border-width:0 1px 0 0;border-color:#336;border-style:solid;width:110px;} |
---|
82 | .b-b {list-style:none;margin:2px;font: 9pt Verdana,Arial,, sans-serif;padding:0 1.0em;} |
---|
83 | .b-b-s {border:1px solid black;} |
---|
84 | li.b-b-l {visibility:hidden;margin:10px 0;} |
---|
85 | .b-b-a {background:#336;color:white; text-decoration:none;border:1px solid black;padding:0 0.25em 0 0;} |
---|
86 | a.b-b-a span {color:#336;background:white;padding:0 0.25em 0 0.33em;text-decoration:none;} |
---|
87 | .d {font-family:Verdana,sans-serif;font-size:9pt;margin:0px;} |
---|
88 | .dd {position:absolute;left:0;top:0; font-family:Tahoma,sans-serif;font-size:9pt; visibility:hidden;background:cyan;color:black;margin:0px;border:black solid 1px;padding:2px;} |
---|
89 | .f-d {font-weight:bold;} |
---|
90 | .f-bd {font-weight:bold;font-size: 12pt;} |
---|
91 | .g-c-n {font:10pt "Courier New",monospace;border-style:solid;border-color:#ccc;border-width: 1px 1px 1px 5px;background-color:#acf;padding:5px; color:black;} |
---|
92 | .g-c-nm {font: 10pt "Courier New",monospace;border-style:solid;border-color:#ccc;border-width: 1px 1px 1px 5px;background-color:#ddd;padding:5px;color:black;margin:0 0 0 40px;} |
---|
93 | .g-c-s,.codegray {font: 8pt "Courier New",monospace;border-style:solid;border-color:#ccc;border-width: 1px 1px 1px 5px; background-color:#acf;padding:5px; color:black;width;inherit;} |
---|
94 | .g-e-t {font-weight:normal;} |
---|
95 | .g-e-d {font-weight:normal;} |
---|
96 | .g-f-n {font:10pt "Courier New", monospace;} |
---|
97 | .g-h-n {background:#336;color:white;padding:4px; font-size:10pt;font-weight:normal;} |
---|
98 | .g-h-ng,.section {background:#9bf;color:#336;font:bold 10pt Verdana,sans-serif;padding:4px; text-decoration:none;} |
---|
99 | .g-h-s {background:#336;color:white;padding:4px; font-size:8pt;font-weight:bold;} |
---|
100 | .g-n {text-decoration:none;color:white;} |
---|
101 | .g-i1-n {margin:5px 5px 5px 20px;} |
---|
102 | .g-i2-n {margin:5px 5px 5px 30px;} |
---|
103 | .g-i3-n {margin:5px 5px 5px 40px;} |
---|
104 | .g-l-n {list-style:none;} |
---|
105 | .g-s-b {border-width:1px 5px; border-color:black;border-style:solid;background:#EEE;color:black; font-family:Verdana,sans-serif;font-size:14pt;font-weight:bold; text-decoration:none;} |
---|
106 | .g-sb-h1 {background:#336;color:white;padding:4px; font-size:14pt;font-weight:bold;} |
---|
107 | .g-sb-h2 {background:#336;color:white;font-size:10pt;font-weight:bold;padding:2px;} |
---|
108 | .g-sb-n {color:blue;font-size:8pt;line-height:150%;margin:2px;} |
---|
109 | .g-s-n {background-color:#EEEEEE;color:black;font-size:10pt; text-decoration:none;} |
---|
110 | .g-s-nr {font-family:Verdana,sans-serif;background-color:red;color:white;font-size:10pt;font-weight:bold; text-decoration:none;} |
---|
111 | .g-s-gn {font-family:Verdana,sans-serif;background-color:silver;color:black;font-size:10pt;font-weight:bold; text-decoration:none;} |
---|
112 | .g-t-n {font-size:9pt;border-style:solid;border-color:#bbb;border-width: 1px 1px 1px 5px;margin:7px;padding:3px;background-color:#eee; color:black;} |
---|
113 | .gs-h {font-family:Verdana,sans-serif;color:black;font-size:28pt;font-weight:bold;text-decoration:none;} |
---|
114 | .gs-m {font-family:Verdana,sans-serif;color:black;font-size:22pt;font-weight:bold;text-decoration:none; margin-left:100px;} |
---|
115 | .gs-f {font-family:Verdana,sans-serif;color:black;font-size:12pt; font-weight:normal;text-decoration:none;} |
---|
116 | .h-b {background:#ddd;color:black;font-weight:bold;} |
---|
117 | .i-2 {background: url(../../images/info.gif) no-repeat top left;} |
---|
118 | .i-3 {background: url(../../../images/info.gif) no-repeat top left;} |
---|
119 | .i-n {border-width: 3px 0 3px 0; border-style:solid;border-color:#bbb;font-size:10pt;margin:10px 10px 10px 60px;padding:10px;} |
---|
120 | .i-h {margin:5px 5px 10px 60px;padding:5px;} |
---|
121 | .i-m-s {padding:2px;margin:0;} |
---|
122 | .i-s {border-width: 3px 0 3px 0; border-style:solid;border-color:#bbb;font-size:8pt;margin:10px 10px 10px 60px;padding:10px;} |
---|
123 | .n-b-l {font:1pt Verdana, Arial, Helvetica, sans-serif;border-width:0 0 1px 0;border-style:solid;border-color:#CCF;margin:0px;padding:0px;} |
---|
124 | .n-l-s {font:8pt Verdana, Arial, Helvetica, sans-serif;visibility:hidden;} |
---|
125 | .n-t0 {float:right;position:relative;color:white;} |
---|
126 | .n-t-t {text-align:right;padding:1px 1px 8px 1px;margin:0;color:white;} |
---|
127 | .p-b {background:#eee;text-indent:3em;} |
---|
128 | .p-m-ni {font-family:Verdana,sans-serif;font-size:10pt;font-style:italic;} |
---|
129 | .navback {background:white;color:black;font-family:Verdana,sans-serif; text-decoration:none;font-weight:bold;font-size:10pt;} |
---|
130 | .nav-top {background:blue;color:white;font-family:Verdana,sans-serif; text-decoration:none;font-weight:bold;font-size:10pt;} |
---|
131 | .p-m-n,.norm {font-size: 10pt;font-family: Verdana, Helvetica, Arial, sans-serif;} |
---|
132 | .p-m-s { font:8pt Verdana,Helvetica, Arial, sans-serif;} |
---|
133 | .p-m-si {font:italic 8pt Verdana, Helvetica, Arial, sans-serif;} |
---|
134 | .p-m-sp { background:white;font:8pt Verdana,Helvetica, Arial, sans-serif;} |
---|
135 | .q-i-2 {background: url(../../images/quotes-open.gif) no-repeat top left;} |
---|
136 | .q-s {border-width: 0 0 0 6px;border-style:solid;border-color:#acf;font-size:8pt;margin:10px 10px 10px 60px;padding:10px;} |
---|
137 | .smallbold { font-family: Verdana, sans-serif; font-size: 8pt; font-weight:bold;} |
---|
138 | /* link styles */ |
---|
139 | .t-dd:hover {background:#ddd;} |
---|
140 | .t-ba {color:#aaa;font-weight:bold;} |
---|
141 | .t-gb {color:blue;background:#eee;} |
---|
142 | .t-dr {color:red;text-decoration:none;} |
---|
143 | .t-dw {color:#666;text-decoration:none;} |
---|
144 | .t-td1-l,.t-td1 {border-style:solid;border-width:5px 0 0 0;border-color:#ddd;padding:3px 3px 8px 5px;} |
---|
145 | .t-td2-l,.t-td2 {border-style:solid;border-width:5px 0 0 0;border-color:#acf;padding:3px 3px 8px 5px;} |
---|
146 | .t-m {background:#ccc;color:blue;text-decoration:none;} |
---|
147 | .vital {font-family:Tahoma,Arial, sans-serif;font-size:12pt;background-color:#ddd; color:black;border-color:red;} |
---|
148 | .w-2 {background: url(../../images/warning.gif) no-repeat top left;} |
---|
149 | .w-3 {background: url(../../../images/warning.gif) no-repeat top left;border-width: 3px 0 3px 0; border-style:solid;border-color:#bbb;} |
---|
150 | |
---|
151 | /* Gecko/W3C specific */ |
---|
152 | abbr[title]:after {content:"";} |
---|
153 | abbr[title]:hover:after {content:" (" attr(title)")";} |
---|
154 | /* W3C pop-ups */ |
---|
155 | .n-l2,.n-l3,.n-l4 {position:absolute;display:none;padding:0;margin:0;list-style:none;top:0;left:100%;width:120px;border-bottom:1px solid blue;background:#EEE;font:8pt Verdana,Helvetica, Arial, sans-serif} |
---|
156 | .n-l2-e,.n-l3-e,.n-l4-e {text-align:left;margin:0;padding:2px 5px;border:1px solid blue;border-width:1px 1px 0 1px;position:relative;} |
---|
157 | .n-l2-es,.n-l3-es,.n-l4-es {text-align:left;margin:0;padding:2px 5px;border:1px solid blue;border-width:1px 1px 0 1px;position:relative;background:#ccf;} |
---|
158 | /* end - start expand divs */ |
---|
159 | .v-f {display:none;} |
---|
160 | .v-o {display:block;} |
---|
161 | /* end expand divs */ |
---|
162 | .n-l-f a {color:#336;} |
---|
163 | #toplogo {float:left;vertical-align:bottom;} |
---|
164 | .g-b-n {font:10pt "Courier New",monospace;border-style:solid;border-color:#ccc;border-width: 1px 1px 1px 5px;padding:5px;background:#eee;} |
---|
165 | .g-b-s {font:8pt "Courier New",monospace;border-style:solid;border-color:#ccc;border-width: 1px 1px 1px 5px;padding:5px;background:#eee;} |
---|
166 | .g-ci-s {font:8pt "Courier New",monospace;border-style:solid;border-color:#ccc;border-width: 1px 1px 1px 5px; background-color:#acf;color:black;} |
---|
167 | .g-sb {font-family:Verdana, sans-serif;width:150px;} |
---|
168 | .jp-h-n {position:absolute;left:50%;top:50%;text-indent:4px;font-family:Verdana,sans-serif;font-size:10pt; visibility:hidden;background:#EEEEEE;color:blue;text-decoration:none;} |
---|
169 | .l-b {position:absolute;top:0px;left:0px;font:8pt Verdana, Arial, Helvetica, sans-serif;border:0;background:#336;color:white;height:44px;z-index:9;width:100%;} |
---|
170 | .l-b-s {position:absolute;top:0;left:0;font:8pt Verdana, Arial, Helvetica, sans-serif;border:0;background:red;color:white;height:44px;z-index:9;width:100%;} |
---|
171 | .l-b-fp {font:8pt Verdana, Arial, Helvetica, sans-serif;background:white;color:#336;height:88px;padding:5px 5px 0 5%;margin:0 0 5px 0;z-index:2;} |
---|
172 | .l-c-i {padding:10px;} |
---|
173 | .l-l-fp {position:absolute;top:95px;left:6px;width:120px;z-index:10;text-align:right;} |
---|
174 | .l-r-fp {position:absolute;top:95px;right:6px;width:150px;z-index:2;} |
---|
175 | .n-l {font-family:Verdana,sans-serif;position:fixed;top:60px;left:6px;width:110px;background:#eee;} |
---|
176 | .n-l-u {font-family:Verdana,sans-serif;top:60px;left:6px;width:110px;background:#eee;} |
---|
177 | .n-l-l {font-size: 9pt;color:black;text-align:right;line-height:150%;} |
---|
178 | .n-l-f {font-size: 9pt;text-align:right;line-height:1.2em;} |
---|
179 | .n-p-f {color:#336;font:9pt/16pt Verdana,sans-serif;text-decoration:none;text-indent:6px;} |
---|
180 | .n-p-n {background:#EEE;color:#336;font:9pt Verdana,sans-serif;text-indent:6px;} |
---|
181 | .n-p-n a {text-indent:6px;display:block;} |
---|
182 | .n-p-o {font:10pt Verdana,sans-serif; background:#DDD;color:blue;text-decoration:none;height:16pt;} |
---|
183 | .n-t-n {color:#336;font:10pt Verdana,sans-serif;text-decoration:none;margin:0;padding:0;} |
---|
184 | .n-t-s {color:white;font: 8pt Verdana,sans-serif;text-decoration:none;padding:0 3px 0 0} |
---|
185 | .p-b-h {visibility:hidden;} |
---|
186 | .p-n-h {position:absolute;left:0;top:0;text-indent:4px;font-family:Verdana,sans-serif;font-size:small; visibility:hidden;background:#EEE;color:blue;text-decoration:none;border:1px blue solid;width:110px;} |
---|
187 | .p-f-s {font-family: Verdana, sans-serif; font-size:8pt; color:silver; background:white;text-decoration:none;} |
---|
188 | .t-db,.t-dd,.t-dn,.w-db {color:blue;text-decoration:none;} |
---|
189 | |
---|
190 | //--> |
---|
191 | </style> |
---|
192 | <style type="text/css" media="print"> |
---|
193 | <!-- |
---|
194 | /* ZYTRAX STYLE SHEET PRINT TEMPLATE */ |
---|
195 | .l-l {display:none;} |
---|
196 | .l-r {display:none;} |
---|
197 | .l-c {width:600px;margin:0;padding:30px 10px 5px 10px; border-width:0;} |
---|
198 | .l-f {margin:5px;} |
---|
199 | .n-t-t {display:none;} |
---|
200 | .n-t0 {display:none;} |
---|
201 | .adv {display:none;} |
---|
202 | --> |
---|
203 | </style> |
---|
204 | |
---|
205 | <script language="JavaScript" type="text/javascript"> |
---|
206 | <!-- |
---|
207 | // Copyright ZYTRAX, Inc. 2001 - 2007 |
---|
208 | // You are welcome to copy or use this script for non-commercial purposes |
---|
209 | // We prefer you leave in this Copyright statement but don't insist on it |
---|
210 | // if you make improvements send us a copy or make the code available on your |
---|
211 | // own web site. |
---|
212 | // NO WARRANTY OR FITNESS FOR PURPOSE UNDERTAKEN - USE AT YOUR OWN RISK |
---|
213 | // global variables |
---|
214 | var mw; // milliwatts |
---|
215 | var w; // watts |
---|
216 | var dbm; // dBm |
---|
217 | var dbw; // dBW |
---|
218 | var num; // intermediate results |
---|
219 | var f; // frequency |
---|
220 | var d; // distance |
---|
221 | var ktm = .621; // km to miles |
---|
222 | var mtk = 1.609; // miles to klics |
---|
223 | var ftm = 3.28; // meters to feet |
---|
224 | var mtf = .3048 // feet to meters |
---|
225 | var db; // work variable |
---|
226 | function round(number,places) { |
---|
227 | // rounding numbers default = 3 |
---|
228 | places = (!places ? 3 : places); |
---|
229 | return Math.round(number*Math.pow(10,places))/Math.pow(10,places); |
---|
230 | } |
---|
231 | |
---|
232 | function log10(x) { |
---|
233 | // Log 10 calculation |
---|
234 | return(Math.log(x) / Math.log(10)); |
---|
235 | } |
---|
236 | |
---|
237 | function from_dbm(u_dbm) { |
---|
238 | // convert dbm to watts and milliwatts |
---|
239 | dbm = parseFloat(u_dbm); |
---|
240 | |
---|
241 | // validate dbm range |
---|
242 | if ((isNaN(dbm)) || (dbm < -110) || (dbm > 100)) |
---|
243 | { |
---|
244 | window.alert("dBm range from -110 to 100"); |
---|
245 | return("Error"); |
---|
246 | } |
---|
247 | |
---|
248 | mw = Math.pow(10,dbm / 10); |
---|
249 | |
---|
250 | return(round(mw,3)); |
---|
251 | } |
---|
252 | |
---|
253 | function to_dbm(u_mw) { |
---|
254 | w = parseFloat(u_mw); |
---|
255 | |
---|
256 | // validate milliwatts range |
---|
257 | if ((isNaN(w)) || (w < 0) || (w > 20000)) |
---|
258 | { |
---|
259 | window.alert("millWatts range = 0 to 20,000"); |
---|
260 | |
---|
261 | return("Error"); |
---|
262 | } |
---|
263 | w = log10(w) / log10(10); |
---|
264 | dbm = round((10 * w),3); |
---|
265 | return(dbm); |
---|
266 | } |
---|
267 | |
---|
268 | function free_space(u_freq, u_km, u_miles) { |
---|
269 | |
---|
270 | f = parseFloat(u_freq); |
---|
271 | if ((d = check_m(u_km,u_miles,"Distance")) == "Error") |
---|
272 | { |
---|
273 | return("Error"); |
---|
274 | } |
---|
275 | // validate frequency |
---|
276 | if ((isNaN(f)) || (f < 100) || (f > 60000)) |
---|
277 | { |
---|
278 | window.alert("Frequency (in MHz) range = 100 to 60,000"); |
---|
279 | return("Error"); |
---|
280 | } |
---|
281 | |
---|
282 | f = log10(f) / log10(10); |
---|
283 | d = log10(d) / log10(10); |
---|
284 | |
---|
285 | return(round((20 * f) + (20 * d) + 36.56,3)); |
---|
286 | |
---|
287 | } |
---|
288 | function check_dbm(u_dbm, u_mw) |
---|
289 | { |
---|
290 | // normalise power to dbm |
---|
291 | if(u_dbm == "") |
---|
292 | { |
---|
293 | dbm = to_dbm(u_mw); |
---|
294 | } |
---|
295 | else |
---|
296 | { |
---|
297 | dbm = parseFloat(u_dbm); |
---|
298 | } |
---|
299 | //validate dbm range |
---|
300 | if ((isNaN(dbm)) || (dbm < -110) || (dbm > 100)) |
---|
301 | { |
---|
302 | window.alert("dBm range from -110 to 100"); |
---|
303 | return("Error"); |
---|
304 | } |
---|
305 | return(dbm); |
---|
306 | } |
---|
307 | |
---|
308 | function check_km(k,m,e) // returns KM |
---|
309 | { |
---|
310 | if(k == ""){ |
---|
311 | if(m == ""){ // must have a mile measure |
---|
312 | |
---|
313 | alert(e+" not supplied");// error |
---|
314 | return -1; |
---|
315 | } |
---|
316 | else{ |
---|
317 | |
---|
318 | if(isNaN(m) || m < 0.1 || m > 100){ |
---|
319 | alert(e+" (Miles) not numeric or not in range .1 to 100"); |
---|
320 | return -1; |
---|
321 | } |
---|
322 | tm = parseFloat(m); |
---|
323 | return (tm * mtk); |
---|
324 | } |
---|
325 | } |
---|
326 | else{ |
---|
327 | if(isNaN(k) || k < 0.1 || k > 160){ |
---|
328 | alert(e+" (Km) not numeric or not in range .1 to 160"); |
---|
329 | return -1; |
---|
330 | } |
---|
331 | return parseFloat(k); |
---|
332 | } |
---|
333 | } |
---|
334 | function check_m(u_km, u_miles, err) // returns MILES |
---|
335 | { |
---|
336 | if(u_km == "") |
---|
337 | { |
---|
338 | // must be miles |
---|
339 | d = parseFloat(u_miles); |
---|
340 | if(isNaN(d) || d < 0.1 || d > 100) |
---|
341 | { |
---|
342 | window.alert(err+" range is .1 to 100 MILES"); |
---|
343 | return("Error"); |
---|
344 | } |
---|
345 | } |
---|
346 | else |
---|
347 | { |
---|
348 | d = parseFloat(u_km); |
---|
349 | if(isNaN(d) || d < 0.1 || d > 160) |
---|
350 | { |
---|
351 | window.alert("Distance range is .1 to 160 KM"); |
---|
352 | return("Error"); |
---|
353 | } |
---|
354 | d = d * ktm; |
---|
355 | } |
---|
356 | return(d); |
---|
357 | } |
---|
358 | |
---|
359 | // W3C DOM'ish |
---|
360 | function check_int(num, lo, hi, def, err) |
---|
361 | { |
---|
362 | if(num == "" && def != "") |
---|
363 | { |
---|
364 | return def; // just return default |
---|
365 | } |
---|
366 | |
---|
367 | tn = parseInt(num); |
---|
368 | if(isNaN(tn) || tn < lo || tn > hi) |
---|
369 | { |
---|
370 | alert(err+" must be in range "+lo+" to "+hi); |
---|
371 | return("Error"); |
---|
372 | } |
---|
373 | return tn; |
---|
374 | } |
---|
375 | function fres_zone() |
---|
376 | { |
---|
377 | // note: uses explicit names in form which must be unique on page |
---|
378 | if((tl = check_km(document.getElementById("fltk").value,document.getElementById("fltm").value,"Total Link distance")) == -1) |
---|
379 | { |
---|
380 | return; |
---|
381 | } |
---|
382 | // tl valid numeric in Km check for obstacle - if not present = link/2 |
---|
383 | tok = document.getElementById("flok").value; |
---|
384 | tom = document.getElementById("flom").value; |
---|
385 | if (tok == "" && tom == ""){ |
---|
386 | // default in km link/2 |
---|
387 | if (document.getElementById("fltk").value != ""){ |
---|
388 | document.getElementById("flok").value = round(tl/2,3); |
---|
389 | }else{ |
---|
390 | document.getElementById("flom").value = round((tl/2)*ktm,3); |
---|
391 | } |
---|
392 | } |
---|
393 | if((d1 = check_km(document.getElementById("flok").value, document.getElementById("flom").value, "Obstacle Distance")) == -1) |
---|
394 | { |
---|
395 | return; |
---|
396 | } |
---|
397 | d2 = tl - d1; |
---|
398 | // check frequency present and numeric |
---|
399 | flf = document.getElementById("flf").value; |
---|
400 | if(flf == "") |
---|
401 | { |
---|
402 | alert("Frequency not specified"); |
---|
403 | return; |
---|
404 | } |
---|
405 | if(isNaN(flf )) |
---|
406 | { |
---|
407 | alert("Frequency not numeric"); |
---|
408 | return; |
---|
409 | } |
---|
410 | freq = parseFloat(flf); |
---|
411 | |
---|
412 | freq = freq /1000; // in GHz |
---|
413 | // fresnel and obstacle free zone |
---|
414 | flrm = Math.round(17.3 * Math.sqrt((d1 * d2)/(freq * tl))); |
---|
415 | document.getElementById("flzm").value = flrm; |
---|
416 | document.getElementById("flzf").value = Math.round(flrm * ftm); |
---|
417 | document.getElementById("fld1k").value = round(d1,3); |
---|
418 | document.getElementById("fld1m").value = round(d1 * ktm,3); |
---|
419 | // 0.6 fresnel |
---|
420 | flr6m = round(flrm *0.6,3); |
---|
421 | document.getElementById("flofm").value = flr6m; |
---|
422 | document.getElementById("floff").value = Math.round((flr6m * ftm),3); |
---|
423 | // earth's height at mid point |
---|
424 | ehm = (Math.pow(tl,2)/(8*((4*6378)/3))) * 1000; |
---|
425 | document.getElementById("flehm").value = round(ehm,3); |
---|
426 | document.getElementById("flehf").value = round(ehm * ftm,3); |
---|
427 | } |
---|
428 | |
---|
429 | function power_budget() |
---|
430 | { |
---|
431 | if((dbm = check_dbm(document.getElementById("bdbm").value, document.getElementById("bmw").value)) == "Error") |
---|
432 | { |
---|
433 | return ("Error"); |
---|
434 | } |
---|
435 | // antenna |
---|
436 | if((db = check_int(document.getElementById("bag").value,1,100, "", "Antenna Gain")) == "Error"){ |
---|
437 | return "Error"; |
---|
438 | } |
---|
439 | // result for gains |
---|
440 | radan_tot = dbm + db; |
---|
441 | document.getElementById("brr").value = round(dbm + db,3); |
---|
442 | |
---|
443 | if(document.getElementById("blf").value != "" || document.getElementById("blm").value != "") |
---|
444 | { |
---|
445 | // handle cable loss |
---|
446 | // we have a cable parameter normalise to meters |
---|
447 | if(document.getElementById("bcf").value != "") |
---|
448 | { |
---|
449 | // user supplied feet |
---|
450 | cable_loss = parseFloat(document.getElementById("bcf").value); |
---|
451 | if(isNaN(cable_loss)) |
---|
452 | { |
---|
453 | window.alert("Cable loss not numeric"); |
---|
454 | return("Error"); |
---|
455 | } |
---|
456 | cable_loss = cable_loss * ftm; |
---|
457 | } |
---|
458 | else |
---|
459 | { |
---|
460 | cable_loss = parseFloat(document.getElementById("bcm").value); |
---|
461 | if(isNaN(cable_loss)) |
---|
462 | { |
---|
463 | window.alert("Cable loss not numeric"); |
---|
464 | return("Error"); |
---|
465 | } |
---|
466 | } |
---|
467 | if(document.getElementById("blf").value != "") |
---|
468 | { |
---|
469 | // user supplied feet |
---|
470 | cable_length = parseFloat(document.getElementById("blf").value); |
---|
471 | if(isNaN(cable_length)) |
---|
472 | { |
---|
473 | window.alert("Cable length not numeric"); |
---|
474 | return("Error"); |
---|
475 | } |
---|
476 | cable_length = cable_length * mtf; |
---|
477 | } |
---|
478 | else |
---|
479 | { |
---|
480 | cable_length = parseFloat(document.getElementById("blm").value); |
---|
481 | if(isNaN(cable_length)) |
---|
482 | { |
---|
483 | window.alert("Cable length not numeric"); |
---|
484 | return("Error"); |
---|
485 | } |
---|
486 | } |
---|
487 | // normalise cable loss |
---|
488 | cable_tot = round((cable_loss /100) * cable_length,3); |
---|
489 | document.getElementById("bcr").value = cable_tot; |
---|
490 | } |
---|
491 | else |
---|
492 | { |
---|
493 | cable_tot = 0; |
---|
494 | document.getElementById("bcr").value = "0"; |
---|
495 | } |
---|
496 | |
---|
497 | // handle connectors |
---|
498 | if(document.getElementById("bconno").value != "") |
---|
499 | { |
---|
500 | // handle connector loss |
---|
501 | f = parseFloat(document.getElementById("bconf").value); |
---|
502 | if ((isNaN(f)) || (f < 100) || (f > 25000)) |
---|
503 | { |
---|
504 | window.alert("Frequency range 100 to 25,000 MHz"); |
---|
505 | return("Error"); |
---|
506 | } |
---|
507 | f = f /1000; //frequency in GHz |
---|
508 | num_con = parseInt(document.getElementById("bconno").value); |
---|
509 | if (isNaN(num_con)) |
---|
510 | { |
---|
511 | window.alert("Number of connectors not numeric"); |
---|
512 | return("Error"); |
---|
513 | } |
---|
514 | // max. loss = 0.10 * sqrt(freq) |
---|
515 | con_tot = round(num_con * (0.1 * Math.sqrt(f)),3); |
---|
516 | document.getElementById("bconr").value = con_tot; |
---|
517 | } |
---|
518 | else |
---|
519 | { |
---|
520 | con_tot = 0; |
---|
521 | document.getElementById("bconr").value = "0"; |
---|
522 | } |
---|
523 | document.getElementById("btr").value = round(radan_tot - con_tot - cable_tot,3); |
---|
524 | } |
---|
525 | |
---|
526 | function op_margin() |
---|
527 | { |
---|
528 | //calculate various operating margins or antenna gains or distance |
---|
529 | want_dis = 0; |
---|
530 | want_tan = 0; |
---|
531 | want_ran = 0; |
---|
532 | if((sad = check_int(document.getElementById("spomsad").value, 1, 100, 30, "SAD factor")) == "Error"){ |
---|
533 | return "Error"; |
---|
534 | } |
---|
535 | sad = sad/100; |
---|
536 | if(document.getElementById("spk").value == "" && document.getElementById("spm").value == ""){ |
---|
537 | want_dis = 1; // no distance - solve for distance only |
---|
538 | } |
---|
539 | else |
---|
540 | { |
---|
541 | if((d = check_m(document.getElementById("spk").value, document.getElementById("spm").value, "Distance")) == "Error") |
---|
542 | { |
---|
543 | return("Error"); |
---|
544 | } |
---|
545 | } |
---|
546 | // must always have valid frequency |
---|
547 | f = parseFloat(document.getElementById("spf").value); |
---|
548 | if(isNaN(f) || f < 100 || f > 60000) |
---|
549 | { |
---|
550 | window.alert("Frequency range is 100 to 60,000 MHz"); |
---|
551 | return("Error"); |
---|
552 | } |
---|
553 | f = log10(f) / log10(10); |
---|
554 | if(!want_dis) |
---|
555 | { |
---|
556 | d = log10(d) / log10(10); |
---|
557 | fs_loss = round((20 * f) + (20 * d) + 36.56,3); |
---|
558 | } |
---|
559 | // calculate tx power |
---|
560 | // confirm TX antenna gain |
---|
561 | if (document.getElementById("sptxa").value == "" && want_dis) |
---|
562 | { |
---|
563 | window.alert("Cannot solve for distance and TX antenna gain"); |
---|
564 | return("Error"); |
---|
565 | } |
---|
566 | else |
---|
567 | { |
---|
568 | if (document.getElementById("sptxa").value == "") |
---|
569 | { |
---|
570 | want_tan = 1; // solve for tx gain |
---|
571 | tx_an = 0; // temp |
---|
572 | } |
---|
573 | else |
---|
574 | { |
---|
575 | tx_an = parseFloat(document.getElementById("sptxa").value); |
---|
576 | } |
---|
577 | } |
---|
578 | if(isNaN(tx_an) || tx_an < 0 || tx_an > 100) |
---|
579 | { |
---|
580 | alert("Antenna gain range 0 to 100"); |
---|
581 | return("Error"); |
---|
582 | } |
---|
583 | // check radio power |
---|
584 | if((tx_dbm = check_dbm(document.getElementById("sptxdbm").value, document.getElementById("sptxmw").value)) == "Error") |
---|
585 | { |
---|
586 | return("Error"); |
---|
587 | } |
---|
588 | // if cable loss invalid substitute 0 |
---|
589 | tx_cable = parseFloat(document.getElementById("sptxc").value); |
---|
590 | if (isNaN(tx_cable)) |
---|
591 | { |
---|
592 | tx_cable = 0; |
---|
593 | document.getElementById("sptxc").value = 0; |
---|
594 | } |
---|
595 | tx_budget = tx_an + tx_dbm - tx_cable; |
---|
596 | // calculate rx power |
---|
597 | // confirm RX antenna gain |
---|
598 | if (document.getElementById("sprxa").value == "" && want_dis) |
---|
599 | { |
---|
600 | window.alert("Cannot solve for distance and RX antenna gain"); |
---|
601 | return("Error"); |
---|
602 | } |
---|
603 | else |
---|
604 | { |
---|
605 | if (document.getElementById("sprxa").value == "") |
---|
606 | { |
---|
607 | want_ran = 1; // solve for rx gain |
---|
608 | rx_an = 0; |
---|
609 | } |
---|
610 | else |
---|
611 | { |
---|
612 | rx_an = parseFloat(document.getElementById("sprxa").value); |
---|
613 | } |
---|
614 | } |
---|
615 | if(isNaN(rx_an) || rx_an < 0 || rx_an > 100) |
---|
616 | { |
---|
617 | window.alert("Antenna gain range 0 to 100"); |
---|
618 | return("Error"); |
---|
619 | } |
---|
620 | // check radio power |
---|
621 | if((rx_dbm = check_dbm(document.getElementById("sprxdbm").value, "")) == "Error") |
---|
622 | { |
---|
623 | return("Error"); |
---|
624 | } |
---|
625 | // if cable loss invalid substitute 0 |
---|
626 | rx_cable = parseFloat(document.getElementById("sprxc").value); |
---|
627 | if (isNaN(rx_cable)) |
---|
628 | { |
---|
629 | rx_cable = 0; |
---|
630 | document.getElementById("sprxc").value = 0; |
---|
631 | } |
---|
632 | rx_budget = rx_an - rx_dbm - rx_cable; |
---|
633 | |
---|
634 | // got everything we might need - figure out what to do |
---|
635 | if(!want_dis && !want_tan && !want_ran) |
---|
636 | { |
---|
637 | // straight calculation of margins |
---|
638 | document.getElementById("sprxr").value = round(rx_budget,3); |
---|
639 | document.getElementById("sptxr").value = round(tx_budget,3); |
---|
640 | document.getElementById("spfr").value = fs_loss; |
---|
641 | margin = tx_budget - fs_loss + rx_budget; |
---|
642 | document.getElementById("spomr").value = round(margin,3); |
---|
643 | document.getElementById("spomrx").value = round(margin + rx_dbm,3); |
---|
644 | document.getElementById("spomsad").value = round(((margin/tx_budget) * 100),3); |
---|
645 | } |
---|
646 | else |
---|
647 | { |
---|
648 | if (want_dis) |
---|
649 | { |
---|
650 | // solve for distance |
---|
651 | document.getElementById("sprxr").value = round(rx_budget,3); |
---|
652 | document.getElementById("sptxr").value = round(tx_budget,3); |
---|
653 | // reduce tx_budget by SAD |
---|
654 | tx_budget = tx_budget - (tx_budget * sad); |
---|
655 | fs_loss = tx_budget + rx_budget; |
---|
656 | // now solve fs equation for distance |
---|
657 | // 20*log10d(in miles) = 36.56 + (RX sensitivity + TX budget) + 20*log10(freq) |
---|
658 | alert("Solve for distance not currently operational - sorry"); |
---|
659 | return("Error"); |
---|
660 | } |
---|
661 | else |
---|
662 | { |
---|
663 | document.getElementById("spfr").value = fs_loss; |
---|
664 | temp_budget = tx_budget - (tx_budget * sad); |
---|
665 | gain = Math.ceil(fs_loss - (temp_budget + rx_budget)); |
---|
666 | if(gain < 0){ |
---|
667 | gain = 0; |
---|
668 | } |
---|
669 | // round gain up |
---|
670 | if(want_tan && want_ran){ |
---|
671 | // solve for two antenna (symetric) |
---|
672 | gain = Math.ceil(gain /2); |
---|
673 | document.getElementById("sptxa").value = gain; |
---|
674 | document.getElementById("sprxa").value = gain; |
---|
675 | tx_budget = tx_dbm - tx_cable + gain; |
---|
676 | rx_budget = gain - rx_dbm - rx_cable; |
---|
677 | }else{ |
---|
678 | // solve for one antenna |
---|
679 | if(want_tan){ |
---|
680 | document.getElementById("sptxa").value = gain; |
---|
681 | tx_budget = tx_dbm - tx_cable + gain; |
---|
682 | }else{ |
---|
683 | document.getElementById("sprxa").value = gain; |
---|
684 | rx_budget = gain - rx_dbm - rx_cable; |
---|
685 | } |
---|
686 | } |
---|
687 | document.getElementById("sprxr").value = round(rx_budget,3); |
---|
688 | document.getElementById("sptxr").value = round(tx_budget,3); |
---|
689 | document.getElementById("spfr").value = fs_loss; |
---|
690 | margin = tx_budget - fs_loss + rx_budget; |
---|
691 | document.getElementById("spomr").value = round(margin,3); |
---|
692 | document.getElementById("spomrx").value = round(margin + rx_dbm,3); |
---|
693 | if(document.getElementById("spomsad").value == ""){ |
---|
694 | document.getElementById("spomsad").value = Math.ceil(sad * 100); |
---|
695 | } |
---|
696 | } |
---|
697 | } |
---|
698 | } |
---|
699 | |
---|
700 | //--> |
---|
701 | </script> |
---|
702 | |
---|
703 | |
---|
704 | <script language="JavaScript" type="text/javascript"> |
---|
705 | <!-- |
---|
706 | // copyright ZYTRAX, Inc. 1994 - 2003 |
---|
707 | // you may use this javascript code at your own risk. |
---|
708 | // we would like you to keep the copyright statement intact but don't insist on it. |
---|
709 | // If you make improvements mail us a copy or make it available on your own web site. |
---|
710 | // global variables |
---|
711 | var topall = new Array(2); |
---|
712 | var lownav = new Array(2); |
---|
713 | var lowpop = new Array(2); |
---|
714 | var rightnav = new Array(2); |
---|
715 | var rightpop = new Array(2); |
---|
716 | var x = 0; // global menu level |
---|
717 | var way = 'h'; |
---|
718 | var menu = null; |
---|
719 | var menus = null; |
---|
720 | var pop1 = new Array(2); |
---|
721 | |
---|
722 | // -- W3C DOM specific code first choice always |
---|
723 | function lock(num){ |
---|
724 | // lock relies on a style which end with -l |
---|
725 | rollover = document.getElementById("l" + num); |
---|
726 | if(rollover){ |
---|
727 | cn = rollover.className |
---|
728 | if((pos = cn.lastIndexOf("-")) != -1){ |
---|
729 | bcn = cn.substring(0,pos + 1); |
---|
730 | scn = cn.substring(pos +1); |
---|
731 | if(scn == "f" || scn == "o"){ |
---|
732 | rollover.className = bcn + "l"; |
---|
733 | } |
---|
734 | } |
---|
735 | } |
---|
736 | } |
---|
737 | |
---|
738 | function expand(cid,img){ |
---|
739 | // expand hidden div cid = div class name, img = id |
---|
740 | var io = document.getElementById(img); |
---|
741 | } |
---|
742 | function gotourl($url) |
---|
743 | { |
---|
744 | window.location = $url; |
---|
745 | } |
---|
746 | function mailus(mbox,stub,subject) |
---|
747 | { |
---|
748 | mail = "mailto:"+mbox+"@"+stub; |
---|
749 | if(subject != ""){ |
---|
750 | mail = mail+"?SUBJECT="+"A-M: "+subject; |
---|
751 | } |
---|
752 | window.location = mail; |
---|
753 | return; |
---|
754 | } |
---|
755 | |
---|
756 | // W3C compliant uses CSS popups not JS |
---|
757 | |
---|
758 | |
---|
759 | |
---|
760 | //--> |
---|
761 | </script> |
---|
762 | |
---|
763 | |
---|
764 | |
---|
765 | </head><body> |
---|
766 | |
---|
767 | <h1>Wireless Calculators</h1> |
---|
768 | <p>These calculators are written in Javascript (saves our bandwidth). |
---|
769 | Find the calculation you want, and enter the various parameters |
---|
770 | required then click the 'Calculate' button. If you don't like 'em or |
---|
771 | think you can improve 'em, the <a href="view-source:http://www.zytrax.com/scripts/wireless_calc.shtml" target="_blank" class="t-db">code for the calculators is here</a>. For the equations used in each calculator follow the <b>Calculations and equations used</b> link.</p> |
---|
772 | <p><b>Groveling apology 1:</b> The <a href="#fresnel" class="t-db">Fresnel calculator</a> |
---|
773 | said it would default to the mid-point if no obstacle distance was |
---|
774 | specified and it didn't. More importantly the 60% rule-of-thumb |
---|
775 | distance was incorrect on the pessimistic side. Thanks to Phil Wells |
---|
776 | for pointing out the errors.</p> |
---|
777 | <p><b>Groveling apology 2:</b> The <a href="#fresnel" class="t-db">Fresnel calculator</a> provides the earth's height at the mid-point. However the <a href="http://www.atis.org/0010/index.asp" class="t-db">ATIS Committe T1A1</a> recommends use of the <a href="http://www.atis.org/tg2k/_effective_earth_radius.html" class="t-db"> effective earth radius (4/3 * earth radius)</a>. Previous calculations used the earth's radius and were higher by ~30%. Thanks to Ranjan Sonalkar for pointing out the error.</p> |
---|
778 | <p><b>Partial Groveling apology 3:</b> The <a href="#fresnel" class="t-db">Fresnel calculator</a> |
---|
779 | incorrectly computed the 60% obstacle free zone for MSIE browsers. |
---|
780 | Those of you using Gecko/Moz based browsers (for example Firefox) had |
---|
781 | the right answer all the time. And the moral of this tale - get a |
---|
782 | decent browser. Thanks to Attila Altay Yavuz for pointing out the |
---|
783 | error. Also the Fresnel calculator equations quoted 72.1 as the |
---|
784 | conversion factor for miles - this should have been 72.6. Since the |
---|
785 | calculator normalizes to km/meters this had no effect on results. |
---|
786 | Thanks to Chris Herrington for pointing out this error. The calculators |
---|
787 | verify the various values entered for being within a valid range and |
---|
788 | output an error message if this is not the case. A number of error |
---|
789 | messages were inconsistent with the ranges being tested. While |
---|
790 | confusing, these inconsistent messages had no effect on the acuracy of |
---|
791 | results. Our thanks to Jay Joffe for taking the time to point out this |
---|
792 | problem.</p> |
---|
793 | <h3 align="center">A Wireless System (more or less!)</h3> |
---|
794 | <p align="center"><img src="calc_files/radio_system.gif" alt="Radio system" border="0"></p> |
---|
795 | <p align="center"><b>Key:</b> Green is good, Red is bad.</p> |
---|
796 | <!-- Start of calculator tables --> |
---|
797 | <ol> |
---|
798 | <li><a href="#budget" class="t-db">Power Budget</a> - total power of your system in dBm.</li> |
---|
799 | <li><a href="#free_space" class="t-db">Free Space Loss</a> - power loss over distance.</li> |
---|
800 | <li><a href="#system" class="t-db">System Performance</a> - How far will it go, will it get there or what is my Operating Margin?</li> |
---|
801 | <li><a href="#fresnel" class="t-db">Fresnel Zones</a> - How much more than LOS or how high should my antenna be?</li> |
---|
802 | <li><a href="#dbm" class="t-db">Power Conversion</a> - dBm to milliWatts and milliWatts to dBm</li> |
---|
803 | </ol> |
---|
804 | <p><b>Serious Health Warning:</b> It is nothing short of a minor |
---|
805 | miracle of physics that ANY wireless signal gets to its destination. |
---|
806 | These calculators use standard algorithms which give reasonable results |
---|
807 | BUT it should be borne in mind you can have two locations 1 meter apart |
---|
808 | in which one gets great reception ALL the time and the other NEVER gets |
---|
809 | reception. Use <a href="http://www.zytrax.com/tech/wireless/intro.htm#propagation" class="t-db">this link</a> |
---|
810 | for our quick overview of the background to radio propagation and the |
---|
811 | side-bar links for some 'real brain-hurting stuff'. With suitable |
---|
812 | apologies to the the memory of the late, lamented <a href="http://www.phnet.fi/public/mamaa1/adams.htm" class="t-db">Douglas Noel Adams</a> the answer to the question of 'how far will this wireless transmission go?' is 42.</p> |
---|
813 | <!-- start of calculators --> |
---|
814 | |
---|
815 | <!-- W3C DOM'ish formats --> |
---|
816 | |
---|
817 | <table summary="" class="p-m-n" width="450" align="center" border="1" cellpadding="4" cellspacing="0"> |
---|
818 | <tbody><tr> |
---|
819 | <td class="section"><a name="budget"></a>Power Budget</td> |
---|
820 | </tr> |
---|
821 | <tr> |
---|
822 | <td><p>Use this calculator to walk through all the factors that make up |
---|
823 | your Power Budget. The 'Power Budget' is the the total power being |
---|
824 | output from the wireless system and is the sum of:</p> |
---|
825 | <ul> |
---|
826 | <li> PLUS Radio Transmit Power (A above)</li> |
---|
827 | <li> MINUS cables and connectors losses (B above)</li> |
---|
828 | <li> PLUS antenna gain (C above).</li> |
---|
829 | </ul> |
---|
830 | <p>Enter one parameter in each column (or leave blank) depending on |
---|
831 | what you know and the calculator will supply the appropriate |
---|
832 | conversions automatically. Up to 2 decimal places may be entered as |
---|
833 | 0.xx or .xx.</p> |
---|
834 | <p><b>Note:</b> Connector loss is generally small UNLESS you've got |
---|
835 | lots of 'em in which case you are probably in trouble anyway, or your |
---|
836 | cable is VERY short. Just leave the line blank if you are feeling lazy.</p> |
---|
837 | <a href="#budget_calc" class="t-db">Calculations and equations used.</a> |
---|
838 | <form name="calcbudget"> |
---|
839 | <table summary="" class="p-m-n" width="450" align="center" border="0" cellpadding="4" cellspacing="0"> |
---|
840 | <tbody><tr valign="top"> |
---|
841 | <td class="g-h-n" width="180">Radio and Antenna</td> |
---|
842 | <td width="150"> </td> |
---|
843 | <td width="120" align="center"> </td> |
---|
844 | </tr> |
---|
845 | <tr valign="top"> |
---|
846 | <td>Transmit Power</td> |
---|
847 | <td>Antenna Gain</td> |
---|
848 | <td align="center"><b>Power</b></td> |
---|
849 | </tr> |
---|
850 | <tr valign="top"> |
---|
851 | <td><input id="bmw" size="6" type="text"><b> mW<br>OR</b><br> |
---|
852 | <input id="bdbm" size="6" type="text"><b> dBm</b></td> |
---|
853 | <td><input id="bag" size="6" type="text"><b> dB(i)</b></td> |
---|
854 | <td align="right"><input id="brr" size="10" type="text"><b> dB</b></td> |
---|
855 | </tr> |
---|
856 | <tr valign="top"> |
---|
857 | <td class="g-h-n">Cable Loss</td> |
---|
858 | <td> </td> |
---|
859 | <td> </td> |
---|
860 | </tr> |
---|
861 | <tr valign="top"> |
---|
862 | <td>Cable Properties<br> |
---|
863 | (per 100 ft or m)</td> |
---|
864 | <td>Cable Length</td> |
---|
865 | <td> </td> |
---|
866 | </tr> |
---|
867 | <tr valign="top"> |
---|
868 | <td><input id="bcf" size="6" type="text"><b> dB</b> (100 ft)<br> |
---|
869 | <b>OR</b><br> |
---|
870 | <input id="bcm" size="6" type="text"><b> dB</b> (100 m)</td> |
---|
871 | <td><input id="blf" size="6" type="text"><b> feet<br> |
---|
872 | OR</b><br> |
---|
873 | <input id="blm" size="6" type="text"><b> meters</b></td> |
---|
874 | <td align="right"><input id="bcr" size="10" type="text"><b> dB</b></td> |
---|
875 | </tr> |
---|
876 | <tr valign="top"> |
---|
877 | <td class="g-h-n">Connector Loss</td> |
---|
878 | <td> </td> |
---|
879 | <td> </td> |
---|
880 | </tr> |
---|
881 | <tr valign="top"> |
---|
882 | <td>Frequency in MHz</td> |
---|
883 | <td>No. of Connectors</td> |
---|
884 | <td> </td> |
---|
885 | </tr> |
---|
886 | <tr valign="top"> |
---|
887 | <td><input id="bconf" value="2400" size="6" type="text"><b> MHz.</b></td> |
---|
888 | <td><input id="bconno" size="6" type="text"><b> No.</b></td> |
---|
889 | <td align="right"><input id="bconr" size="10" type="text"><b> dB</b></td> |
---|
890 | </tr> |
---|
891 | <tr valign="top"> |
---|
892 | <td class="g-h-n">Budget</td> |
---|
893 | <td> </td> |
---|
894 | <td> </td> |
---|
895 | </tr> |
---|
896 | <tr valign="top"> |
---|
897 | <td> </td> |
---|
898 | <td><input class="button" value="Calculate" onclick="power_budget()" type="button"></td> |
---|
899 | <td align="right"><input id="btr" size="10" type="text"><b> dB</b></td> |
---|
900 | </tr> |
---|
901 | </tbody></table> |
---|
902 | </form> |
---|
903 | </td> |
---|
904 | </tr> |
---|
905 | </tbody></table> |
---|
906 | <p> </p> |
---|
907 | <table summary="" class="p-m-n" width="450" align="center" border="1" cellpadding="4" cellspacing="0"> |
---|
908 | <tbody><tr> |
---|
909 | <td class="section"><a name="free_space"></a>Free Space Loss</td> |
---|
910 | </tr> |
---|
911 | <tr> |
---|
912 | <td><p>Loss of power over distance (assuming no <a href="#fresnel" class="t-db">FRESNEL Effect</a> |
---|
913 | and nothing in the way). This a very idealised calculation and in |
---|
914 | practice everything interferes with the signal but it will give you a |
---|
915 | reasonable approximation of the actual loss over distance.</p> |
---|
916 | <p>Enter the system Frequency in MHz and the distance in either <b>Kilometers (Km) or Miles</b> below and then click the 'Calculate' button. 1 GHz = 1000 MHz e.g. 2400 = 2.4 GHz.</p> |
---|
917 | <a href="#free_calc" class="t-db">Calculations and equations used.</a> |
---|
918 | <form name="calcfreeloss"> |
---|
919 | <table summary="" class="p-m-s" width="100%" border="0" cellpadding="4" cellspacing="0"> |
---|
920 | <tbody><tr valign="top"> |
---|
921 | <td class="g-h-n" width="100">Frequency</td> |
---|
922 | <td class="g-h-n" width="120">Distance</td> |
---|
923 | <td> </td> |
---|
924 | <td align="center"><b>Result</b></td> |
---|
925 | </tr> |
---|
926 | <tr valign="top"> |
---|
927 | <td><input id="fsf" size="6" value="2400" type="text"><b> MHz</b></td> |
---|
928 | <td><input id="fsk" size="6" type="text"><b> Km<br>OR<b><br> |
---|
929 | <input id="fsm" size="6" type="text"><b> Miles</b></b></b></td> |
---|
930 | <td><input class="button" id="dbmcalc" value="Calculate" onclick='document.getElementById("fsr").value = free_space(document.getElementById("fsf").value, document.getElementById("fsk").value, document.getElementById("fsm").value);' type="button"></td> |
---|
931 | <td align="right"><input id="fsr" size="6" type="text"><b> dB</b></td> |
---|
932 | </tr> |
---|
933 | </tbody></table> |
---|
934 | </form> |
---|
935 | </td> |
---|
936 | </tr> |
---|
937 | </tbody></table> |
---|
938 | <p> </p> |
---|
939 | <table summary="" class="p-m-n" width="450" align="center" border="1" cellpadding="4" cellspacing="0"> |
---|
940 | <tbody><tr> |
---|
941 | <td class="section"><a name="fresnel"></a>Fresnel Zones</td> |
---|
942 | </tr> |
---|
943 | <tr> |
---|
944 | <td><p>Defines how much clearance you need (yes you need more than |
---|
945 | simple Line-of-Sight) and for longer links > 3 Km (2 miles) whether |
---|
946 | you may have a ground clearance problem from our friendly planet. <a href="http://www.zytrax.com/tech/wireless/fresnel.htm" class="t-db">M. Fresnel and his theories</a>.</p> |
---|
947 | <p>Enter the <b>Total link</b> distance (in Miles or Kilometers), if you do not enter an <b>Obstacle distance</b> (in Miles or Kilometers) the calculator will use the mid-point for all calculations (<b>Note:</b> |
---|
948 | assumes antennas at same height). Finally enter the system Frequency in |
---|
949 | MHz and then click the 'Calculate' button. 1 GHz = 1000 MHz e.g. 2400 = |
---|
950 | 2.4 GHz.</p> |
---|
951 | <p>The calculator will generate the radius of the 1st Fresnel zone only |
---|
952 | (at the obstable point or the mid-point), the 60% (no obstacle) radius |
---|
953 | and the height of the effective earth curvature at the mid-point of the |
---|
954 | <b>Total link</b> distance using the effective earth radius.</p> |
---|
955 | <a href="#fresnel_calc" class="t-db">Calculations and equations used.</a> |
---|
956 | <form name="calcfresnel"> |
---|
957 | <table summary="" class="norm" width="100%" border="0" cellpadding="4" cellspacing="0"> |
---|
958 | <tbody><tr class="g-h-n" valign="top"> |
---|
959 | <td width="100">Total Link</td> |
---|
960 | <td width="100">Obstacle Distance</td> |
---|
961 | <td colspan="2" align="center">1st Fresnel Zone Radius</td> |
---|
962 | </tr> |
---|
963 | <tr valign="top"> |
---|
964 | <td><input id="fltk" size="6" type="text"><b> Km<br>OR</b><br> |
---|
965 | <input id="fltm" size="6" type="text"><b> Miles</b></td> |
---|
966 | <td><input id="flok" size="6" type="text"><b> Km<br>OR<b><br> |
---|
967 | <input id="flom" size="6" type="text"><b> Miles</b></b></b></td> |
---|
968 | <td> |
---|
969 | <input id="flzm" size="6" type="text"><b> m<br>at<br></b> |
---|
970 | <input id="fld1k" size="6" type="text"><b> Km</b></td> |
---|
971 | <td><input id="flzf" size="6" type="text"><b> ft<br>at<br></b> |
---|
972 | <input id="fld1m" size="6" type="text"><b> Miles</b></td> |
---|
973 | </tr> |
---|
974 | <tr valign="top"> |
---|
975 | <td class="g-h-n">Frequency</td> |
---|
976 | <td> </td> |
---|
977 | <td class="g-h-n" colspan="2" align="center">60% No Obstacle Radius</td> |
---|
978 | </tr> |
---|
979 | <tr valign="top"> |
---|
980 | <td><input id="flf" size="6" value="2400" type="text"><b> MHz</b></td> |
---|
981 | <td> </td> |
---|
982 | <td align="right"><input id="flofm" size="6" type="text"><b> m</b></td> |
---|
983 | <td align="right"><input id="floff" size="6" type="text"><b> ft</b> |
---|
984 | </td></tr> |
---|
985 | <tr valign="top"> |
---|
986 | <td><input class="button" name="flcalc" value="Calculate" onclick="fres_zone();" type="button"></td> |
---|
987 | <td> </td> |
---|
988 | <td class="g-h-n" colspan="2" align="center">Earth Height (mid-point)</td> |
---|
989 | </tr> |
---|
990 | <tr valign="top"> |
---|
991 | <td> </td> |
---|
992 | <td> </td> |
---|
993 | <td align="right"><input id="flehm" size="6" type="text"><b> m</b></td> |
---|
994 | <td align="right"><input id="flehf" size="6" type="text"><b> ft</b> |
---|
995 | </td></tr> |
---|
996 | </tbody></table> |
---|
997 | </form> |
---|
998 | </td> |
---|
999 | </tr> |
---|
1000 | </tbody></table> |
---|
1001 | <p> </p> |
---|
1002 | <table summary="" class="norm" width="500" align="center" border="1" cellpadding="4" cellspacing="0"> |
---|
1003 | <tbody><tr> |
---|
1004 | <td class="section"><a name="system"></a>System Performance</td> |
---|
1005 | </tr> |
---|
1006 | <tr> |
---|
1007 | <td><p>This calculator will give you one of three answers:</p> |
---|
1008 | <ol> |
---|
1009 | <li>If you leave distance blank it will apply the defined SAD factor |
---|
1010 | (or default to 30%) to the Operating Margin and supply the max. |
---|
1011 | distance (in Km and Miles) at which the Margin operates.</li> |
---|
1012 | <li>If you enter the distance it will calculate the Operating Margin and the SAD factor.</li> |
---|
1013 | <li>If you enter distance but leave RX or TX antenna gain (or both) |
---|
1014 | blank it will apply the chosen SAD factor (or default it to 30% if none |
---|
1015 | supplied) and generate the required antenna power. If both are left |
---|
1016 | blank it will calculate a symmetrical antenna gain.</li> |
---|
1017 | </ol> |
---|
1018 | <p>To RESET any parameter just set it to BLANK before clicking 'Calculate'</p> |
---|
1019 | <p><b>Notes:</b> RX Sensitivity is ALWAYS expressed as a negative dBm |
---|
1020 | (- dBm) and is the lowest power of signal your radio can handle. Its |
---|
1021 | buried somewhere in your radio spec and will be typically in the range |
---|
1022 | of -70 to -110 dBm. Don't guess or 'fudge' this number.</p> |
---|
1023 | <p><b>Note:</b> If you solve for TX antenna (you leave it blank) and |
---|
1024 | define a specific SAD factor it is applied to the TX budget and any TX |
---|
1025 | antenna value will include this factor. If you then click Calculate |
---|
1026 | again without changing anything, the SAD factor will be calculated to <b>include</b> the supplied TX antenna value and thus may show a lower value than the original one.</p> |
---|
1027 | <a href="#system_calc" class="t-db">Calculations and equations used.</a> |
---|
1028 | <form name="calcfreeloss"> |
---|
1029 | <table summary="" class="p-m-n" width="100%" border="0" cellpadding="4" cellspacing="0"> |
---|
1030 | <tbody><tr valign="top"> |
---|
1031 | <td class="g-h-n" width="120">Frequency</td> |
---|
1032 | <td class="g-h-n" width="120">Distance</td> |
---|
1033 | <td class="g-h-n" width="120"> </td> |
---|
1034 | <td class="g-h-n" align="center">FS Loss</td> |
---|
1035 | </tr> |
---|
1036 | <tr valign="top"> |
---|
1037 | <td><input id="spf" value="2400" size="10" type="text"><b> MHz</b></td> |
---|
1038 | <td><input id="spk" size="6" type="text"><b> Km<br>OR</b><br> |
---|
1039 | <input id="spm" size="6" type="text"><b> Miles</b></td> |
---|
1040 | <td align="right"> </td> |
---|
1041 | <td align="right"><input id="spfr" size="6" type="text"><b> dB</b></td> |
---|
1042 | </tr> |
---|
1043 | <tr valign="top"> |
---|
1044 | <td class="g-h-n">TX Power</td> |
---|
1045 | <td class="g-h-n">TX Cable</td> |
---|
1046 | <td class="g-h-n">TX Antenna</td> |
---|
1047 | <td class="g-h-n" align="center">Total TX</td> |
---|
1048 | </tr> |
---|
1049 | <tr valign="top"> |
---|
1050 | <td><input id="sptxdbm" size="6" type="text"><b> dBm<br>OR<br></b> |
---|
1051 | <input id="sptxmw" size="6" type="text"><b> mW</b></td> |
---|
1052 | <td><input id="sptxc" size="6" type="text"><b> dBm</b></td> |
---|
1053 | <td><input id="sptxa" size="6" type="text"><b> dB</b></td> |
---|
1054 | <td align="right"><input id="sptxr" size="6" type="text"><b> dB</b></td> |
---|
1055 | </tr> |
---|
1056 | <tr valign="top"> |
---|
1057 | <td class="g-h-n">RX Sensitivity</td> |
---|
1058 | <td class="g-h-n">RX Cable</td> |
---|
1059 | <td class="g-h-n">RX Antenna</td> |
---|
1060 | <td class="g-h-n" align="center">Total RX</td> |
---|
1061 | </tr> |
---|
1062 | <tr valign="top"> |
---|
1063 | <td><input id="sprxdbm" value="-89" size="6" type="text"><b> dBm</b></td> |
---|
1064 | <td><input id="sprxc" size="6" type="text"><b> dB</b></td> |
---|
1065 | <td><input id="sprxa" size="6" type="text"><b> dB</b></td> |
---|
1066 | <td align="right"><input id="sprxr" size="6" type="text"><b> dB</b></td> |
---|
1067 | </tr> |
---|
1068 | <tr class="g-h-n" valign="top"> |
---|
1069 | <td>Margin</td> |
---|
1070 | <td>RX Power</td> |
---|
1071 | <td>SAD Factor</td> |
---|
1072 | <td align="center">Theoretical</td> |
---|
1073 | </tr> |
---|
1074 | <tr valign="top"> |
---|
1075 | <td><input class="button" value="Calculate" onclick="op_margin()" type="button"></td> |
---|
1076 | <td><input id="spomrx" size="6" type="text"><b> dBm</b></td> |
---|
1077 | <td><input id="spomsad" size="6" type="text"><b> %</b></td> |
---|
1078 | <td align="right"><input id="spomr" size="6" type="text"><b> dB</b></td> |
---|
1079 | </tr> |
---|
1080 | </tbody></table> |
---|
1081 | </form> |
---|
1082 | </td> |
---|
1083 | </tr> |
---|
1084 | </tbody></table> |
---|
1085 | <p> </p> |
---|
1086 | <table summary="" class="norm" width="450" align="center" border="1" cellpadding="4" cellspacing="0"> |
---|
1087 | <tbody><tr> |
---|
1088 | <td class="section"><a name="dbm"></a>milliWatts to dBm (and vice versa) |
---|
1089 | </td> |
---|
1090 | </tr> |
---|
1091 | <tr> |
---|
1092 | <td><p>Power in milliWatts to dBm (and vice versa) . Enter the 'Transmit Power' (<b>A or G above</b>) in <b>milliWatts</b> OR the 'Power Ratio' in <b>dBm</b> and click the appropriate 'Calculate' button. 1 Watt = 1000 milliWatts.</p> |
---|
1093 | <a href="#db_calc" class="t-db">Calculations and equations used.</a> |
---|
1094 | <form name="calcdbm" action="" method="get"> |
---|
1095 | <table summary="" class="p-m-s" width="100%" border="0" cellpadding="4" cellspacing="0"> |
---|
1096 | <tbody><tr valign="top"> |
---|
1097 | <td class="g-h-n" width="150">Transmit Power</td> |
---|
1098 | <td width="150"> </td> |
---|
1099 | <td class="g-h-n" width="140" align="center">Result</td> |
---|
1100 | </tr> |
---|
1101 | <tr valign="top"> |
---|
1102 | <td><input id="dbmmw" size="10" type="text"><b>mW</b></td> |
---|
1103 | <td align="center"><input class="button" id="dbmcalc" value="Calculate" onclick='document.getElementById("rdbm").value = to_dbm(document.getElementById("dbmmw").value); return(0);' type="button"></td> |
---|
1104 | <td align="right"><input id="rdbm" size="10" type="text"><b> dBm</b></td> |
---|
1105 | </tr> |
---|
1106 | <tr valign="top"> |
---|
1107 | <td class="g-h-n">Power Ratio</td> |
---|
1108 | <td> </td> |
---|
1109 | <td class="g-h-n" align="center">Result</td> |
---|
1110 | </tr> |
---|
1111 | <tr valign="top"> |
---|
1112 | <td><input id="udbm" size="10" type="text"><b> dBm</b></td> |
---|
1113 | <td align="center"><input class="button" id="mwcalc" value="Calculate" onclick='document.getElementById("umw").value = from_dbm(document.getElementById("udbm").value); return(0);' type="button"></td> |
---|
1114 | <td align="right"><input id="umw" size="10" type="text"><b> mW</b></td> |
---|
1115 | </tr> |
---|
1116 | </tbody></table> |
---|
1117 | </form> |
---|
1118 | </td> |
---|
1119 | </tr> |
---|
1120 | </tbody></table> |
---|
1121 | |
---|
1122 | |
---|
1123 | |
---|
1124 | <!-- end of calculators --> |
---|
1125 | <h1><a name="budget_calc"></a>Power Budget Calculations</h1> |
---|
1126 | <ol> |
---|
1127 | <li><p>mW to dBm = 10Log<sub>10</sub>(Watts) + 30</p></li> |
---|
1128 | <li><p>feet to meters = .3048</p></li> |
---|
1129 | <li><p>meters to feet = 3.28</p></li> |
---|
1130 | <li><p>Calculator normalises all distances to kilometers and meters</p></li> |
---|
1131 | <li><p>Connectors loss = 0.10 * square root (frequency in GHz)</p></li> |
---|
1132 | </ol> |
---|
1133 | <h1><a name="free_calc"></a>Free Space Calculations</h1> |
---|
1134 | <ol> |
---|
1135 | <li><p>Free space loss = 36.56 + 20Log<sub>10</sub>(Frequency) + 20Log<sub>10</sub>(Distance in miles)</p></li> |
---|
1136 | <li><p>Calculator normalises all distances to miles</p></li> |
---|
1137 | <li><p>Miles to Kilometers = 1.609</p><p> |
---|
1138 | </p></li><li><p>Kilometers to miles = 0.621</p></li> |
---|
1139 | </ol> |
---|
1140 | <h1><a name="fresnel_calc"></a>Fresnel Zone Calculations</h1> |
---|
1141 | <ol> |
---|
1142 | <li><p>Calculator normalises all distances to kilometers and meters</p></li> |
---|
1143 | <li><p>Miles to Kilometers = 1.609</p><p> |
---|
1144 | </p></li><li><p>Kilometers to miles = 0.621</p></li> |
---|
1145 | <li><p>feet to meters = .3048</p></li> |
---|
1146 | <li><p>meters to feet = 3.28</p></li> |
---|
1147 | <li><p>1st Fresnel Zone radius (Km) = 17.3 x Sqr root ((Obstacle |
---|
1148 | Distance x (Total Link - Obstacle Distance)) / (Frequency in GHz x |
---|
1149 | Total Link))</p></li> |
---|
1150 | <li><p>1st Fresnel Zone radius (miles) = 72.6 x Sqr root ((Obstacle |
---|
1151 | Distance x (Total Link - Obstacle Distance)) / (Frequency in GHz x |
---|
1152 | Total Link))</p></li> |
---|
1153 | <li><p>Obstacle free radius = 0.6 x 1st Fresnel Zone radius</p></li> |
---|
1154 | <li><p>Radius of nth Fresnel zone (meter) = sqr root ( (n x wave length |
---|
1155 | x Obstacle distance x (Total Link - Obstacle Distance)) / Total Link )</p></li> |
---|
1156 | <li><p>wave length (meters) = speed of light (299,792,458 m/s) / frequency in Hz</p></li> |
---|
1157 | <li><p>Earth curvature calculation = (Total Link) <sup>2</sup> /(8 * effective earth radius)</p></li> |
---|
1158 | <li><p>effective earth radius = 4/3 * Earth radius</p></li> |
---|
1159 | <li><p>Earth radius = 3963 miles, 6378 Km</p></li> |
---|
1160 | </ol> |
---|
1161 | <h1><a name="system_calc"></a>System Performance Calculations</h1> |
---|
1162 | <ol> |
---|
1163 | <li><p>Calculator normalises all distances to miles and feet during calculations.</p></li> |
---|
1164 | <li><p>Free space loss = 36.56 + 20Log<sub>10</sub>(Frequency) + 20Log<sub>10</sub>(Dist in miles)</p></li> |
---|
1165 | <li><p>mW to dBm = 10Log<sub>10</sub>(milliWatts) + 30</p></li> |
---|
1166 | <li><p>dBm to mW = 10<sup>(dBm/10)</sup></p></li> |
---|
1167 | <li><p>RX Power = Margin - RX sensitivity</p></li> |
---|
1168 | <li><p>Theoretical margin = TX power budget + RX power budget - free space loss</p></li> |
---|
1169 | <li><p>SAD factor = Theoretical margin/TX power budget * 100 and shows the percentage of spare power on transmission.</p></li> |
---|
1170 | </ol> |
---|
1171 | <h1><a name="db_calc"></a>dBm to Watts Calculations</h1> |
---|
1172 | <ol> |
---|
1173 | <li><p>mW to dBm = 10Log<sub>10</sub>(Watts) + 30</p></li> |
---|
1174 | <li><p>dBm to mW = 10<sup>(dBm/10)</sup></p></li> |
---|
1175 | </ol> |
---|
1176 | <hr> |
---|
1177 | <p class="p-m-n"><br>Problems, comments, suggestions, corrections |
---|
1178 | (including broken links) or something to add? Please take the time from |
---|
1179 | a busy life to 'mail us' (at top of screen), the webmaster (below) or <a href="javascript:mailus('info-support','zytrax.com','Support%20Issue')" class="t-db">info-support at zytrax</a>. You will have a warm inner glow for the rest of the day.</p> |
---|
1180 | </div> |
---|
1181 | </div> |
---|
1182 | |
---|
1183 | |
---|
1184 | <div class="l-f"> |
---|
1185 | <div class="l-100"> |
---|
1186 | <!-- standard footer full width --> |
---|
1187 | <table align="center" border="0" cellspacing="0"> |
---|
1188 | <tbody><tr valign="top"> |
---|
1189 | <td class="p-f-s" align="left"> |
---|
1190 | |
---|
1191 | Copyright © 1994 - 2009 ZyTrax, Inc.<br> All rights reserved. |
---|
1192 | <a href="http://www.zytrax.com/legal.html" class="p-f-s">Legal and Privacy</a> |
---|
1193 | </td> |
---|
1194 | <td align="center"><a href="http://www.zytrax.com/isp/web" target="_blank" class="p-f-s">site by zytrax</a><br> <a href="http://www.super.net.sg/" target="_blank" class="p-f-s"><img src="calc_files/super-net-s.gif" alt="Hosted by super.net.sg" border="0"></a></td> |
---|
1195 | <td class="p-f-s" align="right"> |
---|
1196 | <a href="javascript:mailus('web-master','zytrax.com','About%20Web%20site')" class="p-f-s">web-master at zytrax</a><br> |
---|
1197 | Page modified: July 10 2009. |
---|
1198 | </td> |
---|
1199 | </tr> |
---|
1200 | </tbody></table> |
---|
1201 | </body></html> |
---|