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.
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

