diff --git a/lib/Makefile.MinGW b/lib/Makefile.MinGW index 98bd680cc..f59159679 100644 --- a/lib/Makefile.MinGW +++ b/lib/Makefile.MinGW @@ -33,7 +33,7 @@ OBJS1 = pctile.o graycode.o sort.o ssort.o \ fil3.o redsync.o decoder.o grid2n.o n2grid.o timer.o \ softsym.o getlags.o afc9.o fchisq.o twkfreq.o downsam9.o \ peakdt9.o symspec2.o stdmsg.o morse.o azdist.o geodist.o \ - rig_control.o fillcom.o + rig_control.o fillcom.o chkss2.o zplot9.o libjt9.a: $(OBJS1) ar cr libjt9.a $(OBJS1) diff --git a/lib/chkss2.f90 b/lib/chkss2.f90 new file mode 100644 index 000000000..046089fc3 --- /dev/null +++ b/lib/chkss2.f90 @@ -0,0 +1,23 @@ +subroutine chkss2(ss2,schk) + + real ss2(0:8,85) + real s(0:8,85) + real s1(0:5) + include 'jt9sync.f90' + + ave=sum(ss2)/(9*85) + s=ss2/ave-1.0 + +! call zplot9(s) + s1=0. + do lag=0,5 + do i=1,16 + j=ii(i)+lag + if(j.le.85) s1(lag)=s1(lag) + s(0,j) + enddo + enddo + schk=s1(0)/16.0 + + return +end subroutine chkss2 + diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 73fab669f..c44a563e1 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -126,41 +126,45 @@ subroutine decoder(ss,c0,nstandalone) call timer('softsym ',0) fpk=1000.0 + df3*(i-1) call softsym(c0,npts8,nsps8,newdat,fpk,syncpk,snrdb,xdt,freq, & - drift,i1SoftSymbols) - + drift,schk,i1SoftSymbols) call timer('softsym ',1) - call timer('decode9 ',0) - call decode9(i1SoftSymbols,limit,nlim,msg) - call timer('decode9 ',1) + if(schk.ge.3.0) then - sync=(syncpk+1)/4.0 - if(sync.lt.0.0 .or. snrdb.lt.dblim-2.0) sync=0.0 - nsync=sync - if(nsync.gt.10) nsync=10 - nsnr=nint(snrdb) - ndrift=nint(drift/df3) + call timer('decode9 ',0) + call decode9(i1SoftSymbols,limit,nlim,msg) + call timer('decode9 ',1) - write(38,3002) nutc,nsnr,i,freq,ccfred(i),nlim,msg -3002 format(i4.4,i5,i6,2f8.1,i9,2x,a22) + sync=(syncpk+1)/4.0 + if(sync.lt.0.0 .or. snrdb.lt.dblim-2.0) sync=0.0 + nsync=sync + if(nsync.gt.10) nsync=10 + nsnr=nint(snrdb) + ndrift=nint(drift/df3) + + write(38,3002) nutc,nsnr,i,freq,ccfred(i),schk,nlim,msg +3002 format(i4.4,i5,i6,f8.1,2f6.1,i9,2x,a22) - if(msg.ne.' ') then - if(nqd.eq.0) ndecodes0=ndecodes0+1 - if(nqd.eq.1) ndecodes1=ndecodes1+1 - - write(*,fmt) nutc,nsync,nsnr,xdt,freq,ndrift,msg - write(13,fmt) nutc,nsync,nsnr,xdt,freq,ndrift,msg + if(msg.ne.' ') then + if(nqd.eq.0) ndecodes0=ndecodes0+1 + if(nqd.eq.1) ndecodes1=ndecodes1+1 + + write(*,fmt) nutc,nsync,nsnr,xdt,freq,ndrift,msg + write(13,fmt) nutc,nsync,nsnr,xdt,freq,ndrift,msg ! write(14,1014) nutc,nsync,nsnr,xdt,freq,ndrift,ccfred(i),nlim,msg !1014 format(i4.4,i4,i5,f6.1,f8.0,i4,f9.1,i9,3x,a22) - iaa=max(1,i-3) - ibb=min(NSMAX,i+11) - fgood=f - nsynced=1 - ndecoded=1 - ccfok(iaa:ibb)=.false. - done(iaa:ibb)=.true. - call flush(6) + iaa=max(1,i-1) + ibb=min(NSMAX,i+22) + fgood=f + nsynced=1 + ndecoded=1 + ccfok(iaa:ibb)=.false. + done(iaa:ibb)=.true. + call flush(6) + endif + else + write(38,3002) nutc,-99,i,freq,ccfred(i),schk,0 endif endif enddo diff --git a/lib/softsym.f90 b/lib/softsym.f90 index aefba6fa7..4fea0b0cb 100644 --- a/lib/softsym.f90 +++ b/lib/softsym.f90 @@ -1,5 +1,5 @@ subroutine softsym(c0,npts8,nsps8,newdat,fpk,syncpk,snrdb,xdt,freq,drift, & - i1SoftSymbols) + schk,i1SoftSymbols) ! Compute the soft symbols @@ -23,17 +23,18 @@ subroutine softsym(c0,npts8,nsps8,newdat,fpk,syncpk,snrdb,xdt,freq,drift, & fsample=1500.0/ndown a=0. call afc9(c3,nz3,fsample,a,syncpk) !Find deltaF, fDot, fDDot + freq=fpk - a(1) + drift=-2.0*a(2) call twkfreq(c3,c5,nz3,fsample,a) !Correct for deltaF, fDot, fDDot ! Compute soft symbols (in scrambled order) - call symspec2(c5,nz3,nsps8,nspsd,fsample,snrdb,i1SoftSymbolsScrambled) + call symspec2(c5,nz3,nsps8,nspsd,fsample,freq,drift,snrdb,schk, & + i1SoftSymbolsScrambled) + if(snrdb.lt.-99.0) return ! Remove interleaving call interleave9(i1SoftSymbolsScrambled,-1,i1SoftSymbols) - - freq=fpk - a(1) - drift=-2.0*a(2) return end subroutine softsym diff --git a/lib/symspec2.f90 b/lib/symspec2.f90 index f4324dcb8..69fac6838 100644 --- a/lib/symspec2.f90 +++ b/lib/symspec2.f90 @@ -1,4 +1,5 @@ -subroutine symspec2(c5,nz3,nsps8,nspsd,fsample,snrdb,i1SoftSymbolsScrambled) +subroutine symspec2(c5,nz3,nsps8,nspsd,fsample,freq,drift,snrdb,schk, & + i1SoftSymbolsScrambled) ! Compute soft symbols from the final downsampled data @@ -33,6 +34,11 @@ subroutine symspec2(c5,nz3,nsps8,nspsd,fsample,snrdb,i1SoftSymbolsScrambled) enddo enddo +!### +! write(30) freq,drift,ss2 +! call flush(30) + call chkss2(ss2,schk) + if(schk.lt.3.0) go to 900 !### ss=0. sig=0. @@ -81,5 +87,5 @@ subroutine symspec2(c5,nz3,nsps8,nspsd,fsample,snrdb,i1SoftSymbolsScrambled) enddo enddo - return +900 return end subroutine symspec2 diff --git a/lib/zplot9.f90 b/lib/zplot9.f90 new file mode 100644 index 000000000..9ffe408c2 --- /dev/null +++ b/lib/zplot9.f90 @@ -0,0 +1,29 @@ +subroutine zplot9(s) + + real s(0:8,85) + character*1 line(85),mark(0:6) + data mark/' ',' ','.','-','+','X','$'/ + include 'jt9sync.f90' + + do j=8,0,-1 + do i=1,85 + n=(s(j,i)) + if(n.lt.0) n=0 + if(n.gt.6) n=6 + line(i)=mark(n) + enddo + write(32,1010) j,line +1010 format(i1,1x,85a1) + enddo + do i=1,85 + line(i)=' ' + if(isync(i).eq.1) line(i)='@' + enddo + write(32,1015) +1015 format(87('-')) + write(32,1020) line +1020 format(2x,85a1) + write(32,1015) + + return +end subroutine zplot9 diff --git a/mainwindow.cpp b/mainwindow.cpp index d1475d88f..d27451bfb 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -1,4 +1,4 @@ -//-------------------------------------------------------------- MainWindow +//------------------------------------------------------------- MainWindow #include "mainwindow.h" #include "ui_mainwindow.h" #include "devsetup.h"