Radio Detection Basics

Forward scatter

Spectrum Lab

Spectrum Lab is probably the most popular meteor counting software in used by radio meteor observers that listen to CW signals. It is freeware. It is well supported by it’s author, Wolfgang ‘Wolf’ Büscher.  The program is very capable as well as flexible.

Main Features of Spec Lab for meteor counters most features are enabled in a simple conditional actions script (see below):

  1. Compares a narrow listening ‘pass band’ where it counts meteors and compares it to a nearby noise band prior to triggering. This reduces the chance of noise being counted as a meteor.
  2. Signal trigger level of the meteor can be easily set. Signal to noise ratio eliminates weaker noise pulses.
  3. Timestamps each echo and prints echo number for the hour
  4. Option to save each FFT spectrogram for future research at any time interval the user wants. Some of use a 5 minute cycle and ftp the most recent image to a web site for others to see. This is very handy during major showers.
  5. Text files can be sent to hard drive with echo counts/hour, duration of echoes/hour, and longest echo of the hour. The user can set the periods to any interval desired although 10 minute and 60 minute periods are the norm.
  6. Station and frequency information easily superimposed on the FFT spectrogram.
  7. Rate of sampling, amplitude graphs and bins all software adjustable
  8. Very stable for months of unattended operation. No obvious memory leaks or other trouble generator. The software is mature and well tested.
  9. Fully supported in RMOB’s Colorgramme program for automatic ftp and reporting

The software  can be downloaded at:

An excellent how to set Spectrum Lab up to record meteors can be found on Andy Smith’s site. Be sure to try the other links at Andy’s when you visit it. Andy was a pioneer in scripting Spec Lab for meteor observers.

Here is typical display of Spectrum Lab taken during the Quadrantid shower at West Kelowna:


As can be seen the FFT spectrogram list the date time and frequency, 87.240 MHz,  in use as well as a dB scale. On the lower border of the image are the individual echo counts. At the end of the hour a total count for the hour is printed over the image.  The right side of the image shows the station is listening between the audio pass band of 800 Hz and 1000 Hz.

The output result file can be as simple as a date-time stamp, UT hour, and the echo count for the hour. Here is the hour for the image above:

2010010313    13    243 <–
2010010314    14    244
2010010315    15    195
2010010316    16    128

The format above is supported by Colorgramme/Color Lab a program that ftp the data to the RMOB Live site. It is very easy to print a second results file with more variables for your own research needs.

The conditional action script makes the counting and file generation happen. For my station in West Kelowna I run a very simple code to do my counting. It produces two files, one for the RMOB and one for the NASA’s Global Meteor Scatter Network. For an example of a much more capable script look at Andy’s How To mentioned above. Here is my script ofr the West Kelowna station:


; Exported “Conditional Actions” for Spectrum Lab

if( initialising ) then F=1:G=1:A=0:B=0:C=0:D=0:E=0:L=0:K=0:t1=0:t2=0:Z=0
if( G=1 ) then A=noise(300,800):B=peak_a(850,950):q2=str(“YYYYMMDDhh”,now):L=str(“hh”,now):h1=str(“mmss”,now)
if( B>(A+20) ) then C=C+1:D=D+1:timer0.restart(2)
if( C>Z ) then Z=C
if( timer0.expired(1) ) then C=0:E=E+1:sp.print(E)
if( val(h1,”####”)=5955 ) then t2=t2+1
if( t2=1 ) then fopen3(“RMOB_Dur-“+str(“YYYYMM”,now)+”.dat”,a): fp3(q2,”,”,L,”,”,E,”,”,D,”,”,Z,”,”,A):fclose3:fopen4(“RMOB-“+str(“YYYYMM”,now)+”.dat”,a):fp4(q2,”,”,L,”,”,E):fclose4:sp.print(“Last hour=”,E):C=0:E=0:Z=0:D=0
if( val(h1,”####”)=0000 ) then t2=0

At first glance it wont make much sense to most people. The important lines are described below

The first line initialize the variables.

The second line states if G =1 (is true) then set variable A  to the value of the noise between  300 Hz and 800 Hz.   A=noise(300,800)

Semicolons  separates one statement for the next in the same line. In this case of line 2 the second statement states  we are going to listen for the meteor echo signals between 850 Hz and 950 Hz. B=peak_a(850,950) sets variable B, to record the peak signals in this narrow band of frequencies.

The next two statements  in line 2 set string variables to time stamps text.

Line 3 is the beginning of the counting sequence. If B>(A+20) then increase the Counter C by one echo and start timing D, the duration of the echo start as soon as B > A +20.

If B>(A+20) states if B (the echo peak signal is 20 dB greater than the noise then we have an echo and we trigger the counter and the counter on how long the echo remains 20 dB above the noise floor. Once the signal drops below 20 dB the counter is reset and the duration recorded. The 20 dB mentioned above can be set to anything the user wants. In a very quiet location it could be set to measure any echo greater than say, 10 dB above the noise. B>(A+10). Experiment and see what setting works best for you without creating false counts.

The rest of the code is housekeeping. At 59 minutes and 55 second of the hour then print the results to a text file(s). Print Lash hour total on the last echo on the spectrogram image and then reset all the variable so we can start the next hour totals.


Leave a Reply

Your email address will not be published. Required fields are marked *