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
This commit is contained in:
Joe Taylor 2012-06-04 17:02:50 +00:00
parent d7258ca7aa
commit 6787ab6e60
4 changed files with 23 additions and 16 deletions

View File

@ -54,7 +54,7 @@ void Astro::astroUpdate(QDateTime t, QString mygrid, QString hisgrid,
sprintf(cc,"Az: %6.1f\n" sprintf(cc,"Az: %6.1f\n"
"El: %6.1f\n" "El: %6.1f\n"
"Dop: %6d\n" "MyDop: %6d\n"
"DxAz: %6.1f\n" "DxAz: %6.1f\n"
"DxEl: %6.1f\n" "DxEl: %6.1f\n"
"DxDop: %6d\n" "DxDop: %6d\n"

View File

@ -38,13 +38,20 @@ subroutine symspec(k,nxpol,ndiskdat,nb,nbslider,idphi,nfsample,fgreen, &
ihsym=0 ihsym=0
go to 999 !Wait for enough samples to start go to 999 !Wait for enough samples to start
endif endif
if(k.lt.k0) k1=0
if(k0.eq.99999999) then if(k0.eq.99999999) then
pi=4.0*atan(1.0) pi=4.0*atan(1.0)
do i=1,NFFT do i=1,NFFT
w(i)=(sin(i*pi/NFFT))**2 w(i)=(sin(i*pi/NFFT))**2
enddo enddo
endif 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 nzap=0
sigmas=1.5*(10.0**(0.01*nbslider)) + 0.7 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 iqadjust0=0
if(iqadjust.ne.0) iqapply0=0 if(iqadjust.ne.0) iqapply0=0
nwindow=2 nwindow=2
! nwindow=0 !### No wondowing ###
nfft2=1024 nfft2=1024
kstep=nfft2 kstep=nfft2
if(nwindow.ne.0) kstep=nfft2/2 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)) 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)) if(nxpol.ne.0) cy0(i)=cmplx(dd(3,j+i),dd(4,j+i))
enddo 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, & cx0,cy0,gainx,gainy,phasex,phasey,cx1,cy1,slimit,lstrong, &
px,py,nzap) 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 if(nfsample.eq.95238) hsym=2048.d0*95238.1d0/11025.d0
npts=NFFT !Samples used in each half-symbol FFT 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 ihsym=ihsym+1
ja=ts+hsym !Index of first sample ja=ts+hsym !Index of first sample
jb=ja+npts-1 !Last sample jb=ja+npts-1 !Last sample

View File

@ -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) cx0,cy0,gainx,gainy,phasex,phasey,cx1,cy1,slimit,lstrong,px,py,nzap)
! Sequential processing of time-domain I/Q data, using Linrad-like ! 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 complex h,u,v
logical first logical first
data first/.true./ 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 if(first) then
pi=4.0*atan(1.0) pi=4.0*atan(1.0)
do i=0,nfft-1 do i=0,nfft-1
w(i)=(sin(i*pi/nfft))**2 w(i)=(sin(i*pi/nfft))**2
enddo enddo
covxs=0.
covxw=0.
covys=0.
covyw=0.
s=0. s=0.
ntc=0 ntc=0
ntot=0 ntot=0
@ -59,6 +56,14 @@ subroutine timf2(nxpol,nfft,nwindow,nb,peaklimit,iqadjust,iqapply,faclim, &
first=.false. first=.false.
endif endif
if(k.lt.k0) then
covxs=0.
covxw=0.
covys=0.
covyw=0.
endif
k0=k
cx(0:nfft-1)=cx0 cx(0:nfft-1)=cx0
if(nwindow.eq.2) cx(0:nfft-1)=w(0:nfft-1)*cx(0:nfft-1) 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 call four2a(cx,nfft,1,1,1) !First forward FFT

View File

@ -1,4 +1,4 @@
//-------------------------------------------------------------- MainWindow //------------------------------------------------------------- MainWindow
#include "mainwindow.h" #include "mainwindow.h"
#include "ui_mainwindow.h" #include "ui_mainwindow.h"
#include "devsetup.h" #include "devsetup.h"