Decoding Airband Signals with MATLAB
The goal of this project is to analyzed an RF data file (.dat) that included airband AM signals captured around Palo Alto Airport ATIS, using an RTL-SDR tunner centered at 135.5 MHz. Through the use of Matlab and provided functions the 10 second data file was analyzed with a spectrogram function that allowed to visualize the provided data file. After scanning the data file and locating the distinct signal, the signal was demodulated using complex down conversion. To recover the signal a Butterworth or Chebyshev filter was used, the Butterworth seemed to work a bit better for this project. The signal was then decimated to remove any unneeded data using the built in function, and the audio sample was saved as a .wav file for playback.
Signal = 135.1Mhz
Frequency 135.10000 SFO DEPARTURE AREA D- SUTRO SECTION WEST DEPARTURE. Audio transcript: “337 Compass 5857”
Who: Compass airline flight 5857, (either requesting heading or correction on radio 133.7 since aircraft is departing)
Aircraft : https://flightaware.com/live/flight/CPZ5857


%%MATLAB CODE%% %Find AM signals in sample. sample=load_complex(flight135.dat'); %load sample audio file. sec=4; %change starting time of sample audio ds=disp_spec(sample,sec*2048000,1024,2000); %spectrogram display. fs=2; %sampling frequency nf=1024; % block size for transform f=linspace(-.5,.5,nf)*fs; %spectrum frequency range k=abs(ds(:,nf/fs)); %absolute values for the plotted column plot(f,k)%plot spectrum vs frequency %Demodulation of captured signal cent=-1; %plug in value of the Mhz you would like to center t = (1:length(sample))./fs; %d time sample dm = sample.*exp(2*j*pi*cent*t)'; %Center the frequency around 0 disp_spec(dm,sec*2048000,1024,2000); % Display spectrogram to check if centered. %Build Butterworth filter and decode. f3dB=25000; %input cutoff frequency. [b,a]=butter(7,f3dB/(2*pi*8000/2));%7th order butterworth lowpass filter normalize sample freq dmd=filter(b,a,dm); %filter demodulated spectrum dmdd=decimate(dmd,256,'fir'); %reduce sample rate by 256 voice=abs(dmdd)./max(abs(dmdd)); %normalize the audio signal sound(voice,8000) %play audio signal audiowrite(flight135.wav,voice,8000);%save audio sample rename wav file freq