From: drowe67 Date: Thu, 19 Apr 2018 07:30:39 +0000 (+0000) Subject: Thanks Steve for fsk.c patch to use all data for tone est, tested with horus_demod... X-Git-Url: http://git.whiteaudio.com/gitweb/?a=commitdiff_plain;h=4f852315cab534e8da4228f7ed2fb1dad6bc3704;p=freetel-svn-tracking.git Thanks Steve for fsk.c patch to use all data for tone est, tested with horus_demod, runs OK git-svn-id: https://svn.code.sf.net/p/freetel/code@3507 01035d8c-6547-0410-b346-abe4f91aad63 --- diff --git a/codec2-dev/src/fsk.c b/codec2-dev/src/fsk.c index ad8f0f02..1726163d 100644 --- a/codec2-dev/src/fsk.c +++ b/codec2-dev/src/fsk.c @@ -505,7 +505,6 @@ void fsk_demod_freq_est(struct FSK *fsk, COMP fsk_in[],float *freqs,int M){ int Fs = fsk->Fs; int nin = fsk->nin; size_t i,j; - int fft_samps; float hann; float max; float tc; @@ -528,8 +527,6 @@ void fsk_demod_freq_est(struct FSK *fsk, COMP fsk_in[],float *freqs,int M){ COMP rphi = {.5,0}; rphi = cmult(cconj(dphi),rphi); #endif - - fft_samps = Ndft; f_min = (fsk->est_min*Ndft)/Fs; f_max = (fsk->est_max*Ndft)/Fs; @@ -538,9 +535,18 @@ void fsk_demod_freq_est(struct FSK *fsk, COMP fsk_in[],float *freqs,int M){ /* scale averaging time constant based on number of samples */ tc = 0.95*Ndft/Fs; - int fft_loops = nin/Ndft; + int samps; + int fft_samps; + int fft_loops = nin / Ndft; + for(j=0; j= Ndft) ? Ndft : samps; + + /* Copy FSK buffer into reals of FFT buffer and apply a hann window */ for(i=0; ihann_table[i]; @@ -552,7 +558,8 @@ void fsk_demod_freq_est(struct FSK *fsk, COMP fsk_in[],float *freqs,int M){ fftin[i].r = hann*fsk_in[i+Ndft*j].real; fftin[i].i = hann*fsk_in[i+Ndft*j].imag; } - /* Zero out the remaining slots */ + + /* Zero out the remaining slots on spare samples */ for(; i