From: baobrien Date: Fri, 13 Mar 2015 18:28:35 +0000 (+0000) Subject: cleaned up upconverter, optimized into single loop, optimized out some temp memory X-Git-Url: http://git.whiteaudio.com/gitweb/?a=commitdiff_plain;h=f5453801ef40fdc0b3e081ce2f04092a38c0ae1b;p=freetel-svn-tracking.git cleaned up upconverter, optimized into single loop, optimized out some temp memory git-svn-id: https://svn.code.sf.net/p/freetel/code@2072 01035d8c-6547-0410-b346-abe4f91aad63 --- diff --git a/codec2-dev/stm32/src/iir_duc.c b/codec2-dev/stm32/src/iir_duc.c index a37d0852..3a18dc1b 100644 --- a/codec2-dev/stm32/src/iir_duc.c +++ b/codec2-dev/stm32/src/iir_duc.c @@ -86,12 +86,11 @@ static int int1i,int2i,int3i,int4i,cmb1i,cmb2i,cmb3i,cmb4i; //States for im comb static float fir_8c80r_cic[]; //FIR Coeffs static float fir_8c80r_re[F8C80R_LEN*2]; //FIR delay line for re static float fir_8c80r_im[F8C80R_LEN*2]; //FIR delay line for im -static float f8c80r_temp_re[DUC_N/5]; -static float f8c80r_temp_im[DUC_N/5]; static int ptr_8c80r; //circular buffer ptr fir_8c80r_re static int w8c80r = 0; //Omega for upconversion static int cosf4[] = {1,0,-1,0}; //Cosine table for fs/4. precomputed by meat computer static int sinf4[] = {0,1,0,-1}; //Sine table for fs/4. + /* Interpolate and shift from 8k complex to 80k real, centered on Fs/4. comp_8 - Input samples - 8Kc complex - must be (DUC_N/10)*count long @@ -100,35 +99,34 @@ static int sinf4[] = {0,1,0,-1}; //Sine table for fs/ */ void upconv_8c_80r(COMP comp_8[],float real_80[],int count){ - int i,j,k; - float nr,ni,ret; - int cmbr,cmbi,cmbrr,cmbii,rein,imin; + int i,j,k; //Loop indices + float nr,ni,ret; //Temporary variables + int cmbr,cmbi,cmbrr,cmbii,rein,imin; //More temporaries for(i=0;i=F8C80R_LEN) ptr_8c80r=0; - } - for(j=0;j