diff --git a/deep65.f b/deep65.f index e910c751e..0ef46fcc8 100644 --- a/deep65.f +++ b/deep65.f @@ -12,7 +12,6 @@ character*4 rpt(MAXRPT) logical first integer ncode(63,2*MAXCALLS) - common/tmp8/ p(64,63) data neme0/-99/ data rpt/'-01','-02','-03','-04','-05', @@ -101,26 +100,18 @@ p1=-1.e30 ip1=0 - p2=-1.e30 - ip2=0 do k=1,ntot C If sync=OOO, no CQ messages if(flip.lt.0.0 .and. testmsg(k)(1:3).eq.'CQ ') go to 30 sum=0. - sum2=0. do j=1,63 i=ncode(j,k)+1 sum=sum + s3(i,j) - sum2=sum2 + p(i,j) enddo if(sum.gt.p1) then p1=sum ip1=k endif - if(sum2.gt.p2) then - p2=sum2 - ip2=k - endif 30 enddo p1=p1/sum0 @@ -136,23 +127,6 @@ C If sync=OOO, no CQ messages decoded=testmsg(ip1) endif decoded(22:22)=c - deepmsg=decoded - - q2=0.27*p2 + 81.3 -! if(mode65.eq.1) qual=100.0*(p1-0.33) -! if(mode65.eq.4) qual=100.0*(p1-0.50) - if(q2.lt.0.) q2=0. - if(q2.gt.10.) q2=10. - decoded=' ' - c=' ' - if(q2.gt.0.0) then - if(q2.lt.4.0) c='?' - decoded=testmsg(ip2) - endif - decoded(22:22)=c - -! qual=q2 - decoded=deepmsg return end diff --git a/demod64a.f b/demod64a.f index 3a64b2374..700ef7b85 100644 --- a/demod64a.f +++ b/demod64a.f @@ -1,5 +1,5 @@ subroutine demod64a(signal,nadd,mrsym,mrprob, - + mr2sym,mr2prob) + + mr2sym,mr2prob,ntest,nlow) C Demodulate the 64-bin spectra for each of 63 symbols in a frame. @@ -14,8 +14,6 @@ C mr2prob probability that mr2sym was the transmitted value real*4 signal(64,63) real*8 fs(64) integer mrsym(63),mrprob(63),mr2sym(63),mr2prob(63) - real*4 p - common/tmp8/ p(64,63) afac=1.1 * float(nadd)**0.64 scale=255.999 @@ -49,7 +47,6 @@ C Compute probabilities for most reliable symbol values s2=signal(i,j) i2=i !Second most reliable endif - p(i,j)=log(fs(i)/fsum) enddo p1=fs(i1)/fsum !Normalized probabilities p2=fs(i2)/fsum @@ -59,5 +56,13 @@ C Compute probabilities for most reliable symbol values mr2prob(j)=scale*p2 enddo + sum=0. + nlow=0 + do j=1,63 + sum=sum+mrprob(j) + if(mrprob(j).le.5) nlow=nlow+1 + enddo + ntest=sum/63 + return end diff --git a/extract.f b/extract.f index 1dcc78129..ca9db6917 100644 --- a/extract.f +++ b/extract.f @@ -9,7 +9,13 @@ data first/.true./,nsec1/0/ save - call demod64a(s3,nadd,mrsym,mrprob,mr2sym,mr2prob) + call demod64a(s3,nadd,mrsym,mrprob,mr2sym,mr2prob,ntest,nlow) + + if(ntest.lt.50 .or. nlow.gt.20) then + ncount=-999 !Flag bad data + go to 900 + endif + call graycode(mrsym,63,-1) call interleave63(mrsym,-1) call interleave63(mrprob,-1) diff --git a/wsjt.py b/wsjt.py index 7d2eb317d..9f44e186c 100644 --- a/wsjt.py +++ b/wsjt.py @@ -1,4 +1,4 @@ -#----------------------------------------------------------------- WSJT +#---------------------------------------------------------------- WSJT from Tkinter import * from tkFileDialog import * import Pmw diff --git a/wsjt65.f b/wsjt65.f index cbd34f559..280cb9218 100644 --- a/wsjt65.f +++ b/wsjt65.f @@ -126,6 +126,10 @@ C result from the Reed-Solomon decoder. call decode65(dat,npts,dtxx,dfxx,flip,ndepth,neme,nsked, + mycall,hiscall,hisgrid,mode65,lmid,ftrack,decoded, + ncount,deepmsg,qual) + if(ncount.eq.-999) then + qbest=0 !Bad data + go to 200 + endif if(qual.gt.qbest) then qbest=qual dtbest=dtxx