mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-15 08:31:57 -05:00
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:
parent
d7258ca7aa
commit
6787ab6e60
@ -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"
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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"
|
||||||
|
Loading…
Reference in New Issue
Block a user