diff --git a/decode1a.f b/decode1a.f index 1be6d199a..a6f4caae5 100644 --- a/decode1a.f +++ b/decode1a.f @@ -1,4 +1,4 @@ - subroutine decode1a(id,newdat,nfilt,freq,nflip,dphi,ipol, + subroutine decode1a(id,nqd,newdat,nfilt,freq,nflip,dphi,ipol, + sync2,a,dt,pol,nkv,nhist,qual,decoded) C Apply AFC corrections to a candidate JT65 signal, and then try @@ -71,38 +71,43 @@ C Find best DF, f1, f2, DT, and pol ! call afc65b(cx(i0),cy(i0),nz,fsample,nflip,ipol,a,dt, ! + ccfbest,dtbest) +! Adjust for cable length difference: + z=cmplx(cos(dphi),sin(dphi)) + do i=1,n5 + cy(i)=z*cy(i) + enddo + call fil6521(cx,n5,c5x,n6) call fil6521(cy,n5,c5y,n6) -! Adjust for cable length difference: - z=cmplx(cos(dphi),sin(dphi)) - do i=1,n6 - c5y(i)=z*c5y(i) - enddo - fsample=1378.125/4. - a(5)=dt00 - i0=nint((a(5)+0.5)*fsample) - 2 - if(i0.lt.1) i0=1 - nz=n6+1-i0 - ip0=ipol - nflip=1 - call afc65b(c5x(i0),c5y(i0),nz,fsample,nflip,ipol,a,dt, - + ccfbest,dtbest) + if(nqd.eq.1) then + call findpol(c5x,c5y,n6,dt00,nflip,ipol,a,ccfbest,dtbest) + else + a(5)=dt00 + i0=nint((a(5)+0.5)*fsample) - 2 + if(i0.lt.1) i0=1 + nz=n6+1-i0 - nflip=-1 - ipol=ip0 - call afc65b(c5x(i0),c5y(i0),nz,fsample,nflip,ipol,a,dt, - + ccfbest2,dtbest) - - if(ccfbest2.lt.ccfbest) then + ip0=ipol nflip=1 - ipol=ip0 call afc65b(c5x(i0),c5y(i0),nz,fsample,nflip,ipol,a,dt, + ccfbest,dtbest) - else - ccfbest=ccfbest + + nflip=-1 + ipol=ip0 + call afc65b(c5x(i0),c5y(i0),nz,fsample,nflip,ipol,a,dt, + + ccfbest2,dtbest) + + if(ccfbest2.lt.ccfbest) then + nflip=1 + ipol=ip0 + call afc65b(c5x(i0),c5y(i0),nz,fsample,nflip,ipol,a,dt, + + ccfbest,dtbest) + else + ccfbest=ccfbest + endif endif pol=a(4)/57.2957795 @@ -145,3 +150,5 @@ C Adding or subtracting a small number (e.g., 5) to j may make it decode. return end + + include 'findpol.f' diff --git a/decode65b.f b/decode65b.f index d0146ae8e..a37a7698b 100644 --- a/decode65b.f +++ b/decode65b.f @@ -44,7 +44,6 @@ C Suppress "birdie messages": ndepth=5 if(ndepth.ge.1) call deep65(s3,mode65,neme, + nsked,flip,mycall,hiscall,hisgrid,deepmsg,qual) - C Save symbol spectra for possible decoding of average. ! do j=1,63 ! k=mdat(j) diff --git a/map65.py b/map65.py index 53c179367..0b090f185 100644 --- a/map65.py +++ b/map65.py @@ -1,4 +1,4 @@ -#---------------------------------------------------------------------- MAP65 +#--------------------------------------------------------------------- MAP65 # $Date$ $Revision$ # from Tkinter import * @@ -1137,7 +1137,7 @@ def update(): bm2text.see(END) Audio.gcom2.ndecdone=0 - if loopall: opennext() + if loopall and Audio.gcom2.ndecoding==0: opennext() nopen=0 if g.cmap != cmap0: diff --git a/map65a.f90 b/map65a.f90 index 06920bb9d..4e5151739 100644 --- a/map65a.f90 +++ b/map65a.f90 @@ -55,21 +55,23 @@ subroutine map65a(newdat) ! nfilt=2 should be faster (but doesn't work quite right?) nfilt=1 !nfilt=2 is faster for selected freq dphi=310/57.2957795 - do kpol=0,3 +! do kpol=0,3 + kpol=0 freq=fselect + 0.001*mousedf if(even) ip0=ip000+kpol if(.not.even) ip0=ip001+kpol if(ip0.gt.4) ip0=ip0-4 dt00=2.314240 dt=dt00 - call decode1a(id(1,1,kbuf),newdat,nfilt,freq,nflip,dphi,ip0, & + nqd=1 + call decode1a(id(1,1,kbuf),nqd,newdat,nfilt,freq,nflip,dphi,ip0, & sync2,a,dt,pol,nkv,nhist,qual,decoded) nsync1=0 nsync2=nint(10.0*log10(sync2)) - 40 !### empirical ### ndf=nint(a(1)) + mousedf nw=0 - if(nkv.gt.0) go to 5 - enddo +! if(nkv.gt.0) go to 5 +! enddo 5 if(even) ip000=ip0 if(.not.even) ip001=ip0 @@ -195,7 +197,8 @@ subroutine map65a(newdat) if(freq-freq0.gt.ftol .or. sync1.gt.sync10) then nflip=nint(flipk) - call decode1a(id(1,1,kbuf),newdat,nfilt,freq,nflip,dphi, & + nqd=0 + call decode1a(id(1,1,kbuf),nqd,newdat,nfilt,freq,nflip,dphi, & ipol,sync2,a,dt,pol,nkv,nhist,qual,decoded) ! i9=index(decoded,'AA1YN') ! if(i9.gt.0) print*,i,i9,fselect,freq,decoded