mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-25 10:00:23 -04: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" |   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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user