From: drowe67 Date: Tue, 13 Oct 2015 09:23:58 +0000 (+0000) Subject: Eb/No and SNR measurement on streaming version X-Git-Url: http://git.whiteaudio.com/gitweb/?a=commitdiff_plain;h=3f8b61d372f134e27f22152d693e45621988d884;p=freetel-svn-tracking.git Eb/No and SNR measurement on streaming version git-svn-id: https://svn.code.sf.net/p/freetel/code@2438 01035d8c-6547-0410-b346-abe4f91aad63 --- diff --git a/codec2-dev/octave/fsk_horus.m b/codec2-dev/octave/fsk_horus.m index 8838bd22..d076e194 100644 --- a/codec2-dev/octave/fsk_horus.m +++ b/codec2-dev/octave/fsk_horus.m @@ -262,7 +262,7 @@ function [rx_bits states] = fsk_horus_demod(states, sf) % Eb/No estimation x = abs(abs(f1_int_resample) - abs(f2_int_resample)); - states.EbNodB = 20*log10(mean(x)/std(x)); + states.EbNodB = 20*log10(1E-6+mean(x)/(1E-6+std(x))); endfunction diff --git a/codec2-dev/octave/fsk_horus_stream.m b/codec2-dev/octave/fsk_horus_stream.m index 8610969b..6e94c28e 100644 --- a/codec2-dev/octave/fsk_horus_stream.m +++ b/codec2-dev/octave/fsk_horus_stream.m @@ -25,6 +25,8 @@ nin = states.nin; nfield = states.nfield; npad = states.npad; uw = states.uw; +EbNo = 0; +SNR = 0; rx = []; rx_bits_buf = []; @@ -42,10 +44,12 @@ while c rx_bits_buf = [rx_bits_buf rx_bits]; rx = rx(nin+1:length(rx)); nin = states.nin; + EbNo = 0.9*EbNo + 0.1*states.EbNodB; + SNR = EbNo + 10*log10(states.Rs/3000); %printf("nin: %d length(rx): %d length(rx_bits_buf): %d \n", nin, length(rx), length(rx_bits_buf)); endwhile f = (states.f1+states.f2)/2; shift = states.f2 - states.f1; - printf("max: %d f: %d shift %d bits: %d\r", max(s), f, shift, length(rx_bits_buf)); + printf("max: %d f: %d fshift %d Eb/No: %3.1f SNR: %3.1f bits: %d\r", max(s), f, shift, EbNo, SNR, length(rx_bits_buf)); % look for complete Horus frame, delimited by 2 unique words