//** Wersja przeczyszczona, chyba trudniejsza do zrozumiemia - 11.08.2005 :-(( //** Przerobka z mojej wersji historycznej kalkulatora, Turbo Pascal - 1991 r. //** Ha. To poczatek. Zobacz jakie to proste. Pzdr.J.P. ;-) function LCD_strt() { //** Inicjuj wyswietlanie LCD document.Mam.Antena.value=formatuj(65, 4); document.Bedzie.Antena.value=formatuj(83, 4); document.EIRP.Antena.value=formatuj(49, 4); } // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // *** Niektore Funkcje Matematyczne w JS // Math.pow(a,b) --> a to the power b // Math.abs(a) --> the absolute value of a // Math.log(a) --> log of a base e // log (x) = 0.43429*ln (x) // form.D_0.value = Math.pow(10,2) ==> 10^2 // ______________________________________________________________________________ var Q_c = 39.6; //** [dB] - dl.fali i wyk.apertury G_T = 21; //** [db(1/K)] - wspolczynnik przydatnosci T_a = 40; //** [K] - temperatura szumowa anteny T_0 = 290; //** [K] - temperatura standardowa M = 0.43429 //** log(e) --> log (x) = 0.43429*ln (x) d_km = 38485; //** odleglosc satelity od stacji odbiorczej [km] f_GHz = 11.258; //** srednia czestotl. nadawania [GHz] B_MHz = 27.0; //** szerokosc pasma tunera [MHz] M_bezp = 2.0; //** marg.bezpiecz.: 0=80%[roku], 2=95% 3[dB]=99% C_N0 = 12.0; //** warun.odb.:doskon=17,dobre>12,znosne=10[dB] v_ofs = 0.70; //** wspol.wykorzyst.apertury anteny offset. // ______________________________________________________________________________ function F_Sredn_Anteny(F) { //** licz srednice anteny dla F - wsp.szum. var x, D; // 1 2 3 4 5 6 6 5 4 3 2 1 x= (-Q_c+G_T+10*M*Math.log(Math.abs(T_a+T_0*(Math.pow(10,(F/10)) -1)) ) )/20; D=Math.pow(10,x) x=formatuj(D, 4); return x; } // ****************************************************************************** function Licz_D(D, f1, f2) { //** licz sr. ant. po zmianie F var x, d_1, d_2; d_1 = F_Sredn_Anteny(f1); d_2 = F_Sredn_Anteny(f2); x= Math.round(D*(d_1/d_2)); return x; } // ****************************************************************************** function calc_D1(form) { //** licz srednice anteny "Pozornej" var F_0 = eval(form.F_0.value); //** [dB] - wspolcz.szum. LNB stary var F_1 = eval(form.F_1.value); //** [dB] - wspolcz.szum. LNB nowy var D_0 = eval(form.D_0.value); var x; x = Licz_D(D_0, F_0, F_1); document.Mam.Antena.value=formatuj(D_0, 4); document.Bedzie.Antena.value=formatuj(x, 4); form.D_1.value=formatuj(x, 4); document.Powtorka.Disp.value=1; } // ****************************************************************************** function calc_D0(form) { //** licz srednice anteny "Mam" var F_0 = eval(form.F_0.value); //** [dB] - wspolcz.szum. LNB stary var F_1 = eval(form.F_1.value); //** [dB] - wspolcz.szum. LNB nowy var D_1 = eval(form.D_1.value); var x; x = Licz_D(D_1, F_1, F_0); document.Mam.Antena.value=formatuj(x, 4); document.Bedzie.Antena.value=formatuj(D_1, 4); form.D_0.value=formatuj(x, 4); document.Powtorka.Disp.value=1; } // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // Turbo Pascal - 1991 r. // EIRP := C_N + 10*LOG(Ta+T_o*(E10(F/10.0)-1.0)) // - (Q+K+20*LOG(D_ant)); // C_N := C_N0 + M_bezp // M_bezp = 2.0; { marg.bezpiecz.: 0=80%[roku], 2=95% 3[dB]=99% } // C_N0 = 12.0; { warun.odb.:doskon=17,dobre>12,znosne=10[dB] } // Q := 20.40 + 10*LOG(v_ant) + 20*LOG(f_Ghz); // K := 76.16 - 20*LOG(d_km) - 20*LOG(f_GHz) - 10*LOG(B_MHz); // v_ofs = 0.70; { wspol.wykorzyst.apertury anteny offset. } // ______________________________________________________________________________ function calc_EIRP(form) { var F_0 = eval(form.F_0.value); //** [dB] - wspolcz.szum. "LNB Mam" var D_0 = eval(form.D_0.value); var x, Y, K, Q; Q = 20.40 + 10*M*Math.log(v_ofs) + 20*M*Math.log(f_GHz); K = 76.16 - 20*M*Math.log(d_km) - 20*M*Math.log(f_GHz) - 10*M*Math.log(B_MHz); C_N = C_N0 + M_bezp; Y= Q + K + 20*M*Math.log(D_0/100); x = C_N + 10*M*Math.log(T_a + (T_0*(Math.pow(10,(F_0/10)) - 1))) - Y; x = Math.round(x); document.EIRP.Antena.value = formatuj(x, 4); form.EIRP.value = formatuj(x, 4); document.Powtorka.Disp.value=1; } // ****************************************************************************** function calc_EIRP2D0(form) { //** zamien EIRP na wielkosc "Mam antene" var EP = eval(form.EIRP.value); //** wartosc EIRP wprowadzona z klawiat. var F_0 = eval(form.F_0.value); //** [dB] - wspolcz.szum. "LNB Mam" var x, Z; Q = 20.40 + 10*M*Math.log(v_ofs) + 20*M*Math.log(f_GHz); K = 76.16 - 20*M*Math.log(d_km) - 20*M*Math.log(f_GHz) - 10*M*Math.log(B_MHz); C_N = C_N0 + M_bezp; Z = C_N + 10*M*Math.log(T_a + (T_0*(Math.pow(10,(F_0/10)) - 1))); x = 100*(Math.pow(10,((Z - EP - Q - K)/20))); x = Math.round(x); form.D_0.value = formatuj(x, 4); //** Nowa srednica ant. po zamianie EIRP form.F_1.value = formatuj(F_0, 4); //** Zrownaj F dla LNB "Po wymianie" document.Mam.Antena.value = formatuj(x, 4); //** Wyswietl nowa sr. ant. na LCD document.EIRP.Antena.value = formatuj(EP, 4); //** Wyswietl EIRP, na LCD document.Powtorka.Disp.value=1; } // ****************************************************************************** function formatuj(co, p_ile) // *** Zaokraglaj do "p_ile" pozycji *** { var invalid = "**************************"; var nines = "999999999999999999999999"; var strin = "" + co; var fltin = parseFloat(strin); if (strin.length <= p_ile) return strin; if (strin.indexOf("e") != -1 || fltin > parseFloat(nines.substring(0, p_ile)+".4")) return invalid.substring(0, pile); var rounded = "" + (fltin + (fltin - parseFloat(strin.substring(0, p_ile)))); return rounded.substring(0, p_ile); } //** Uff. To juz koniec. Pzdr.J.P. ;-) //** Wersja przeczyszczona, ale trudniejsza do zrozumiemia - 11.08.2005 :-((