Studying VOR Signals with the RTL-SDR
VHF Omni Directional Radio Range (VOR) signals are used in aviation as a short range radio navigational system. Amateur radio hobbyist F4GKR decided to study these VOR signals by recording them using his RTL-SDR, and then analyzing them in MATLAB. On his post he shows his method of analysis and discusses his results.
I was trying to replicate the analysis result using 2.4 Ms per second wav file captured by HDSDR provided by the author. I am unable to get 30 Hz signal as achieved by Author.
—————————
% Close all previous figures
close all;
clear;
No_Of_Sample=400000;
[y, Fs, nbits]= wavread(‘HDSDR_20140205_185023Z_115533kHz_RF.wav’,No_Of_Sample);
%[y, Fs, nbits] = wavread(‘HDSDR_20140205_185023Z_115533kHz_RF.wav’);
%Original Sampling is at 2.4 Mhz
Fs_Original=Fs;
%Down Sample to 30Khz
Fs_Downsample=30e3;
%Downsample Factor
Downsample_Factor=(Fs_Original/Fs_Downsample);
%Downsample_Factor=80;
size(y(:,1))
y_d=downsample(y(:,1),Downsample_Factor);
%y_d=decimate(y(:,1),Downsample_Factor);
%y_d= resample(y(:,1),1,Downsample_Factor);
clear y;
% load(‘VOR_30K.mat’);
% clear y_d;
% y_d=out;
Fech = Fs_Downsample ;
L = length(y_d);
freqs = -Fech/2:Fech/L:Fech/2-Fech/L;
plot( freqs,10*log10(abs(fftshift(fft(y_d)))));
xlabel(‘Frequency (Hz)’,’fontsize’,9);
ylabel(‘Level’,’fontsize’,9);
nyq_freq=Fs_Downsample/2;
fc=40;
fn=Fs_Downsample;
cutoff_norm =fc/nyq_freq;
order=12;
fir_coeff = fir1(order, cutoff_norm);
filtered_signal = filter(fir_coeff, 1, y_d);
figure;
plot((filtered_signal));
figure;
plot(abs(fft(filtered_signal)));
grid;
zoom;