mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 13:30:52 -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
							
								
									291efe9a62
								
							
						
					
					
						commit
						7cb792f31c
					
				@ -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"
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
//-------------------------------------------------------------- MainWindow
 | 
			
		||||
//------------------------------------------------------------- MainWindow
 | 
			
		||||
#include "mainwindow.h"
 | 
			
		||||
#include "ui_mainwindow.h"
 | 
			
		||||
#include "devsetup.h"
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user