[rec.ham-radio] NOAA-METEOR receiver project part 1 of 3

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)