From 61f76d6b4680b7f1568cba90c1bdc9701362ade7 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Wed, 24 Jun 2015 02:08:59 +0000 Subject: [PATCH] Compensate for LPF filter step response at beginning and end of transmission. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@5629 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- lib/wsprd/wsprd_exp.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) 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