Automatic picture transmission(APT) decoder

Automatic picture transmission protocol is used by NOAA satellites. They constantly send a frequency modulated signal at 137 to 138 MHz.
Demodulating this FM wave will give an output of audio signal with a frequency of 2400 Hz. This is also known as amplitude modulated subcarrier wave. NOAA satellite sends 120 lines per minute or 1 line per 500 milliseconds. From this AM subcarrier wave, we can extract the amplitudes for 500 milliseconds and normalize them to be in between 0 and 255.

These values can be stored in NumPy array and can be plotted as an image.

Here’s an example image:
example image

example image 2

How to run?

Make sure that you install numpy, scipy, matplotlib using the following commands

pip install numpy

pip install scipy

pip install matplotlib

Once they are installed, run the program using python run.py, it will ask for the WAV file and normalization values. Enter them and it will show you the image as a plot.

I’ve included noaa1.wav file, you can use it see the image sent by the satellite.

References

https://noaasis.noaa.gov/NOAASIS/pubs/Users_Guide-Building_Receive_Stations_March_2009.pdf

https://en.wikipedia.org/wiki/Automatic_picture_transmission

GitHub

View Github