Purpose of the AFC function.The AFC in linrad is intended to be used for a large variety of signals. One extreme is to compensate for the doppler shift on meteor reflections which may change by several kHz per minute. The other extreme is to compensate for temperature drift and doppler shift on very weak EME signals that drift by only a few Hz per minute. In the latter case, afc is part of the coherent processing required to dig information out of the noise for really weak signals. Somewhere in between is the need to compensate thermal drift and other instabilities of "normal" weak signals to allow reception in a narrower bandwidth than otherwise possible.
Using the second fft for AFCThe first fft is required to remove strong signals to allow the noise blanker to operate properly. When the second fft is enabled there is no need to have high resolution in the first fft so the extra time delay from the first fft is small.
When looking for "normal" weak signals, there is no need for high resolution in the second fft either. Using a bin width of about 10Hz with an associated delay of about 0.2 seconds is adequate.
When looking for difficult signals a higher resolution is useful, but at 1Hz bandwidth the delay well above 1 second if a window function is used. The transform has to span over more than 1 second since the beginning and end of the data is attenuated by the window.
The second fft may use MMX instructions and will allow very large transforms covering several seconds of data even at high sampling rates.
AFC for a marginal EME signalAs a demo and test case the UNKN422 challenge was used. UNKN422.WAV was played from one computer to produce analog output for the audio board on another computer.
This file contains a recording of a weak and unstable EME signal. The recording is at normal SSB bandwidth, and the signal is very difficult to copy. (If you can decode who is transmitting you can win USD 100, check AF9Y home page!!!)
For normal EME activity a processing delay of about 5 seconds is acceptable. For very difficult signals up to 10 seconds is ok in my experience.
Figures 1 to 3 are recorded with the same processing parameters, a bandwidth of about 1Hz is used for the second fft. The A/D is running at 12kHz and fft2 gets a complex signal, an I/Q pair at half the sampling speed, 6kHz. The transform is in 8192 points with a sine squared window. The AFC averaging time is set to 10 seconds with a delay of 30% which means that the signal is delayed 3 seconds extra by the AFC process.
The baseband sampling speed is set to 375Hz and the transform size is 512 to provide high resolution in the baseband graph. The large delay in the baseband processing is only for demonstration of high resolution spectra of the result but in the future coherent processing will require a few seconds additional delay in really difficult cases.
Fig. 1 shows the UNKN422 signal when received with the AFC enabled. Note that the bandwidth in the baseband graph is pretty narrow. The baseband graph is the average of 50 transforms corresponding to 34 seconds. The white line in the AFC graph shows the oscillator frequency used by the program to convert the signal to the baseband while the green dots are the frequencies determined from individual transforms of the second fft. The red line is a least squares fit of the frequencies (green dots) determined during the latest 10 seconds. In the line fitting procedure each data point is weighted by the corresponding S/N ratio. Only the data point that is 3 seconds old is used to determine the frequency to use for the back transformation for that particular transform.
Fig. 2 shows the same sequence, but this time the AFC is forced to fail by plugging/unplugging the audio signal. (The AFC graph was refreshed to remove the scattered points). Fig. 2 shows the UNKN422 signal stopped stopped at exactly the same moment of time as fig. 1. Note that the signal is smeared out over about 5Hz corresponding to the frequency drift over 34 seconds.
Fig. 3. shows what happens if the AFC is locked to a good signal at the same level as UNKN422. The signal is from an audio generator and it is added to the audio signal of UNKN422. This graph is stopped during a good part of the UNKN422 signal which is played repeatedly to the computer. The good signal is 13dB above the noise in the baseband while UNKN422 is about 4dB weaker (the carrier averaged over 34 seconds). In good intervals the entire UNKN422 signal is a few dB stronger than the audio generator signal as can be seen from the wide graph of fig.3.
Fig. 4. shows what happens if the size of the second fft is reduced by a factor of two. The baseband processing delay and the AFC delay are also reduced. With these parameter changes processing delay is reduced by 2.6 seconds to 4.8 seconds. The UNKN422 signal is still followed reasonably well. For normal use in EME contests and alike, even faster processing can be used - most signals are easier to copy than UNKN422!!!