The following pages contain the QuickBasic code of the METEOR program. Variables are defined at the end.
' METEOR program
' Anthony Mallama, 1996
' Revised 30 Jan 1997
' METEOR records and displays data from a radio AGC output for
' meteor detection. When the signal suddenly jumps by a threshold
' amount, the audio tone is checked. If the tone is enhanced a
' meteor is tallied, if not, a false trigger is tallied. The
' results are binned at intervals.
' * * * Beginning of Main Program * * *
GOSUB AAinit 'define variables and initialize
GOSUB UserInput 'get user supplied parameters
GOSUB Power 'get initial power
NextAudio: GOSUB Audio 'sample and autocorrelate audio
NextPower: GOSUB Power 'sample signal power and plot it
GOSUB RefreshScreen 'redraw the screen
GOSUB PressQ 'allow user to quit the program
GOSUB CheckTime 'proceed based on elapsed time
IF GoPow GOTO NextPower
GOTO NextAudio
' * * * End of Main Program * * *
AAinit:
' Initialize everything that needs it
'Variables
ScrNum = 600
ScrCnt = ScrNum
RefAud$ = "T"
PowInit = 1
AudInit = 1
AudDim = 1000
DIM Aud(-10 TO AudDim)
'The "Print Using" Formats
'For menu
Format1$ = "(T)rigger Size ### (dB)"
Format1a$ = "Quiet Signal(Z) #### (dB; 0 = off)"
Format2$ = "(A)udio Increase ### (% correlation)"
Format3$ = "(L)ong Duration ### (0.1 sec)"
Format3a$ = "(D)B offset ##### (dB)"
Format4$ = "(M)egahertz \ \ (tuned frequency)"
Format5$ = "(B)and \ \ (USB/LSB)"
Format6$ = "Antenna(X) \ \ (Dipole/Beam/Yagi)"
Format6a$ = "Beam (P)ointing \ \ (North = 0, East = 90)"
Format7$ = "(R)adio \ \ (R7100/R8500)"
Format8$ = "(S)quelch \ \ (on/off)"
Format9$ = "Loc(K) switch \ \ (on/off)"
Format9a$ = "(N)oise blanker \ \ (on/off)"
Format9b$ = "BF(O) frequency \ \ (+0.33 KHz)"
Format9c$ = "(I)F shift \ \ (0)"
Format9d$ = "Att(E)n/Gain \ \ (dB)"
Format9e$ = "A(G)C speed \ \ (fast)"
Format9f$ = "A(U)dio filter \ \ (off)"
'For printing configuration
Format11$ = "Trigger Size ### dB"
Format11a$ = "Quiet Signal #### dB 0 = off"
Format12$ = "Audio Increase ### % correlation"
Format13$ = "Long Duration ## 0.1 sec"
Format13a$ = "DB offset ##### dB"
Format14$ = "Megahertz \ \ "
Format15$ = "Band \ \ "
Format16$ = "Antenna \ \ "
Format16a$ = "Beam Pointing \ \ "
Format17$ = "Radio \ \ "
Format18$ = "Squelch \ \ "
Format19$ = "Lock switch \ \ "
Format19a$ = "Noise blanker \ \ "
Format19b$ = "BFO frequency \ \ "
Format19c$ = "IF shift \ \ "
Format19d$ = "Atten/Gain \ \ "
Format19e$ = "AGC speed \ \ "
Format19f$ = "Audio filter \ \ "
'For outputting data
Format20$ = " ## ## ## ## ## ## #### #### #### ##### ##### ##### 0"
Format21$ = " ## ## ## ## ## ## #### #### #### ##### ##### ##### -1"
'For data display screen
Format31$ = "Meteors ######"
Format32$ = "Longs ######"
Format33$ = "False ######"
Format34$ = "Minute ##"
Format35$ = "Power ####"
Format36$ = "Ref Audio ####"
Format37$ = "Trg Audio ####"
Format38$ = "Kaud ####"
'For saving configuration to disk
Format40$ = "##### "
Format41$ = "\ \,\ \,\ \,\ \,\ \,\ \,\ \"
'Analog/Digital board
BADR = &H218
OUT BADR, &H10
FOR I = 0 TO 100
NEXT I
LB = INP(BADR + 2)
HB = INP(BADR + 3)
'Date and time
OldTime = TIMER
OldDay$ = DATE$
'Remind user how to quit
LOCATE 21, 1: PRINT "Press Q to quit"
RETURN
Audio:
' Sample audio input and autocorrelate
' Also accumulate audio and power for hourly averages
'Tell Power routine that last sample was an audio
LastWasAud$ = "T"
'Set size of sample
IF RefAud$ = "T" THEN N = AudDim
IF RefAud$ = "F" THEN N = 250
'Take audio samples
I = -10 'Throw out the first few
'A/D input
GCR = &H1
OUT BADR, &H0
280 OUT BADR + 1, GCR
300 CSR = INP(BADR)
IF CSR < 128 THEN 300
I = I + 1
IF I > N GOTO 600
LB = INP(BADR + 2)
HB = INP(BADR + 3)
Aud(I) = (256 * HB + LB)
GOTO 280
600
'Look for frequency of the audio tone
'Get the sigma squared first
SigSq = 0
Sum = 0
SumPr = 0
FOR I = 1 TO N
Sum = Sum + Aud(I)
NEXT I
Avg = Sum / N
FOR I = 1 TO N
Aud(I) = Aud(I) - Avg
SigSq = SigSq + Aud(I) * Aud(I)
NEXT I
AvgSigSq = SigSq / N
BigAud = 0
'Look over the following range of sample spacings
K1 = 12: K2 = 24
'Autocorrelate
FOR K = K1 TO K2
Sets = INT(N / 2 / K)
SumPr = 0
FOR J = 1 TO Sets
j1 = (J - 1) * K * 2
j2 = j1 + K
FOR I = 1 TO K
Prod = Aud(j1 + I) * Aud(j2 + I)
SumPr = SumPr + Prod
NEXT I
NEXT J
AvgPr = SumPr / (Sets * K)
IF AvgSigSq <> 0 THEN NewAud = AvgPr / AvgSigSq
IF NewAud > BigAud THEN
KeepAvgPr = AvgPr
BigAud = NewAud
KAud = K
END IF
NEXT K
AudioFound = 100 * BigAud
'Finish up if this is a triggered audio
IF RefAud$ = "F" THEN
AudTrg = AudioFound
LOCATE 7, 1: PRINT USING Format37$; AudTrg
LOCATE 8, 1: PRINT USING Format38$; KAud
AudTimeTrg = TIMER
AudDayTrg$ = DATE$
RETURN
END IF
'Proceed if this is a reference audio
SampQui45 = SampQui45 + 1
SampQui60 = SampQui60 + 1
'Check for quiet signal flag
IF (AudInit) OR (Quiet <> 0 AND PowNew <= Quiet AND LastJump > 10) OR (Quiet = 0) THEN
'Update reference audio
AudRef = AudioFound
'Accumulate data for 60 minute samples
SumAud60 = SumAud60 + AudioFound
SumPow60 = SumPow60 + PowNew
SumQui60 = SumQui60 + 1
Samp60 = Samp60 + 1
'Accumulate data for 45 minute samples
SumAud45 = SumAud45 + AudioFound
SumPow45 = SumPow45 + PowNew
SumQui45 = SumQui45 + 1
Samp45 = Samp45 + 1
'Check for first reference audio
IF AudInit THEN AudInit = 0: RETURN
'Plot and print reference audio
COLOR 2: GOSUB PlotAudio: COLOR 7
LOCATE 6, 1: PRINT USING Format36$; AudRef
LOCATE 7, 1: PRINT "Trg Audio "
LOCATE 8, 1: PRINT USING Format38$; KAud
END IF
'Allow 0.1 second to elapse
OldAudTime = TIMER
OldAudDay$ = DATE$
NewAudTime:
AudTimeRef = TIMER
AudDayRef$ = DATE$
IF AudTimeRef < OldAudTime + .1 THEN
IF AudDayRef$ = OldAudDay$ GOTO NewAudTime
END IF
RETURN
CheckTime:
' Check time for sampling signal & audio, and storing hourly data
'Check minute
MIN$ = MID$(TIME$, 4, 2)
IF MIN$ <> OldMin$ THEN
OldMin$ = MIN$
MinCnt = MinCnt + 1
MinCnt45 = MinCnt45 + 1
END IF
'Get date/time at middle of 60 minute sample
IF MinCnt = 30 THEN
DateH$ = DATE$
TimeH$ = TIME$
Mo = VAL(LEFT$(DateH$, 2))
Da = VAL(MID$(DateH$, 4, 2))
Yr = VAL(RIGHT$(DateH$, 2))
Hr = VAL(LEFT$(TimeH$, 2))
Mn = VAL(MID$(TimeH$, 4, 2))
Sc = VAL(RIGHT$(TimeH$, 2))
END IF
'Get date/time at middle of 45 minute sample
IF MinCnt45 = 22 THEN
Date45$ = DATE$
Time45$ = TIME$
Mo45 = VAL(LEFT$(Date45$, 2))
Da45 = VAL(MID$(Date45$, 4, 2))
Yr45 = VAL(RIGHT$(Date45$, 2))
Hr45 = VAL(LEFT$(Time45$, 2))
Mn45 = VAL(MID$(Time45$, 4, 2))
Sc45 = VAL(RIGHT$(Time45$, 2))
END IF
'Compute and output 60 minute totals
IF MinCnt = 60 THEN
Meteors60 = Meteors - OldMeteors
Longs60 = Longs - OldLongs
Falses60 = Falses - OldFalses
IF Samp60 > 0 THEN
AvgPow60 = SumPow60 / Samp60
AvgAud60 = SumAud60 / Samp60
AvgQui60 = SumQui60 * 100 / SampQui60
END IF
CLOSE #3
OPEN FileName$ FOR APPEND AS #3
IF Meteors60 >= 2 * Falses60 AND AvgQui60 >= 50 THEN
PRINT #3, USING Format20$; Mo; Da; Yr; Hr; Mn; Sc; AvgPow60; AvgQui60; AvgAud60; Falses60;
Longs60; Meteors60
ELSE
PRINT #3, USING Format21$; Mo; Da; Yr; Hr; Mn; Sc; AvgPow60; AvgQui60; AvgAud60; Falses60;
Longs60; Meteors60
END IF
OldMeteors = Meteors
OldLongs = Longs
OldFalses = Falses
SumPow60 = 0
SumAud60 = 0
SumQui60 = 0
Samp60 = 0
SampQui60 = 0
MinCnt = 0
END IF
'Compute and output 45 minute totals
IF MinCnt45 = 45 THEN
Meteors45 = Meteors - OldMeteors45
Longs45 = Longs - OldLongs45
Falses45 = Falses - OldFalses45
IF Samp45 > 0 THEN
AvgPow45 = SumPow45 / Samp45
AvgAud45 = SumAud45 / Samp45
AvgQui45 = SumQui45 * 100 / SampQui45
END IF
CLOSE #5
OPEN FileName45$ FOR APPEND AS #5
IF Meteors45 >= 2 * Falses45 AND AvgQui45 >= 50 THEN
PRINT #5, USING Format20$; Mo45; Da45; Yr45; Hr45; Mn45; Sc45; AvgPow45; AvgQui45;
AvgAud45; Falses45; Longs45; Meteors45
ELSE
PRINT #5, USING Format21$; Mo45; Da45; Yr45; Hr45; Mn45; Sc45; AvgPow45; AvgQui45;
AvgAud45; Falses45; Longs45; Meteors45
END IF
OldMeteors45 = Meteors
OldLongs45 = Longs
OldFalses45 = Falses
SumPow45 = 0
SumAud45 = 0
SumQui45 = 0
Samp45 = 0
SampQui45 = 0
MinCnt45 = 0
END IF
'Allow 0.1 sec between samples and watch for new day
DoAgain:
NewDay$ = DATE$
NewTime = TIMER
IF NewDay$ <> OldDay$ GOTO OKtoGo
IF NewTime < OldTime + .1 GOTO DoAgain
OKtoGo:
OldTime = NewTime
OldDay$ = NewDay$
'Get audio reference or power next?
GoPow = 1
IF NewTime > AudTimeRef + 10 THEN GoPow = 0
IF NewDay$ <> AudDayRef$ THEN GoPow = 0
RETURN
LongEcho:
' Test to see if this is a long duration echo
TickCnt = TickCnt + 1
'Long duration established
IF TickCnt >= LongDur THEN
Longs = Longs + 1
TickCnt = 0
LongDB = 0
LOCATE 2, 1: PRINT USING Format32$; Longs
END IF
'Power is still above threshold
IF PowNew > LongDB THEN RETURN
'Not long enough
LongDB = 0
TickCnt = 0
RETURN
PlotAudio:
' Plot the audio correlation
YAud = 100 + (100 - AudioFound) / 2.5
FOR J = -1 TO 1: FOR I = -1 TO 1
PSET (ScrCnt + I, YAud + J)
NEXT I: NEXT J
RETURN
Power:
' Sample signal power from A/D board and convert to dBm units
' Look for power jump and sample audio if found
'Increment screen position counter
ScrCnt = ScrCnt + 1
'Command board
GCR = &H0
OUT BADR, &H0
OUT BADR + 1, GCR
NotDone: CSR = INP(BADR)
IF CSR < 128 GOTO NotDone
LB = INP(BADR + 2)
HB = INP(BADR + 3)
'Digital counts from DT2811
DT = 256 * HB + LB
'Conversion of weak signals to dBm
PowOld = PowNew
PowNew = INT(-DT / 25 + DBoffset - 50)
'First pass
IF PowInit = 1 THEN PowInit = 0: RETURN
'Display signal strength
PSET (ScrCnt, -PowNew)
LOCATE 5, 1: PRINT USING Format35$; PowNew
'Processing long duration meteor echo
IF Quiet = 0 AND LongDB THEN GOSUB LongEcho
IF Quiet <> 0 AND LongDB = Quiet THEN GOSUB LongEcho
'Increment or reset duration of quiet signal if Quiet is on
IF Quiet <> 0 THEN
LastJump = LastJump + 1
IF PowNew > Quiet AND PowNew < PowOld + TrigSize THEN LastJump = 0
END IF
'Look for a trigger-sized jump in the signal power
IF PowNew >= PowOld + TrigSize AND LastWasAud$ = "F" THEN
'Check time since last jump if Quiet is on
IF (Quiet <> 0) AND (LastJump < 10) THEN
LastJump = 0
RETURN
END IF
LastJump = 0
'Allow time from last triggered audio sample
PowTime = TIMER
PowDay$ = DATE$
IF PowDay$ <> AudDayTrg$ THEN AudTimeTrg = 0
IF PowTime > AudTimeTrg + 1! THEN
'Check audio
RefAud$ = "F"
GOSUB Audio
RefAud$ = "T"
'Meteor or false
IF AudTrg > AudRef + AudioPct THEN
Meteors = Meteors + 1
LOCATE 1, 1: PRINT USING Format31$; Meteors
COLOR 12: GOSUB PlotAudio: COLOR 7
IF Quiet = 0 THEN LongDB = PowNew
IF Quiet <> 0 THEN LongDB = Quiet
ELSE
Falses = Falses + 1
LOCATE 3, 1: PRINT USING Format33$; Falses
COLOR 9: GOSUB PlotAudio: COLOR 7
END IF
END IF
END IF
'Last sample was power, not audio
LastWasAud$ = "F"
RETURN
PressQ:
' By pressing "q", the user can quit the program
X$ = INKEY$
IF X$ = "q" OR X$ = "Q" THEN END
RETURN
RefreshScreen:
' Redraw the screen after it is filled with data
IF ScrCnt < ScrNum THEN RETURN
'Clear screen and reset counter
CLS
ScrCnt = 0
'Print statistical info
LOCATE 1, 1: PRINT USING Format31$; Meteors
LOCATE 2, 1: PRINT USING Format32$; Longs
LOCATE 3, 1: PRINT USING Format33$; Falses
LOCATE 4, 1: PRINT USING Format34$; MinCnt
LOCATE 5, 1: PRINT USING Format35$; PowNew
LOCATE 6, 1: PRINT USING Format36$; AudRef
LOCATE 7, 1: PRINT "Trg Audio "
LOCATE 21, 1: PRINT "Press Q to quit"
'Plot horizontal lines at -100, -120, and -140 dBm
COLOR 11
FOR Y = 100 TO 140 STEP 20
FOR X = 0 TO 600 STEP 20
PSET (ScrCnt + X, Y)
NEXT X: NEXT Y
COLOR 7
RETURN
UserInput:
' Get user supplied parameters. Defaults are on disk file.
'Get default configuration from disk
CLOSE #4: OPEN "C:\METEOR\METEOR.CFG" FOR INPUT AS #4
INPUT #4, TrigSize, Quiet, AudioPct, LongDur, DBoffset
INPUT #4, MHz$, Band$, Antenna$, BeamP$, Radio$, Squelch$, Lock$
INPUT #4, NB$, BFO$, IFshift$, AttGain$, AGCspeed$, AudFilt$
CLOSE #4
'Output file name default
FileNameBase$ = "C:\METEOR\"
DateH$ = DATE$
FileNameBase$ = FileNameBase$ + LEFT$(DateH$, 6) + RIGHT$(DateH$, 2)
FileName$ = FileNameBase$ + ".HR"
FileName45$ = FileNameBase$ + ".45"
GetConfig:
CLS
PRINT "Control:"
PRINT USING Format1$; TrigSize
PRINT USING Format1a$; Quiet
PRINT USING Format2$; AudioPct
PRINT USING Format3$; LongDur
PRINT USING Format3a$; DBoffset
PRINT "(F)ile Name ", FileName$
PRINT
PRINT "Header:"
PRINT USING Format4$; MHz$
PRINT USING Format5$; Band$
PRINT USING Format6$; Antenna$
PRINT USING Format6a$; BeamP$
PRINT USING Format7$; Radio$
PRINT USING Format8$; Squelch$
PRINT USING Format9$; Lock$
PRINT USING Format9a$; NB$
PRINT USING Format9b$; BFO$
PRINT USING Format9c$; IFshift$
PRINT USING Format9d$; AttGain$
PRINT USING Format9e$; AGCspeed$
PRINT USING Format9f$; AudFilt$
PRINT
PRINT "(C)ontinue [else wait 20 seconds] (Q)uit"
'Allow processing to start by itself in case of power failure
T1 = TIMER
Time1:
H$ = INKEY$
IF H$ <> "" GOTO Time3
T2 = TIMER
IF T2 - T1 < 20 GOTO Time1
Time3:
IF H$ = "" THEN H$ = "C" 'time out
IF H$ = "T" OR H$ = "t" THEN INPUT "Trigger size ", TrigSize
IF H$ = "Z" OR H$ = "z" THEN INPUT "Quiet power ", Quiet
IF H$ = "A" OR H$ = "a" THEN INPUT "Audio increase ", AudioPct
IF H$ = "L" OR H$ = "l" THEN INPUT "Long duration ", LongDur
IF H$ = "D" OR H$ = "d" THEN INPUT "DB offset ", DBoffset
IF H$ = "F" OR H$ = "f" THEN INPUT "File name ", FileName$
IF H$ = "M" OR H$ = "m" THEN INPUT "Megahertz ", MHz$
IF H$ = "B" OR H$ = "b" THEN INPUT "Band ", Band$
IF H$ = "X" OR H$ = "x" THEN INPUT "Antenna ", Antenna$
IF H$ = "P" OR H$ = "p" THEN INPUT "Beam Pointing ", BeamP$
IF H$ = "R" OR H$ = "r" THEN INPUT "Radio ", Radio$
IF H$ = "S" OR H$ = "s" THEN INPUT "Squelch control ", Squelch$
IF H$ = "K" OR H$ = "k" THEN INPUT "Lock switch ", Lock$
IF H$ = "N" OR H$ = "n" THEN INPUT "Noise blanker ", NB$
IF H$ = "O" OR H$ = "o" THEN INPUT "BFO ", BFO$
IF H$ = "I" OR H$ = "i" THEN INPUT "IF shift ", IFshift$
IF H$ = "E" OR H$ = "e" THEN INPUT "Attenuation/Gain ", AttGain$
IF H$ = "G" OR H$ = "g" THEN INPUT "AGC speed ", AGCspeed$
IF H$ = "U" OR H$ = "u" THEN INPUT "Audio peak filter ", AudFilt$
IF H$ = "C" OR H$ = "c" THEN GOTO ConfigOut
IF H$ = "Q" OR H$ = "q" THEN END
GOTO GetConfig
ConfigOut:
OPEN FileName$ FOR OUTPUT AS #3
PRINT #3, USING Format11$; TrigSize
PRINT #3, USING Format11a$; Quiet
PRINT #3, USING Format12$; AudioPct
PRINT #3, USING Format13$; LongDur
PRINT #3, USING Format13a$; DBoffset
PRINT #3, USING Format14$; MHz$
PRINT #3, USING Format15$; Band$
PRINT #3, USING Format16$; Antenna$
PRINT #3, USING Format16a$; BeamP$
PRINT #3, USING Format17$; Radio$
PRINT #3, USING Format18$; Squelch$
PRINT #3, USING Format19$; Lock$
PRINT #3, USING Format19a$; NB$
PRINT #3, USING Format19b$; BFO$
PRINT #3, USING Format19c$; IFshift$
PRINT #3, USING Format19d$; AttGain$
PRINT #3, USING Format19e$; AGCspeed$
PRINT #3, USING Format19f$; AudFilt$
PRINT #3, "Quality Flags:"
PRINT #3, "-2: flagged manually as bad"
PRINT #3, "-1: meteors < 2 * false or quiet < 50"
PRINT #3, " 0: OK"
PRINT #3, "+1: flagged manually as good"
PRINT #3,
PRINT #3, " <-- MID TIME --> <---- AVERAGE ----> <------ COUNT -------> QUL"
PRINT #3, " MO DA YR HR MN SC SIGNAL QUIET AUDIO FALSE LONG METEOR FLG"
PRINT #3, " ======== ======== ====== ====== ====== ====== ====== ====== ==="
OPEN FileName45$ FOR OUTPUT AS #5
PRINT #5, USING Format11$; TrigSize
PRINT #5, USING Format11a$; Quiet
PRINT #5, USING Format12$; AudioPct
PRINT #5, USING Format13$; LongDur
PRINT #5, USING Format13a$; DBoffset
PRINT #5, USING Format14$; MHz$
PRINT #5, USING Format15$; Band$
PRINT #5, USING Format16$; Antenna$
PRINT #5, USING Format16a$; BeamP$
PRINT #5, USING Format17$; Radio$
PRINT #5, USING Format18$; Squelch$
PRINT #5, USING Format19$; Lock$
PRINT #5, USING Format19a$; NB$
PRINT #5, USING Format19b$; BFO$
PRINT #5, USING Format19c$; IFshift$
PRINT #5, USING Format19d$; AttGain$
PRINT #5, USING Format19e$; AGCspeed$
PRINT #5, USING Format19f$; AudFilt$
PRINT #5, "Quality Flags:"
PRINT #5, "-2: flagged manually as bad"
PRINT #5, "-1: meteors < 2 * false or quiet < 50"
PRINT #5, " 0: OK"
PRINT #5, "+1: flagged manually as good"
PRINT #5,
PRINT #5, " <-- MID TIME --> <---- AVERAGE ----> <------ COUNT -------> QUL"
PRINT #5, " MO DA YR HR MN SC SIGNAL QUIET AUDIO FALSE LONG METEOR FLG"
PRINT #5, " ======== ======== ====== ====== ====== ====== ====== ====== ==="
'Save chosen parameters as default for next run
OPEN "C:\METEOR\METEOR.CFG" FOR OUTPUT AS #4
PRINT #4, USING Format40$; TrigSize; Quiet; AudioPct; LongDur; DBoffset
PRINT #4, USING Format41$; MHz$; Band$; Antenna$; BeamP$; Radio$; Squelch$; Lock$
PRINT #4, USING Format41$; NB$; BFO$; IFshift$; AttGain$; AGCspeed$; AudFilt$
CLOSE #4
'Screen Mode
CLS
SCREEN 8
COLOR 7
'Error trapping
ON ERROR GOTO NextPower
RETURN
ZZdocument:
' AGCspeed$ response speed of radio automatic gain control
' Antenna$ type of antenna used
' AttGain$ attenuation or gain applied to signal
' Aud(AudDim) array for audio samples
' AudFilt$ setting of radio audio filter
' AudInit flag that this is the first pass through Audio
' AudioFound autocorrelation in percent
' AudioPct correlation threshold for a confirmation
' AudDim maximum number of audio samples
' AudRef reference autocorrelation in percent
' AudDayRef$ date of last reference audio
' AudDayTrg$ date of last triggered audio
' AudTimeRef time of last reference audio
' AudTimeTrg time of last triggered audio
' AudTrg triggered autocorrelation in percent
' AvgAud45 average reference audio correlation in 45 minutes
' AvgAud60 average reference audio correlation in 60 minutes
' AvgPow45 average signal power in 45 minutes
' AvgPow60 average signal power in 60 minutes
' AvgQui45 average quiet signal time in 45 minutes
' AvgAud60 average quiet signal time in 60 minutes
' AvgSigSq average sigma squared in Audio routine
' Band$ flag for upper or lower sideband
' BADR base address for A/D board
' BeamP$ antenna's beam pointing (0 = north, 90 = east)
' BFO$ setting of radio beat frequency oscillator
' BigAud largest autocorrelation found (temporary)
' DateH$ temporary holder for DATE$
' Da day of month
' DBoffset number of dBs to add to signal
' DT digital counts from A/D board
' Falses cumulative number of false triggers
' Falses45 number of false triggers in 45 minutes
' Falses60 number of false triggers in 60 minutes
' FileName$ name of hourly output file
' FileName45$ name of 45 minute output file
' HB high byte from A/D board
' Hr hour
' IFshift$ setting of radio intermediate frequency shift
' K1 lower limit of audio sample spacing
' K2 upper limit of audio sample spacing
' KAud frequency of largest ref audio correlation
' LastWasAud$ flag that the last sample taken was audio
' LastJump number of ticks since last non-quiet signal
' LB low byte from A/D board
' Lock$ setting of radio tuning lock
' Longs cumulative number of long duration meteor echoes
' Longs45 number of long meteors in 45 minutes
' Longs60 number of long meteors in 60 minutes
' LongDur minimum duration of a long echo in 0.1 seconds
' Meteors cumulative number of meteors
' Meteors45 number of meteors in 45 minutes
' Meteors60 number of meteors in 60 minutes
' MHz$ tuning frequency
' MinCnt minute counter for 60 minute binning
' MinCnt45 minute counter for 45 minute binning
' Mn minute
' Mo month
' N actual number of audio samples
' NB$ setting of radio noise blanker
' NewDay$ date used for comparison in CheckTime code
' NewTime time used for comparison in CheckTime code
' OldAudTime time for letting 1 s elapse after ref audio
' OldAudDay$ date for letting 1 s elapse after ref audio
' OldDay$ date used for comparison in CheckTime code
' OldFalses used to compute false triggers in 60 minutes
' OldFalses45 used to compute false triggers in 45 minutes
' OldLongs used to compute long meteors in 60 minutes
' OldLongs45 used to compute long meteors in 45 minutes
' OldMeteors used to compute meteors in 60 minutes
' OldMeteors45 used to compute meteors in 45 minutes
' OldMin$ used to count minutes for 45 and 60 min samples
' OldTime time used for comparison in CheckTime code
' PowInit flag that this is the first pass through Power
' PowOld used from trigger evaluation in Power
' PowNew latest power sample
' PowTime time of latest power sample
' PowDate date of latest power sample
' Quiet minimum dB level, 0 = not used
' Radio$ radio model: R7100 or R8500
' RefAud$ reference (T) versus triggered (F) audio
' Samp45 number of samples taken in 45 minutes
' Samp60 number of samples taken in 60 minutes
' SampQui45 for computing % quiet in 45 minutes
' SampQui60 for computing % quiet in 60 minutes
' Sc second
' ScrNum number of points to plot on the screen
' ScrCnt counter for plotting on screen
' Sets number of sets of audio samples to correlate
' SigSq summation for sigma squared in Audio routine
' Squelch$ setting of radio squelch control
' SumAud45 summation for average audio correl in 45 minutes
' SumAud60 summation for average audio correl in 60 minutes
' SumPow45 summation for average signal in 45 minutes
' SumPow60 summation for average signal in 60 minutes
' SumQui45 summation for average quiet time in 45 minutes
' SumQui60 summation for average quiet time in 60 minutes
' T1 used in automatic starting of program
' T2 used in automatic starting of program
' TickCnt tick counter used in evaluating long echoes
' TimeH$ temporary holder for TIME$
' TrigSize signal power jump needed for a triggering
' YAud y coordinate for plotting audio correlation
' Yr last 2 digits of year