diff --git a/lib/wsprd/wsprd_exp.c b/lib/wsprd/wsprd_exp.c index d9d004eb4..e0935ee47 100644 --- a/lib/wsprd/wsprd_exp.c +++ b/lib/wsprd/wsprd_exp.c @@ -391,6 +391,7 @@ void subtract_signal2(double *id, double *qd, long np, double dt=1.0/375.0, df=375.0/256.0; double pi=4.*atan(1.0), twopidt, phi=0, dphi, cs; int i, j, k, ii, nsym=162, nspersym=256, nfilt=256; //nfilt must be even number. + int nsig=nsym*nspersym; double refi[45000],refq[45000]; double ci[45000],cq[45000],cfi[45000],cfq[45000]; @@ -445,7 +446,8 @@ void subtract_signal2(double *id, double *qd, long np, } //quick and dirty filter - may want to do better - double w[nfilt], norm=0; + double w[nfilt], norm=0, partialsum[nfilt]; + memset(partialsum,0,sizeof(double)*nfilt); for (i=0; i(nsig-1-nfilt/2) ) { + norm=partialsum[nfilt/2+nsig-1-i]; + } else { + norm=1.0; + } k=shift0+i; j=i+nfilt; if( (k>0) & (k