From 379fe84edb951d6193622e795c85988301c689db Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 19 Mar 2013 17:26:45 +0000 Subject: [PATCH] Big improvement in decoding speed. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3059 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- lib/decoder.f90 | 30 +++++++++++++++++++++++++----- mainwindow.cpp | 2 +- wsjtx.iss | 2 +- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/lib/decoder.f90 b/lib/decoder.f90 index 1da6644f8..ef5e79c01 100644 --- a/lib/decoder.f90 +++ b/lib/decoder.f90 @@ -11,6 +11,7 @@ subroutine decoder(ss,c0) character*80 fmt character*20 datetime real*4 ccfred(NSMAX) + logical ccfok(NSMAX) integer*1 i1SoftSymbols(207) integer*2 id2 integer ii(1) @@ -28,8 +29,15 @@ subroutine decoder(ss,c0) nsynced=0 ndecoded=0 limit=200 - if(ndepth.ge.2) limit=2000 - if(ndepth.ge.3) limit=20000 + ccflim=20.0 + if(ndepth.ge.2) then + limit=2000 + ccflim=10.0 + endif + if(ndepth.ge.3) then + limit=20000 + ccflim=8.0 + endif nsps=0 if(ntrMinutes.eq.1) then @@ -62,18 +70,30 @@ subroutine decoder(ss,c0) call sync9(ss,nzhsym,tstep,df3,ntol,nfqso,ccfred,ia,ib,ipk) !Compute ccfred call timer('sync9 ',1) + ccfok=.false. + do i=ia+9,ib-25 + t1=ccfred(i)/max(ccfred(i-8),ccfred(i-7),ccfred(i-6)) + t2=ccfred(i)/max(ccfred(i+23),ccfred(i+24),ccfred(i+25)) + if(t1.ge.ccflim .and. t2.ge.ccflim) ccfok(i)=.true. + enddo + nRxLog=0 fgood=0. nsps8=nsps/8 df8=1500.0/nsps8 sbest=-1.0 dblim=db(864.0/nsps8) - 26.2 + i1=max(nint((nfqso-1000)/df3 - 10),ia) + i2=min(nint((nfqso-1000)/df3 + 10),ib) + ii=maxloc(ccfred(i1:i2)) + i=ii(1) + i1 - 1 + go to 12 10 ii=maxloc(ccfred(ia:ib)) i=ii(1) + ia - 1 - f=(i-1)*df3 - if((i.eq.ipk .or. ccfred(i).ge.3.0) .and. abs(f-fgood).gt.10.0*df8) then - +12 f=(i-1)*df3 + if((i.eq.ipk .or. ccfred(i).ge.3.0) .and. abs(f-fgood).gt.10.0*df8 .and. & + ccfok(i)) then call timer('decode9a',0) fpk=1000.0 + df3*(i-1) c1(1:npts8)=conjg(c0(1:npts8)) diff --git a/mainwindow.cpp b/mainwindow.cpp index 390b3368c..fdad50ca7 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -1,4 +1,4 @@ -//--------------------------------------------------------------- MainWindow +//-------------------------------------------------------------- MainWindow #include "mainwindow.h" #include "ui_mainwindow.h" #include "devsetup.h" diff --git a/wsjtx.iss b/wsjtx.iss index fefcfa3c5..9e973a5fd 100644 --- a/wsjtx.iss +++ b/wsjtx.iss @@ -1,6 +1,6 @@ [Setup] AppName=wsjtx -AppVerName=wsjtx Version 0.6 r3047 +AppVerName=wsjtx Version 0.6 r3056 AppCopyright=Copyright (C) 2001-2013 by Joe Taylor, K1JT DefaultDirName=c:\wsjtx DefaultGroupName=wsjtx