From 6787ab6e6084fcda55dd09bbc3a91165a689315f Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 4 Jun 2012 17:02:50 +0000 Subject: [PATCH] Temporary(?) fix for the "ghost signal" problem. NB: it occurred only with nwindow=2. (Have not yet determined why data are being picked from dd() array beyond where new data should appear... so for now, I have zeroed the whole array at start of a new minute.) git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/map65@2468 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- astro.cpp | 2 +- libm65/symspec.f90 | 18 ++++++++++-------- libm65/timf2.f90 | 17 +++++++++++------ mainwindow.cpp | 2 +- 4 files changed, 23 insertions(+), 16 deletions(-) diff --git a/astro.cpp b/astro.cpp index d566485ed..f7d0baf01 100644 --- a/astro.cpp +++ b/astro.cpp @@ -54,7 +54,7 @@ void Astro::astroUpdate(QDateTime t, QString mygrid, QString hisgrid, sprintf(cc,"Az: %6.1f\n" "El: %6.1f\n" - "Dop: %6d\n" + "MyDop: %6d\n" "DxAz: %6.1f\n" "DxEl: %6.1f\n" "DxDop: %6d\n" diff --git a/libm65/symspec.f90 b/libm65/symspec.f90 index 262efab19..1f6b2cdee 100644 --- a/libm65/symspec.f90 +++ b/libm65/symspec.f90 @@ -38,13 +38,20 @@ subroutine symspec(k,nxpol,ndiskdat,nb,nbslider,idphi,nfsample,fgreen, & ihsym=0 go to 999 !Wait for enough samples to start endif - if(k.lt.k0) k1=0 if(k0.eq.99999999) then pi=4.0*atan(1.0) do i=1,NFFT w(i)=(sin(i*pi/NFFT))**2 enddo endif + if(k.lt.k0) then + ts=1.d0 - hsym + savg=0. + ihsym=0 + k1=0 + dd(1:4,k+1:5760000)=0. !### Should not be needed ??? ### + endif + k0=k nzap=0 sigmas=1.5*(10.0**(0.01*nbslider)) + 0.7 @@ -57,6 +64,7 @@ subroutine symspec(k,nxpol,ndiskdat,nb,nbslider,idphi,nfsample,fgreen, & iqadjust0=0 if(iqadjust.ne.0) iqapply0=0 nwindow=2 +! nwindow=0 !### No wondowing ### nfft2=1024 kstep=nfft2 if(nwindow.ne.0) kstep=nfft2/2 @@ -67,7 +75,7 @@ subroutine symspec(k,nxpol,ndiskdat,nb,nbslider,idphi,nfsample,fgreen, & cx0(i)=cmplx(dd(1,j+i),dd(2,j+i)) if(nxpol.ne.0) cy0(i)=cmplx(dd(3,j+i),dd(4,j+i)) enddo - call timf2(nxpol,nfft2,nwindow,nb,peaklimit,iqadjust0,iqapply0,faclim, & + call timf2(k,nxpol,nfft2,nwindow,nb,peaklimit,iqadjust0,iqapply0,faclim, & cx0,cy0,gainx,gainy,phasex,phasey,cx1,cy1,slimit,lstrong, & px,py,nzap) @@ -86,12 +94,6 @@ subroutine symspec(k,nxpol,ndiskdat,nb,nbslider,idphi,nfsample,fgreen, & if(nfsample.eq.95238) hsym=2048.d0*95238.1d0/11025.d0 npts=NFFT !Samples used in each half-symbol FFT - if(k.lt.k0) then - ts=1.d0 - hsym - savg=0. - ihsym=0 - endif - k0=k ihsym=ihsym+1 ja=ts+hsym !Index of first sample jb=ja+npts-1 !Last sample diff --git a/libm65/timf2.f90 b/libm65/timf2.f90 index 29adaf4c1..a13256fc8 100644 --- a/libm65/timf2.f90 +++ b/libm65/timf2.f90 @@ -1,4 +1,4 @@ -subroutine timf2(nxpol,nfft,nwindow,nb,peaklimit,iqadjust,iqapply,faclim, & +subroutine timf2(k,nxpol,nfft,nwindow,nb,peaklimit,iqadjust,iqapply,faclim, & cx0,cy0,gainx,gainy,phasex,phasey,cx1,cy1,slimit,lstrong,px,py,nzap) ! Sequential processing of time-domain I/Q data, using Linrad-like @@ -37,17 +37,14 @@ subroutine timf2(nxpol,nfft,nwindow,nb,peaklimit,iqadjust,iqapply,faclim, & complex h,u,v logical first data first/.true./ - save w,covxs,covxw,covys,covyw,s,ntc,ntot,nh,kstep,fac,first + data k0/99999999/ + save w,covxs,covxw,covys,covyw,s,ntc,ntot,nh,kstep,fac,first,k0 if(first) then pi=4.0*atan(1.0) do i=0,nfft-1 w(i)=(sin(i*pi/nfft))**2 enddo - covxs=0. - covxw=0. - covys=0. - covyw=0. s=0. ntc=0 ntot=0 @@ -59,6 +56,14 @@ subroutine timf2(nxpol,nfft,nwindow,nb,peaklimit,iqadjust,iqapply,faclim, & first=.false. endif + if(k.lt.k0) then + covxs=0. + covxw=0. + covys=0. + covyw=0. + endif + k0=k + cx(0:nfft-1)=cx0 if(nwindow.eq.2) cx(0:nfft-1)=w(0:nfft-1)*cx(0:nfft-1) call four2a(cx,nfft,1,1,1) !First forward FFT diff --git a/mainwindow.cpp b/mainwindow.cpp index d81741043..db8904d49 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -1,4 +1,4 @@ -//-------------------------------------------------------------- MainWindow +//------------------------------------------------------------- MainWindow #include "mainwindow.h" #include "ui_mainwindow.h" #include "devsetup.h"