******************************************************
REM: * General Radio Astronomy Program *
REM: * Al Aburto, 07 Jan 1998 *
REM: * See "Radio Astronomy", John Kraus, 2nd edition, *
REM: * Cygnus-Quasar Books, 1986. *
REM: * The parabolic beamwidth calculation came from: *
REM: * "The Satellite TV Handbook", Anthony T. Easton, *
REM: * Howard W. Sams & Co., Inc, 1983 *
REM: * *
REM: * RHO == star density in stars per cubic LY *
REM: * XSL == Speed of Light (m/s) *
REM: * XML == Meters per Light_Year *
REM: * XMA == Meters per Astronomical Unit *
REM: ******************************************************
DEFDBL A-H, O-Z
DEFLNG I-N
10 XSL = 299793000#
XML = 9460530000000000#
XMA = 149600000000#
XBC = 1.38054D-23
XJy = 1D-26
XPC = 3.261633#
XKs = 1#
XLC = 10# / LOG(10#)
secperdeg = 24# * 60# * 60# / 360#
pi = 4# * ATN(1#)
ctr = pi / 180#
Re = 6378140#
15 CLS
PRINT
PRINT "The program calulates the following:"
PRINT
PRINT "Parabolic Antenna Beamwidths: 1"
PRINT "EIRP for parabolic antenna: 2"
PRINT "EIRP detectable at a given range: 3"
PRINT "Detection range given the EIRP: 4"
PRINT "Number of Stars in Antenna Beam: 5"
PRINT "Peak detectable flux and density: 6"
PRINT "Earth rotational doppler rate (Hz/sec) 7"
PRINT "Quit: 8"
INPUT "Enter choice: ", ic
ic = INT(ic)
IF ic < 1 OR ic > 8 THEN 15
IF ic = 1 THEN 20
IF ic = 2 THEN 250
IF ic = 3 THEN 50
IF ic = 4 THEN 100
IF ic = 5 THEN 150
IF ic = 6 THEN 200
IF ic = 7 THEN 300
GOTO 1000
REM: ********************************
REM: * Parabolic Antenna Beamwidths *
REM: ********************************
20 CLS
PRINT
PRINT "Parabolic Antenna Beamwidths"
PRINT
INPUT "Frequency (GHz) = ", fGHz
INPUT "Antenna Efficiency = ", effr
INPUT "Beam declination (deg) = ", dec
25 INPUT "Antenna Diameter (ft) = ", dr
drm = dr * .3048#
Wl = .299793# / fGHz
Beamwidth = 52.3 * Wl / (SQR(effr) * drm)
X = 90# - Beamwidth / 2#
PRINT
PRINT "Beamwidth (deg) ="; Beamwidth
IF (ABS(dec) < X) THEN
stm = secperdeg * Beamwidth / COS(ctr * dec)
PRINT "Time a star stays in"
PRINT " antenna beam (sec) ="; stm
ELSE
stm = 0#
PRINT "Time a star stays in"
PRINT " antenna beam (sec) = (a very long time!)"
END IF
PRINT
INPUT "Change Antenna Diameter (y,n) ", A$
IF A$ = "y" OR A$ = "Y" THEN 25
INPUT "Quit (y,n) ", A$
IF A$ = "n" OR A$ = "N" THEN 20
GOTO 1000
REM: *********************************************
REM: * EIRP detectable at a specified range (LY) *
REM: *********************************************
50 CLS
PRINT
PRINT "EIRP detectable at a specified range (LY)."
PRINT
INPUT "Antenna Diameter (ft) = ", dr
INPUT "Antenna Efficiency = ", effr
INPUT "System Temperature (K) = ", Tsys
INPUT "Frequency (GHz) = ", fGHz
INPUT "Bandwidth (Hz) = ", Br
INPUT "Integration Time (sec) = ", Tr
INPUT "Signal-to-Noise Ratio = ", snr
60 INPUT "Range (LY) = ", RL
IF (Tr < 0#) THEN Tr = 1# / Br
IF (RL < 0#) THEN RL = XPC
drm = dr * .3048#
Aer = effr * pi * drm * drm / 4#
twp = Br * Tr
IF twp < 1# THEN twp = 1#
twc = SQR(twp)
RM = RL * XML
EIRP = (RM * RM * 4# * pi * snr * Br * XBC * Tsys) / (Aer * twc)
EGWatt = EIRP / 1000000000#
PRINT
PRINT "EIRP (GW) ="; EGWatt
PRINT
INPUT "Change Range (y,n) ", A$
IF A$ = "y" OR A$ = "Y" THEN 80
PRINT
GOTO 60
80 INPUT "Quit (y,n) ", A$
IF A$ = "Y" OR A$ = "y" THEN 1000
GOTO 50
REM: ***************************************************
REM: * Detection range (LY) given the EIRP (Gigawatts) *
REM: ***************************************************
100 CLS
PRINT
PRINT "Detection range (LY) given the EIRP (Gigawatts)."
PRINT
INPUT "Antenna Diameter (ft) = ", dr
INPUT "Antenna Efficiency = ", effr
INPUT "System Temperature (K) = ", Tsys
INPUT "Frequency (GHz) = ", fGHz
INPUT "Bandwidth (Hz) = ", Br
INPUT "Integration Time (sec) = ", Tr
INPUT "Signal-to-Noise Ratio = ", snr
110 INPUT "EIRP (Gigawatts) = ", EGWatt
IF (Tr < 0#) THEN Tr = 1# / Br
drm = dr * .3048#
Aer = effr * pi * drm * drm / 4#
twp = Br * Tr
IF twp < 1# THEN twp = 1#
twc = SQR(twp)
EIRP = 1000000000# * EGWatt
X = EIRP * Aer * twc
Y = 4# * pi * snr * Br * XBC * Tsys
RM = SQR(X / Y)
RL = RM / XML
RA = RM / XMA
PRINT
IF (RL > .01#) THEN
PRINT "Detection Range (LY) ="; RL
ELSE
PRINT "Detection Range (AU) ="; RA
END IF
PRINT
INPUT "Change EIRP (y,n) ", A$
IF A$ = "n" OR A$ = "N" THEN 120
PRINT
GOTO 110
120 INPUT "Quit (y,n) ", A$
IF A$ = "n" OR A$ = "N" THEN 100
GOTO 1000
REM: ***********************************************
REM: * Number of stars in a radio telescopes beam. *
REM: ***********************************************
150 CLS
PRINT
PRINT "Number of stars in a radio telescopes beam."
PRINT
INPUT "Antenna Diameter (ft) = ", dr
INPUT "Antenna Efficiency = ", effr
INPUT "Frequency (GHz) = ", fGHz
160 INPUT "Search Distance (LY) = ", dist
PRINT
RHO = .01#
IF (dist < 0#) THEN dist = XPC
drm = dr * .3048#
Aer = effr * pi * drm * drm / 4#
TStars = RHO * 4# * pi * dist * dist * dist / 3#
Wl = .299793# / fGHz
Dir = 4# * pi * Aer / (Wl * Wl)
BStars = TStars / Dir
PRINT
PRINT "Antenna Diameter (ft) = ", dr
PRINT "Frequency (GHz) = ", fGHz
PRINT "Search Distance (LY) = ", dist
PRINT "Number of Stars = ", TStars
PRINT "Stars in Antenna Beam = ", BStars
PRINT
INPUT "Change Search Distance (y,n) "; A$
IF A$ = "n" OR A$ = "N" THEN 170
PRINT
GOTO 160
170 INPUT "Quit (y,n) ", A$
IF A$ = "y" OR A$ = "Y" THEN 1000
GOTO 150
REM: ***************************
REM: * Detectable flux (W/m^2) *
REM: ***************************
200 CLS
PRINT
PRINT "Detectable flux (W/m^2)."
PRINT
INPUT "Antenna Diameter (ft) = ", dr
206 INPUT "Antenna Efficiency = ", effr
208 INPUT "System Temperature (K) = ", Tsys
210 INPUT "Bandwidth (Hz) = ", Br
212 INPUT "Integration Time (sec) = ", Tr
214 INPUT "snr (in the band Br) = ", snr
220 drm = dr * .3048#
Aer = pi * drm * drm / 4#
REM: *******************************************
REM: * This calculates the time-bandwidth (TW) *
REM: * product (twp). The program does not *
REM: * allow a TW product (twp) less than one. *
REM: * If twp is < 1 the program will reset *
REM: * twp to 1 which in effect respecifies *
REM: * Tr to 1/Br. *
REM: *******************************************
twp = Br * Tr
IF twp < 1# THEN twp = 1#
twc = SQR(twp)
St = snr * (XBC * Tsys) / (effr * Aer * twc)
StJy = St / XJy
Ft = St * Br
PRINT
PRINT "Flux density (Jy) ="; StJy
PRINT "Flux (W/m^2) ="; Ft
PRINT
INPUT "Change Integration Time (y,n) ", A$
IF A$ = "n" OR A$ = "N" THEN 240
PRINT
GOTO 212
240 INPUT "Quit (y,n) ", A$
IF A$ = "y" OR A$ = "Y" THEN 1000
GOTO 200
REM: *********************************************
REM: * Effective Isotropic Radiated Power (EIRP) *
REM: *********************************************
250 CLS
PRINT
PRINT "Effective Isotropic Radiated Power."
PRINT
INPUT "Frequency (GHz) = ", fGHz
INPUT "Isotropic power (Watts) = ", pt
INPUT "Antenna Efficiency = ", efft
260 INPUT "Antenna Diameter (ft) = ", dt
dtm = dt * .3048#
Aet = efft * pi * dtm * dtm / 4#
Wl = .299793# / fGHz
dirt = 4# * pi * Aet / (Wl * Wl)
EIRP = pt * dirt
EGWatts = EIRP / 1000000000#
gt = XLC * LOG(dirt)
PRINT
PRINT "Gain (dB) re isotropic = "; gt
PRINT "EIRP (Gigawatts) = "; EGWatts
PRINT
INPUT "Change antenna diameter (y,n) ", A$
IF A$ = "n" OR A$ = "N" THEN 290
PRINT
GOTO 260
290 INPUT "Quit (y,n) ", A$
IF A$ = "y" OR A$ = "Y" THEN 1000
GOTO 250
REM: *******************************************
REM: * Earths rotational doppler rate (Hz/sec) *
REM: *******************************************
300 CLS
PRINT
PRINT "Earths rotational doppler rate (Hz/sec)."
PRINT
omega = 2# * pi / 86164#
INPUT "Antenna latitude (deg) = ", xlat
INPUT "Source Declination (deg) = ", dec
310 INPUT "Frequency (GHz) = ", fGHz
fHz = 1000000000# * fGHz
X = omega * omega * Re / XSL
dfdt = -fHz * X * COS(ctr * dec) * COS(ctr * xlat)
PRINT
PRINT "Earths doppler rate (Hz/sec) = "; dfdt
PRINT
INPUT "Change frequency (y,n) ", A$
IF A$ = "n" OR A$ = "N" THEN 340
PRINT
GOTO 310
340 INPUT "Quit (y,n) ", A$
IF A$ = "y" OR A$ = "Y" THEN 1000
GOTO 300
1000 END
email the Webmaster | entire website copyright © The SETI League, Inc. this page last updated 23 November 2002 |
Top of Page |