Viestikallion työkaluja: EME matkavaimennus
 

Hostattuja

Tue toimintaamme!

  <?php     # -*- PHP -*-
$OTHERURI="eme-pathloss.php?LANG=other";
$NOCACHE=1;
require(
"../include/head1.inc");
langfilt('FI:
FI:Viestikallion työkaluja: EME matkavaimennus
EN:Viestikallio Tools: EME Pathloss'
);
require(
"../include/head2.inc");
langfilt('FI:
FI:Viestikallion työkaluja: EME matkavaimennus
EN:Viestikallio Tools: EME Pathloss'
);
include(
"../include/head3.inc");
include(
"../include/menu.inc");

printf("<TABLE><TR><TD>&nbsp;<TD>\n");

if (
$HTTP_GET_VARS["SOURCE"] != "" || $HTTP_GET_VARS["source"] != "") {
    
printf("\n<FONT SIZE=1>\n");
    
# highlight_file("eme-pathloss.php");
    
show_source("eme-pathloss.php");
    
printf("</FONT><P><HR><P>\n");
    include(
"../include/sign-oh2mqk.inc");
    
printf("<P></TR></TABLE>\n");
    include(
"../include/base.inc");
    include(
"../include/foot.inc"); 
    exit;
}


#  - Frequency
#  - Diameter
#  - Feed form function (e.g. "1.3" for gaussian)
#  - Surface quality (Efficiency)
#  - NoiseTemp: for G/T noise temperature of feeds and supports


$FREQ $HTTP_GET_VARS["FREQ"];
if (
$FREQ == "") {
  
$FREQ $HTTP_POST_VARS["FREQ"];
}
if (
$FREQ == "") {
  
$FREQ "2.45";
}

$RXBW $HTTP_GET_VARS["RXBW"];
if (
$RXBW == "") {
  
$RXBW $HTTP_POST_VARS["RXBW"];
}
if (
$RXBW == "" || $RXBW || $RXBW 1000000) {
  
$RXBW 100;
}

$RXSNR $HTTP_GET_VARS["RXSNR"];
if (
$RXSNR == "") {
  
$RXSNR $HTTP_POST_VARS["RXSNR"];
}
if (
$RXSNR == "" || $RXSNR 0.1 || $RXSNR 30.0) {
  
$RXSNR "5.0";
}

$RxTemp $HTTP_GET_VARS["RXTEMP"];
if (
$RxTemp == "") {
  
$RxTemp $HTTP_POST_VARS["RXTEMP"];
}
if (
$RxTemp == "") {
  
$RxTemp "290.0";
}
if (
$RxTemp 4) {
  
$RxTemp "4.0";
}
if (
$RxTemp 400.0) {
  
$RxTemp "400.0";
}

$RXNF $HTTP_GET_VARS["RXNF"];
if (
$RXNF == "") {
  
$RXNF $HTTP_POST_VARS["RXNF"];
}
if (
$RXNF == "" || $RXNF 0.1 || $RXNF 10.0) {
  
$RXNF "2.0";
}

$RXLOSS $HTTP_GET_VARS["RXLOSS"];
if (
$RXLOSS == "") {
  
$RXLOSS $HTTP_POST_VARS["RXLOSS"];
}
if (
$RXLOSS == "" || $RXLOSS 0.01 || $RXLOSS 10.0) {
  
$RXLOSS "0.2";
}

$ANTTEMP $HTTP_GET_VARS["ANTTEMP"];
if (
$ANTTEMP == "") {
  
$ANTTEMP $HTTP_POST_VARS["ANTTEMP"];
}
if (
$ANTTEMP == "" || $ANTTEMP || $ANTTEMP 1000) {
  
$ANTTEMP 20;
}

$TXANTGAIN $HTTP_GET_VARS["TXANTGAIN"];
if (
$TXANTGAIN == "") {
  
$TXANTGAIN $HTTP_POST_VARS["TXANTGAIN"];
}
if (
$TXANTGAIN == "" || $TXANTGAIN || $TXANTGAIN 100) {
  
$TXANTGAIN 30;
}

$RXANTGAIN $HTTP_GET_VARS["RXANTGAIN"];
if (
$RXANTGAIN == "") {
  
$RXANTGAIN $HTTP_POST_VARS["RXANTGAIN"];
}
if (
$RXANTGAIN == "" || $RXANTGAIN || $RXANTGAIN 100) {
  
$RXANTGAIN 30;
}

$TXPOWERIN $HTTP_GET_VARS["TXPOWERIN"];
if (
$TXPOWERIN == "") {
  
$TXPOWERIN $HTTP_POST_VARS["TXPOWERIN"];
}
if (
$TXPOWERIN == "") {
  
$TXPOWERIN 30;
}

$TXPOWER $TXPOWERIN;

$PWRUNIT $HTTP_GET_VARS["PWRUNIT"];
if (
$PWRUNIT == "") {
  
$PWRUNIT $HTTP_POST_VARS["PWRUNIT"];
}
if (
$PWRUNIT == "") {
  
$PWRUNIT 1;
}

if (
$PWRUNIT == 2) {
  
$TXPOWER $TXPOWER 30.0;
} else {
  if (
$PWRUNIT == 3) {
    if (
$TXPOWER 0.0001) {
      
$TXPOWER 0.001;
      
$TXPOWERIN "0.001";
    }
    
$TXPOWER 10.0 log10$TXPOWER 1000.0 );
  }
}



$MOONDIAM $HTTP_GET_VARS["MOONDIAM"];
if (
$TEMP == "") {
  
$TEMP $HTTP_POST_VARS["MOONDIAM"];
}
if (
$MOONDIAM ==  "") { $MOONDIAM 3400; }
if (
$MOONDIAM <  100) { $MOONDIAM 100;  }
if (
$MOONDIAM 3400) { $MOONDIAM 3400; }



langfilt('

<P>

FI:<H2>EME matkavaimennuslaskenta</H2>
EN:<H2>EME free-space path-loss calculation</H2>

<P>
FI: Alkuperäisenä laskimena DF6CY:n Excel taulukko
EN: Original calculator was DF6CY\'s Excel sheet
: <A HREF="df9cy-eme-pathloss.xls">df9cy-eme-pathloss.xls</A>
<P>

<FORM ACTION="eme-pathloss.php" METHOD=POST>
<!-- <TABLE BORDER=1 RULES=ALL> -->
<TABLE>
<TBODY VALIGN=TOP>

<TR><TH>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TH>
    <TH>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TH>
    <TH>&nbsp;</TH><TH>&nbsp;</TH></TR>

<TR VALIGN=TOP><TH ALIGN=LEFT COLSPAN=4>
FI:Signaali-kohina suhde / vastaanottimen herkkyysrajan laskentaparametrit
EN:Signal to Noise Ratio / Receiver Sensitivity Limit Parameters
</TH></TR>

<TR VALIGN=TOP><TH COLSPAN=4>&nbsp;</TH></TR>

**:<TR VALIGN=TOP><TH>&nbsp;</TH><TH ALIGN=LEFT>
FI:Vastaanottimen<BR>kaistaleveys
EN:Receiver<BR>Bandwidth
</TH><TD ALIGN=RIGHT>
<INPUT TYPE="text" NAME="RXBW" SIZE=9 ALIGN=RIGHT
**:       VALUE="'
.$RXBW.'"></TD>
FI: <TD>Hertzeinä
EN: <TD>in Hertz
</TD></TR>

<TR VALIGN=TOP><TH COLSPAN=4>&nbsp;</TH></TR>

**:<TR VALIGN=TOP><TH>&nbsp;</TH><TH ALIGN=LEFT>
FI:Vastaanottimen<BR>lämpötila
EN:Receiver<BR>Temperature
</TH><TD ALIGN=RIGHT>
<INPUT TYPE="text" NAME="RXTEMP" SIZE=9 ALIGN=RIGHT
**:       VALUE="'
.$RxTemp.'"></TD>
FI: <TD>Kelviniä; 290 vastaa +18° C
EN: <TD>in Kelvins; 290 is ROOM TEMPERATURE
</TD></TR>

<TR VALIGN=TOP><TH COLSPAN=4>&nbsp;</TH></TR>

**:<TR VALIGN=TOP><TH>&nbsp;</TH><TH ALIGN=LEFT>
FI:Vastaanoton<BR>haluttu SNR
EN:Desired SNR
</TH><TD ALIGN=RIGHT>
<INPUT TYPE="text" NAME="RXSNR" SIZE=9 ALIGN=RIGHT
       VALUE="'
.$RXSNR.'"></TD>
FI: <TD>desibeleinä
EN: <TD>in dB
</TD></TR>

<TR VALIGN=TOP><TH COLSPAN=4>&nbsp;</TH></TR>

**:<TR VALIGN=TOP><TH>&nbsp;</TH><TH ALIGN=LEFT>
FI:Vastaanottimen<BR>kohinaluku
EN:Receiver Noise<BR>Figure
</TH><TD ALIGN=RIGHT>
<INPUT TYPE="text" NAME="RXNF" SIZE=9 ALIGN=RIGHT
       VALUE="'
.$RXNF.'"></TD>
**:<TD>
FI:desibeleinä
EN:in dB
</TD></TR>

<TR VALIGN=TOP><TH COLSPAN=4>&nbsp;</TH></TR>

**:<TR VALIGN=TOP><TH>&nbsp;</TH><TH ALIGN=LEFT>
FI:Häviöt ennen<BR>LNA:ta
EN:Losses<BR>prior to LNA
</TH><TD ALIGN=RIGHT>
<INPUT TYPE="text" NAME="RXLOSS" SIZE=9 ALIGN=RIGHT
       VALUE="'
.$RXLOSS.'"></TD>
**:<TD>
FI:desibeleinä
EN:in dB
</TD></TR>

<TR VALIGN=TOP><TH COLSPAN=4>&nbsp;</TH></TR>

**:<TR VALIGN=TOP><TH>&nbsp;</TH><TH ALIGN=LEFT>
FI:Antennnilämpötila<BR>(Taivas)
EN:Antenna<BR>temperature (Sky)
</TH><TD ALIGN=RIGHT>
<INPUT TYPE="text" NAME="ANTTEMP" SIZE=9 ALIGN=RIGHT
       VALUE="'
.$ANTTEMP.'"></TD>
**:<TD>
FI:Kelvineinä [K]
EN:in Kelvins [K]
</TD></TR>

<TR VALIGN=TOP><TH COLSPAN=4>&nbsp;</TH></TR>

**:<TR VALIGN=TOP><TH ALIGN=LEFT COLSPAN=4>
FI:Maksimikuuluvuuden laskentaparametrit
EN:Calculation of maximum possible Free Space Range parameters
</TH></TR>

<TR VALIGN=TOP><TH COLSPAN=4>&nbsp;</TH></TR>

**:<TR VALIGN=TOP><TH>&nbsp;</TH><TH ALIGN=LEFT>
FI:Lähetinantennin<BR>suuntavahvistus
EN:Transmit<BR>antenna gain
**:</TH><TD ALIGN=RIGHT>
**:<INPUT TYPE="text" NAME="TXANTGAIN" SIZE=9 ALIGN=RIGHT
**:       VALUE="'
.$TXANTGAIN.'"></TD><TD>
FI:dBi
EN:in dBi
</TD></TR>

<TR VALIGN=TOP><TH COLSPAN=4>&nbsp;</TH></TR>

**:<TR VALIGN=TOP><TH>&nbsp;</TH><TH ALIGN=LEFT>
FI:Vastaanotinantennin<BR>suuntavahvistus
EN:Receive<BR>antenna gain
**:</TH><TD ALIGN=RIGHT>
**:<INPUT TYPE="text" NAME="RXANTGAIN" SIZE=9 ALIGN=RIGHT
**:       VALUE="'
.$RXANTGAIN.'"></TD><TD>
FI:dBi
EN:in dBi
</TD></TR>


<TR VALIGN=TOP><TH COLSPAN=4>&nbsp;</TH></TR>

**:<TR VALIGN=TOP><TH ROWSPAN=3>&nbsp;</TH><TH ALIGN=LEFT ROWSPAN=3>
FI:Lähettimen<BR>teho
EN:Transmit<BR>power
**:</TH><TD VALIGN=TOP ALIGN=RIGHT ROWSPAN=3>
**:<INPUT TYPE="text" NAME="TXPOWERIN" SIZE=9 ALIGN=RIGHT
**:       VALUE="'
.$TXPOWERIN.'"></TD>');

printf("<TD><INPUT TYPE=radio NAME=PWRUNIT VALUE=1");
if (
$PWRUNIT == 1) { echo(" CHECKED"); }
printf(">&nbsp;");
langfilt('**:
FI:desibeli-milliwatteina (dBm)
EN:in dBm (dB relative to 1mW)'
);
langfilt('</TD></TR>

<TR><TD>'
);
printf("<INPUT TYPE=radio NAME=PWRUNIT VALUE=2");
if (
$PWRUNIT == 2) { echo(" CHECKED"); }
printf(">&nbsp;");
langfilt('**:
FI:desibeli-watteina (dBW)
EN:in dBW (dB relative to 1W)'
);
langfilt('</TD></TR>

<TR><TD>'
);
printf("<INPUT TYPE=radio NAME=PWRUNIT VALUE=3");
if (
$PWRUNIT == 3) { echo(" CHECKED"); }
printf(">&nbsp;");
langfilt('**:
FI:Watteina (W)
EN:in Wats (W)'
);
langfilt('</TD></TR>

<TR VALIGN=TOP><TH COLSPAN=4>&nbsp;</TH></TR>

**:<TR VALIGN=TOP><TH>&nbsp;</TH><TH ALIGN=LEFT>
FI:Taajuus
EN:Frequency
**:</TH><TD ALIGN=RIGHT>
**:<INPUT TYPE="text" NAME="FREQ" SIZE=9 ALIGN=RIGHT
**:       VALUE="'
.$FREQ.'"></TD><TD>
FI:Gigahertseinä (GHz)
EN:in GHz
</TD></TR>

<TR VALIGN=TOP><TH COLSPAN=4>&nbsp;</TH></TR>

<TR VALIGN=TOP><TH ALIGN=LEFT COLSPAN=4>
FI:EME yhteyden erityisparametrit
EN:EME situation special parameters
</TR>

<TR VALIGN=TOP><TH COLSPAN=4>&nbsp;</TH></TR>

**:<TR VALIGN=TOP><TH>&nbsp;</TH><TH ALIGN=LEFT>
FI:Kuun läpimitta
EN:Moon diameter
</TH><TD ALIGN=RIGHT>
<INPUT TYPE="text" NAME="MOONDIAM" SIZE=4 ALIGN=RIGHT
**:       VALUE="'
.$MOONDIAM.'"></TD>
**:<TD>
FI:Kilometreinä<BR>&nbsp;<BR><B>Huomio: Käytä arvoa 3400 jos et tiedä varmaksi,
FI: että lähetinantenni alivalaisee kuun!</B>
EN:in kilometers<BR>&nbsp;<BR><B>NOTE: Use value of 3400 unless you know for
EN: sure that the transmitter antenna will sub-illuminate the moon!
EN:</B>
</TD></TR>

<TR VALIGN=TOP><TH COLSPAN=4>&nbsp;</TH></TR>


</TBODY>
</TABLE>
<P>
**: <INPUT TYPE="submit" NAME="doit" VALUE="
FI:Laske
EN:Compute
">
</FORM>

<P>

'
);

### ---- The business itself ----

### The original DF6CY EXCEL spread-sheet seems to
### contain a few bugs.. D34

# Rx Noise Power = k T RxBW; T = 290 K

#$RxTemp = 290.0;
$k 1.38E-23;

$MoonDist3 406700.0# Apogee distance
$MoonDist2 384400.0# "Mean" distance
$MoonDist1 356400.0# Perigee distance

$MoonReflectivity 0.07;
  
##  This is quite good value for any frequency 10 thru 30 000 MHz.

$RxNPwr     10.0 log10($RXBW $RxTemp 1000 $k); # dBm
$RxNFTemp   pow10.0$RXNF 0.1) * $RxTemp $RxTemp;
$RxLossTemp pow10.0$RXLOSS 0.1) * $RxTemp $RxTemp;

$SysNoiseTemp  $ANTTEMP $RxNFTemp +  $RxLossTemp;
$SysNoisePower 10.0 log10($RXBW $SysNoiseTemp 1000 $k);
$RxSensitivity $SysNoisePower $RXNF;


$PathLossBudget $RXANTGAIN $TXANTGAIN $TXPOWER $RxSensitivity;
$PathRangeGM pow10.0, ($PathLossBudget 32.45 -
               
20 log10($FREQ 1000.0))/20)/1E6;

$EMERadarEQ3 10.0 log104.0 $MoonDist3 $MoonDist3
                
/ ($MOONDIAM $MOONDIAM 4));
$EMERadarEQ2 10.0 log104.0 $MoonDist2 $MoonDist2
                
/ ($MOONDIAM $MOONDIAM 4));
$EMERadarEQ1 10.0 log104.0 $MoonDist1 $MoonDist1
                
/ ($MOONDIAM $MOONDIAM 4));

$EMEPathLoss3 = ( 32.45 +
          
20 log10($FREQ 1000.0) +
          
20 log10($MoonDist3 2.0) +
          
$EMERadarEQ3 -
          
10 log10$MoonReflectivity ));
$EMEPathLoss2 = ( 32.45 +
          
20 log10($FREQ 1000.0) +
          
20 log10($MoonDist2 2.0) +
          
$EMERadarEQ2 -
          
10 log10$MoonReflectivity ));
$EMEPathLoss1 = ( 32.45 +
          
20 log10($FREQ 1000.0) +
          
20 log10($MoonDist1 2.0) +
          
$EMERadarEQ1 -
          
10 log10$MoonReflectivity ));

$ExpectedEMEsnr3 $PathLossBudget $EMEPathLoss3;
$ExpectedEMEsnr2 $PathLossBudget $EMEPathLoss2;
$ExpectedEMEsnr1 $PathLossBudget $EMEPathLoss1;


### ---- present the results ----

function nbspprintf($FMT,$PARAM) {
    
$ll sprintf($FMT,$PARAM);
    echo 
ereg_replace(" ""&nbsp;"$ll);
}

function 
print3vals($FMT,$unit,$V3,$V2,$V1) {
  
printf("<TR><TH>&nbsp;</TH><TH ALIGN=LEFT>&nbsp;&nbsp;@ Apogee:</TH>");
  
printf("<TD ALIGN=RIGHT><CODE>");
  
nbspprintf($FMT,$V3);
  
printf("</CODE></TD><TH ALIGN=LEFT> &nbsp; %s</TH></TR>\n",$unit);

  
printf("<TR><TH>&nbsp;</TH><TH ALIGN=LEFT>&nbsp;&nbsp;@ \"mean\":</TH>");
  
printf("<TD ALIGN=RIGHT><CODE>");
  
nbspprintf($FMT,$V2);
  
printf("</CODE></TD><TH ALIGN=LEFT> &nbsp; %s</TH></TR>\n",$unit);

  
printf("<TR><TH>&nbsp;</TH><TH ALIGN=LEFT>&nbsp;&nbsp;@ Perigee:</TH>");
  
printf("<TD ALIGN=RIGHT><CODE>");
  
nbspprintf($FMT,$V1);
  
printf("</CODE></TD><TH ALIGN=LEFT> &nbsp; %s</TH></TR>\n",$unit);
}




langfilt('
<A NAME="result"></A><P>

FI:<B>Tulokset:</B>
EN:<B>Results:</B>


<TABLE>
<TBODY VALIGN=TOP>
<TR><TH>&nbsp;&nbsp;&nbsp;&nbsp;</TH>
    <TH>&nbsp;</TH>
    <TD>&nbsp;</TD>
    <TH>&nbsp;</TH></TR>
**:<TR><TH ALIGN=LEFT COLSPAN=4>
FI:Vastaanottimen signaali/kohina suhde ja herkkyysraja
EN:Receiver signal-to-noise ratio, and sensitivity limit
**:<BR>&nbsp;</TH></TR>
**:<TR><TH>&nbsp;</TH>
FI:<TH ALIGN=LEFT>Rx kaistaleveys:
EN:<TH ALIGN=LEFT>Rx bandwidth:
**:</TH><TD ALIGN=RIGHT><CODE>'
);
nbspprintf("%6.0f     ",$RXBW);
langfilt('</CODE></TD><TH ALIGN=LEFT> &nbsp; Hz</TH></TR>

**:<TR><TH>&nbsp;</TH>
FI:<TH ALIGN=LEFT>Rx lämpötila
EN:<TH ALIGN=LEFT>Rx temperature:
**:</TH><TD ALIGN=RIGHT><CODE>'
);
nbspprintf("%6.0f     ",$RxTemp);
langfilt('</CODE></TD><TH ALIGN=LEFT> &nbsp; Kelvin [K]</TH></TR>

**:<TR><TH>&nbsp;</TH>
FI:<TH ALIGN=LEFT>Sisäinen kohinateho:
EN:<TH ALIGN=LEFT>Internal Noise Power:
**:</TH><TD ALIGN=RIGHT><CODE>'
);
nbspprintf("%6.1f   ",$RxNPwr);
langfilt('</CODE></TD><TH ALIGN=LEFT> &nbsp; dBm</TH></TR>


**:<TR><TH>&nbsp;</TH><TH ALIGN=LEFT COLSPAN=3>&nbsp;<BR>
FI:Systeemini signaali/kohina suhde:
EN:My system Signal to Noise Ratio:
**:<BR>&nbsp;</TH></TR>


**:<TR><TH>&nbsp;</TH>
FI:<TH ALIGN=LEFT>Tavoiteltu SNR:
EN:<TH ALIGN=LEFT>Wanted SNR:
**:</TH><TD ALIGN=RIGHT><CODE>'
);
nbspprintf("%6.1f   ",$RXSNR);
langfilt('</CODE></TD><TH ALIGN=LEFT> &nbsp; dB</TH></TR>

**:<TR><TH>&nbsp;</TH>
FI:<TH ALIGN=LEFT>Vastaanottimen<BR>kohinaluku:
EN:<TH ALIGN=LEFT>Rx Noise Figure:
**:</TH><TD ALIGN=RIGHT><CODE>'
);
nbspprintf("%6.2f  ",$RXNF);
langfilt('</CODE></TD><TH ALIGN=LEFT> &nbsp; dB</TH></TR>

**:<TR><TH>&nbsp;</TH>
FI:<TH ALIGN=LEFT>Vastaanottimen<BR>kohinalämpötila:
EN:<TH ALIGN=LEFT>Rx Noise Temperature:
**:</TH><TD ALIGN=RIGHT><CODE>'
);
nbspprintf("%6.1f   ",$RxNFTemp);
langfilt('</CODE></TD><TH ALIGN=LEFT> &nbsp; Kelvin [K]</TH></TR>

<TR><TH COLSPAN=4>&nbsp;</TH></TR>

**:<TR><TH>&nbsp;</TH>
FI:<TH ALIGN=LEFT>Häviöt ennen LNA:ta:
EN:<TH ALIGN=LEFT>Losses prior to LNA:
**:</TH><TD ALIGN=RIGHT><CODE>'
);
nbspprintf("%6.2f  ",$RXLOSS);
langfilt('</CODE></TD><TH ALIGN=LEFT> &nbsp; dB</TH></TR>

**:<TR><TH>&nbsp;</TH>
FI:<TH ALIGN=LEFT>.. kohinalämpötilana:
EN:<TH ALIGN=LEFT>.. as Noise Temperature:
**:</TH><TD ALIGN=RIGHT><CODE>'
);
nbspprintf("%6.1f   ",$RxLossTemp);
langfilt('</CODE></TD><TH ALIGN=LEFT> &nbsp; Kelvin [K]</TH></TR>

<TR><TH COLSPAN=4>&nbsp;</TH></TR>

**:<TR><TH>&nbsp;</TH>
FI:<TH ALIGN=LEFT>Antennin (taivaan)<BR>kohinalämpötila:
EN:<TH ALIGN=LEFT>Antenna (Sky) temp:
**:</TH><TD ALIGN=RIGHT><CODE>'
);
nbspprintf("%6.1f   ",$ANTTEMP);
langfilt('</CODE></TD><TH ALIGN=LEFT> &nbsp; Kelvin [K]</TH></TR>

<TR><TH COLSPAN=4>&nbsp;</TH></TR>

**:<TR><TH>&nbsp;</TH>
FI:<TH ALIGN=LEFT>Kohinalämpötilojen summa:
EN:<TH ALIGN=LEFT>Sum of Noise Temps:
**:</TH><TD ALIGN=RIGHT><CODE>'
);
nbspprintf("%6.1f   ",$SysNoiseTemp);
langfilt('</CODE></TD><TH ALIGN=LEFT> &nbsp; Kelvin [K]</TH></TR>

**:<TR><TH>&nbsp;</TH>
FI:<TH ALIGN=LEFT>.. kohinatehona:
EN:<TH ALIGN=LEFT>.. as noise power:
**:</TH><TD ALIGN=RIGHT><CODE>'
);
nbspprintf("%6.1f   ",$SysNoisePower);
langfilt('</CODE></TD><TH ALIGN=LEFT> &nbsp; dBm</TH></TR>

<TR><TH COLSPAN=4>&nbsp;</TH></TR>

**:<TR><TH>&nbsp;</TH>
FI:<TH ALIGN=LEFT>Vastaanottimen herkkyys:
EN:<TH ALIGN=LEFT>Rx Sensitivity:
**:</TH><TD ALIGN=RIGHT><CODE>'
);
nbspprintf("%6.1f   ",$RxSensitivity);
langfilt('</CODE></TD><TH ALIGN=LEFT> &nbsp; dBm</TH></TR>

**:<TR><TH COLSPAN=4 ALIGN=LEFT>&nbsp;<BR>&nbsp;<BR>
FI:Lasketaan arvio maksimikantamasta vapaatilassa:
EN:Calculation of maximum possible Free Space Range:
<BR>&nbsp</TH></TR>

**:<TR><TH>&nbsp;</TH>
FI:<TH ALIGN=LEFT>Lähettimen antennivahvistus:
EN:<TH ALIGN=LEFT>Tx Antenna Gain:
**:</TH><TD ALIGN=RIGHT><CODE>'
);
nbspprintf("%6.1f   ",$TXANTGAIN);
langfilt('</CODE></TD><TH ALIGN=LEFT> &nbsp; dB</TH></TR>

**:<TR><TH>&nbsp;</TH>
FI:<TH ALIGN=LEFT>Vastaanottimen antennivahvistus:
EN:<TH ALIGN=LEFT>Rx Antenna Gain:
**:</TH><TD ALIGN=RIGHT><CODE>'
);
nbspprintf("%6.1f   ",$RXANTGAIN);
langfilt('</CODE></TD><TH ALIGN=LEFT> &nbsp; dB</TH></TR>

<TR><TH COLSPAN=4>&nbsp;</TH></TR>

**:<TR><TH>&nbsp;</TH>
FI:<TH ALIGN=LEFT>Lähetysteho:
EN:<TH ALIGN=LEFT>Tx power:
**:</TH><TD ALIGN=RIGHT><CODE>'
);
nbspprintf("%6.1f   ",$TXPOWER);
langfilt('</CODE></TD><TH ALIGN=LEFT> &nbsp; dBm</TH></TR>

**:<TR><TH>&nbsp;</TH><TH ALIGN=LEFT>&nbsp;</TH><TD ALIGN=RIGHT><CODE>'
);
nbspprintf("%6.1f   ",$TXPOWER-30.0);
langfilt('</CODE></TD><TH ALIGN=LEFT> &nbsp; dBW</TH></TR>

**:<TR><TH>&nbsp;</TH><TH ALIGN=LEFT>&nbsp;</TH><TD ALIGN=RIGHT><CODE>'
);
$TxWatts pow10.0, ($TXPOWER-30.0)*0.1);
if (
$TxWatts >= 999.5) {
    
nbspprintf("%6.0f    "$TxWatts);
} else {
    if (
$TxWatts >= 99.95) {
    
nbspprintf("%6.1f   "$TxWatts);
    } else {
    if (
$TxWatts >= 9.995) {
        
nbspprintf("%6.2f  "$TxWatts);
    } else {
        
nbspprintf("%6.3f "$TxWatts);
    }
    }
}
langfilt('</CODE></TD><TH ALIGN=LEFT> &nbsp; W</TH></TR>

<TR><TH COLSPAN=4>&nbsp;</TH></TR>

**:<TR><TH>&nbsp;</TH>
FI:<TH ALIGN=LEFT>Vastaanottimen herkkyys:
EN:<TH ALIGN=LEFT>Rx Sensitivity:
**:</TH><TD ALIGN=RIGHT><CODE>'
);
nbspprintf("%6.1f   ",$RxSensitivity);
langfilt('</CODE></TD><TH ALIGN=LEFT> &nbsp; dBm</TH></TR>

<TR><TH COLSPAN=4>&nbsp;</TH></TR>

**:<TR><TH>&nbsp;</TH>
FI:<TH ALIGN=LEFT>Taajuus:
EN:<TH ALIGN=LEFT>Frequency:
**:</TH><TD ALIGN=RIGHT><CODE>'
);
nbspprintf("%6.3f ",$FREQ);
langfilt('</CODE></TD><TH ALIGN=LEFT> &nbsp; GHz</TH></TR>

<TR><TH COLSPAN=4>&nbsp;</TH></TR>

**:<TR><TH>&nbsp;</TH><TH ALIGN=LEFT COLSPAN=3>
FI:Matkahäviöbudjetti, sisältäen antennivahvistukset:
EN:Path Loss Budget, including antenna gains:
</TH></TR>

**:<TR><TH>&nbsp;</TH><TH>&nbsp;</TH><TD ALIGN=RIGHT><CODE>'
);
nbspprintf("%6.1f   ",$PathLossBudget);
langfilt('</CODE></TD><TH ALIGN=LEFT> &nbsp; dB</TH></TR>

<TR><TH COLSPAN=4>&nbsp;</TH></TR>

**:<TR><TH>&nbsp;</TH><TH ALIGN=LEFT COLSPAN=3>
FI:Vapaatilan kantama, miljoonaa kilometriä:
EN:One Way Range of Free Space Path Loss Budget,<BR>millions of kilometers:
</TH></TR>

**:<TR><TH>&nbsp;</TH><TH>&nbsp;</TH><TD ALIGN=RIGHT><CODE>'
);
nbspprintf("%6.3f ",$PathRangeGM);
langfilt('</CODE></TD><TH ALIGN=LEFT> &nbsp; M km</TH></TR>

**:<TR><TH COLSPAN=4 ALIGN=LEFT>&nbsp;<BR>&nbsp;<BR>
FI:EME yhteyden laskenta:
EN:EME round-trip computation:
<BR>&nbsp;</TH></TR>

**:<TR><TH>&nbsp;</TH>
FI:<TH ALIGN=LEFT>Taajuus:
EN:<TH ALIGN=LEFT>Frequency:
**:</TH><TD ALIGN=RIGHT><CODE>'
);
nbspprintf("%6.3f ",$FREQ);
langfilt('</CODE></TD><TH ALIGN=LEFT> &nbsp; GHz</TH></TR>

<TR><TH COLSPAN=4>&nbsp;</TH></TR>

**:<TR><TH>&nbsp;</TH><TH ALIGN=LEFT>
FI:Kuun läpimitta:
EN:Moon diameter:
**:</TH><TD ALIGN=RIGHT><CODE>'
);
nbspprintf("%6.0f     ",$MOONDIAM);
langfilt('</CODE></TD><TH ALIGN=LEFT> &nbsp; km</TH></TR>

**:<TR><TH>&nbsp;</TH><TH ALIGN=LEFT COLSPAN=3>
FI:Kuun etäisyys:
EN:Moon distance:
</TH></TR>'
);

print3vals(" %1.0f     ","km",$MoonDist3,$MoonDist2,$MoonDist1);

langfilt('**:<TR><TH>&nbsp;</TH><TH ALIGN=LEFT>
FI:Kuun (RF) alebo:
EN:Moon (RF) alebo:
**:</TH><TD ALIGN=RIGHT><CODE>'
);
nbspprintf("%6.1f   ",$MoonReflectivity 100.0);
langfilt('</CODE></TD><TH ALIGN=LEFT> &nbsp; %</TH></TR>

<TR><TH COLSPAN=4>&nbsp;</TH></TR>

**:<TR><TH>&nbsp;</TH><TH ALIGN=LEFT COLSPAN=3>
FI:Tutkayhtälö:
EN:RADAR Equation:
</TH></TR>'
);
print3vals(" %1.1f   ","dB",$EMERadarEQ3,$EMERadarEQ2,$EMERadarEQ1);

langfilt('
<TR><TH COLSPAN=4>&nbsp;</TH></TR>

**:<TR><TH>&nbsp;</TH><TH ALIGN=LEFT COLSPAN=3>
FI:EME matkahäviöt:
EN:EME Path Loss:
</TH></TR>'
);
print3vals(" %1.1f   ","dB",$EMEPathLoss3,$EMEPathLoss2,$EMEPathLoss1);

langfilt('**:

<TR><TH COLSPAN=4>&nbsp;</TH></TR>
</TBODY>
'
);

if (
$ExpectedEMEsnr2 $RXSNR) {
  echo(
"<TBODY CLASS=\"red\">\n");
} else {
  echo(
"<TBODY CLASS=\"green\">\n");
}

langfilt('**:<TR><TH>&nbsp;</TH><TH ALIGN=LEFT COLSPAN=3>
FI:Odotettavissa oleva EME-yhteyden signaali/kohina suhde:
EN:Expected roundtrip Signal-to-Noise ratio:
</TH></TR>'
);
print3vals(" %1.1f   ","dB",$ExpectedEMEsnr3,$ExpectedEMEsnr2,$ExpectedEMEsnr1);

langfilt('**:
</TBODY></TABLE>

<P>

FI: Yllä olevassa desibeliluvut ovat yhdellä desimaalilla,
FI: muut ovat 2-3 merkitsevällä numerolla.
FI: Pääasialliset syyt tähän ovat syöttöparametrien epätarkkuudet.
EN: Above all decibel values are with one decimal, all others
EN: are with 2-3 significant numbers
EN: due to the accuracy (or lack, thereof) of the input values.

<P>
FI: Siis:  12.34567 ja 0.001234567 pitää ymmärtää
FI: lukuina 12.3 ja 0.00123.
EN: That is: 12.34567, and 0.001234567  should be considered as
EN: 12.3 and 0.00123 respectively!

<P>

<P><HR><P>&nbsp;<P>

FI: <H2>Laskentamenetelmä:</H2>
EN: <H2>The computation method:</H2>
<P>

FI:<A HREF="eme-pathloss.php?source=1">Lähdekoodi tälle sivulle</A>
EN:<A HREF="eme-pathloss.php?source=1">Source for this page</A>

<P>
<I><FONT SIZE="-4">
<PRE>
# Rx Noise Power = k T RxBW; T = 290 K

#$RxTemp = 290.0;  # 290 Kelvins
$k    = 1.38E-23; # Bolzman constant

$MoonDist3 = 406700.0; # Apogee distance
$MoonDist2 = 384400.0; # "Mean" distance
$MoonDist1 = 356400.0; # Perigee distance

$MoonReflectivity = 0.07;
  ##  This is quite good value for any frequency 10 thru 30 000 MHz.

$RxNoisePwr  = 10.0 * log10($RXBW * $RxTemp * $k) + 30.0; # dBW -> dBm
$RxNFTemp    = (10.0 ** ( $RXNF   * 0.1)) * $RxTemp - $RxTemp;
$RxLossTemp  = (10.0 ** ( $RXLOSS * 0.1)) * $RxTemp - $RxTemp;

$SysNoiseTemp  = $ANTTEMP + $RxNFTemp +  $RxLossTemp;
$SysNoisePower = 10.0 * log10($RXBW * $SysNoiseTemp * $k) + 30.0; # dBW -> dBm

$RxSensitivity = $SysNoisePower + $RXNF;

# [ TXPOWER in dBm ]

$PathLossBudget = $RXANTGAIN + $TXANTGAIN + $TXPOWER - $RxSensitivity;


# Path Loss Range in millions of kilometers..
# FREQ in GHz, must convert to MHz..

$PathRangeGM =  10.0 ** (($PathLossBudget - 32.45 -
                          20 * log10($FREQ * 1000.0))/20) / 1E6;

$EMERadarEQ = 10.0 * log10( 4.0 * $MoonDist ** 2
                            / ($MOONDIAM ** 2 / 4));

$EMEPathLoss = ( 32.45 +                       # Magic RADAR constant..
                 20 * log10($FREQ * 1000.0) +  # FREQ in MHz, raised to 2nd
                                               # power after taking the log..
                 20 * log10($MoonDist * 2.0) + # Twice the distance, and
                                               # raised to 2nd power after
                                               # taking the log..
                 $EMERadarEQ -
                 10 * log10( $MoonReflectivity ));

$ExpectedEMEsnr = $PathLossBudget - $EMEPathLoss;

</PRE></FONT>

</I>


<P>
EN:EME path-loss graph per frequency:
FI:Graafi esittäen EME-matkavaimennusta taajuuden funktiona:
<P ALIGN=CENTER>
<A HREF="eme-pathloss-graph.gif">
 <IMG SRC="eme-pathloss-graph.gif" WIDTH=553>
</A>
<BR>
Tom A. Clark, W3IWI
<P>
FI: Huom: Tuo käyrästö (ja matematiikka sen takana) poikkeaa
FI: yllä olevasta ja antaa noin 10 dB pienemmän matkavaimennuksen,
FI: kuin mitä yllä lasketaan...
EN: Note: The graph above (and the math behind it) does differ
EN: from calculations given above, and is giving circa 10 dB
EN: smaller path-loss, than what is calculated above..

<P>
<HR>
<P>
'
);

include(
"../include/sign-oh2mqk.inc");

printf("<P></TR></TABLE>\n");

include(
"../include/base.inc");
include(
"../include/foot.inc");

?>


Matti Aarnio <matti.aarnio@zmailer.org>; OH2MQK

 

Valid HTML 4.01!   Z Elisa Communications
This page is Links enhanced for additional browsing pleasure.