REM: ****************************************************** 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