Pre-ci test passed git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4000 818b1a75-f10b-46b9-bf7c-635c3b92a50f
44 lines
868 B
Matlab
Executable File
44 lines
868 B
Matlab
Executable File
function out=rx_post(nom)
|
|
|
|
%load data.dat signal
|
|
%fid=fopen('/tmp/store1.dat',)
|
|
fid=fopen(nom,'rb')
|
|
signal=fread(fid,20480*2,'float');
|
|
signal=signal(1:2:length(signal))+j*signal(2:2:length(signal));
|
|
disp(signal(1:10));
|
|
size_data=20480/2;
|
|
Fs=7680; %in kHz
|
|
band = 2000; %in kHz
|
|
max_pos=0;
|
|
max=0;
|
|
f=abs(fft(signal)).^2;
|
|
for n=2:size_data
|
|
if(f(n) > max)
|
|
max=f(n);
|
|
max_pos=n;
|
|
end;
|
|
end;
|
|
|
|
disp(max_pos)
|
|
freq_max=Fs/size_data*max_pos - Fs/2 % corresponding frequency
|
|
if(abs(freq_max-2000)>100)
|
|
disp("Warning")
|
|
end;
|
|
|
|
|
|
% calculation of the signal power
|
|
Pu=sum(f(max_pos-20:max_pos+20))
|
|
ns_noise =round((band/Fs)*(size_data/2))
|
|
Pnoise=sum(f(max_pos-ns_noise:max_pos+ns_noise))-Pu
|
|
plot(10*log10(f))
|
|
|
|
% plot(10*log10(f(max_pos-ns_noise:max_pos+ns_noise)))
|
|
|
|
SNR=10*log10(Pu/Pnoise)
|
|
N_in = -174 +10*log10(1000*band)
|
|
S_in = -110;
|
|
SNR_in=S_in - N_in
|
|
|
|
NF=SNR_in-SNR
|
|
end;
|