magore@watdcsu.waterloo.edu (Mike Gore, Institute Computer Research - ICR) (03/03/89)
2400HZ Crystal phase lock Weather Satellite decoder Updated by Mike Gore March 1989 Part 1 of 3 =========== This posting is broken into 3 parts. Part 1 contains a functional outline of the decoder and some information of interest on the NOAA and Meteor weather satellites. Part 2 contains the decoder diagram in ascii text format. Part 3 contains some functional test software written for the ATARI ST. You are encouraged to extend/modify this to other machines and to add improvements. I hereby place these postings in the public domain. My hope is to stimulate other people to get involved and share ideas in this in testing area. Background: The NOAA and Meteor weather satellites transmit images of the Earth using an APT format [Automatic Picture Transmission ]. The image information is encoded with a 2400HZ AM audio signal that is transmitted on a FM modulated VHF downlink. The amplitude of the 2400HZ signal represents the surface brightness at a given instant scanned by a rotating mirror. The image format is 120 per minute for Meteor and lines per minute for NOAA. Frequencies in use are are 137.5MHZ, 137.620MHZ for NOAA and 137.300MHZ, 137.400MHZ and 137.850MHZ for the Soviet Meteor satellites. The receiver bandwidth must be at least 30KHZ or more for good results. The NOAA craft transmit both visual and IR images where the Meteor crafts only send visual band images. The resultant image is therefore the sum total number of scans you are able to receive before the satellite drops below your local radio horizon. There is thus no concept of vertical sync other then indirectly by whatever range of scan line you may happen to choose when displaying a final image. After demodulating the 2400HZ AM signal one is only left with the original amplitude. Beside having brightness information the demodulated signal for NOAA satellites has a 1200HZ sync burst to flag the start of a given scan line whereas the Meteor craft uses a 300HZ sync. For my receiver I used a Radio Shack PRO-26 scanner but I had to replace both ceramic IF filters. For the 455KHZ filter I use a muRata CFM455A and for the 10.7MHZ filter I used a muRata 10.7MA. I should mention that the CFM455A is larger the the original filter so you must lay the filter on its side on top of the MC3361. For the 10.7MHZ filter you could use most any 3 terminal filter used for many FM radios with around 1 to 1.5K impedance. For best result you must adjust the preamp in the PRO-26 to recenter the passband near 137.5MHZ. For my antenna I chose a turnstile antenna with a 2 stage FET preamp. Very useful information may be obtained from either of the 1987, 1988 or 1989 ARRL Handbook published by the American Radio Relay League. Also I would suggest the ARRL Antenna Book for anyone seriously interested in experimenting with various antennas. Circuit description: My demodulator uses a passband network built of 2 high and 2 low pass filters. The stop bands are currently 1200HZ and 3600HZ however this value was somewhat a matter of experiment on my part. The filter feeds a full wave active rectifier that can be balanced with a 10K variable resistor. The rectifier part is similar in form to that found in several National Linear AP Notes yet I liked the version in the 1987 ARRL handbook enough that I used theirs. What follows the full wave rectifier is a resetable integrator followed by a sample hold. The DG201 analog switches are made by GE Intersel. The op amps I used were the TL082 dual or TL084 quad op amps yet LF353's just as well. I chose to use the resetable integrator rather then a low pass filter after a rectifying stage so as to push the overall demodulated bandwidth of the system to the limit. The results are very good, the main advantage here being that aliasing errors are virtually gone because the integration period is synced with the 2400 AM carrier. The integrator may be run at half cycle intervals but the circuit described here is wired for 1 cycle samples. In order to phase lock the system clock with the 2400HZ AM carrier I chose a Crystal VXO design for very stable operation. In order to be able to record on tape I shaped the output of the VXO into a triangle wave in order to drive one channel of a stereo tape deck. During play back I use a simple PLL onto lock to this signal and provide timing uneffected by any residual wow and flutter. It is this last analog PLL that actually drives the switchable integrators and A/D converter timing. So that the VXO can run closed loop the analog PLL must see a copy of the shaped VXO signal during a recording session. If a tape deck is removed from circuit you just need to jumper the shaped VXO signal to the analog PLL input in order to let the VXO run closed loop. If there is no need to record signals on tape for later play back at all you can remove the analog PLL and VXO wave shaping circuit. To do this just jumper pin 14 of the MC14020 to pin 1&2 to the 74LS164 directly and remove any left over connections from the 74HC86 XOR gate (pins 4,5 &6). Some may wonder why I just don't use the analog PLL by it's self and skip the VXO all together. Part of my reason for not doing this is because the analog PLL is not nearly as stable nor noise immune as the VXO. Any phase errors in the system will cause amplitude errors which reduce the whole usefulness of using a switchable integrator design in the first place. Also I use the VXO to create basic timing to such accuracy that in fact I no longer even need to examine the sync information transmitted in the APT signal. The loop time of the VXO is so slow that noise does not impact the VXO much. Ok, so why not use an analog PLL with very slow loop time then ? The answer for this is that drift is a serious problem in setting and maintaining an analog PLL whereas a crystal does not suffer from shifts in the center frequency. Remember that the loop response time for the PLL must be very slow and as the center frequency drifts the time for the loop to close increases. Lastly because a PLL is used for timing we need to restrict how far the loop frequency can actually move. For NOAA I found with it's scans of 240 lines per minute and also with two images interleaved on alternate scans there isn't much bandwidth left over for image detail. This need for maximal bandwidth led me to choose the VXO design after much experimentation. I should note that the Meteor satellites run their carrier slightly off 2400HZ and my system can not phase lock on their carrier - in fact there doesn't seem to be a strict 1 to 1 relationship between carrier frequency and scan rate as is the case with NOAA. The loss of lock still gives very good images but not as good as they could be. I should mention that when the VXO loses lock it stays near it's center frequency so it remains useful for timing to a very high degree of accuracy. Regardless of the carrier differences the scan rate for both satellites is *very* accurate - enough so that one doesn't even need to use the sync information to maintain sync. In fact in the final data collection software I chose not to use the sync burst in favor of a manual software offset adjustment in the final display program. The VXO uses a standard XOR phase comparator for locking yet there is no loop filter needed by design. It works out that the phase jitter is to small to even worry about with only an 8bit A/D. Basically the XOR gate forces the 2400 divided reference clock to be roughly 90 degrees out of phase with the downlink 2400HZ carrier. The crystal I used is series tuned such that when the analog switch closes the frequency runs low and when it is open it runs high. The 20pf cap across the switch adds to the switch capacitance to give a minimal value to keep the oscillator stable. The idea is to weight the two values of frequency with the switch open and then closed such that it averages to 2457600 MHZ with about +/- 150HZ swing when switched. The swing must at least be in excess of the worst case doppler shift - the higher the value the faster the lock yet with a chance of larger phase errors as a function of noise. This circuit works very well at locking on a signal almost totally lost in noise much unlike what one would expect with a simple analog PLL. Of course a noisy signal is of no real value yet even noise bursts can cause loss of sync with a normal non VXO analog PLL design. Also any phase errors that can occur will cause aliasing errors in the recovered amplitude at a rate determined by the loop lock time. Software: The code included was complied under Mark Williams C 3.0.9 on the ST. It works in both Mono or Color modes. The data collection program takes 1 argument which is simply the file name to save the collected data with. This program displays a digital scope style profile of the signal as it's being saved to disk along with the current line count. You may stop and close the file at any time by typing any character. The program will also stop and close its files if any kind of write error occurs [ such as a full disk and so on ]. Example: get afile The display program takes 4 arguments. Example: disp afile 100 900 -hs2 Argument 1 is the file name, 2 is the line count to skip when reading the file, 3 is the image offset and 4 is a a list of flags. Flags: c - contrast enhance h - histogram equalize s - flip image y - correct aspect ratio of NOAA images 2 - magnify 2x 3 - magnify 3x 4 - magnify 4x Notes: You can not use both "c" & "h" at the same time. Example: disp afile 100 900 -hs2 Credits Many thanks go to Alan Paeth for letting me use a well tuned version of the Floyd error diffusion method he implimented for his IM Raster Toolkit. It provied a main basis for my final monochrome display driver. -- End of Part 1 # At Home: watmath!mgvax!root, watmath!mgvax!mike # Note: do not use an '@' in a path to 'mgvax' (old mail software)