From a0759bf0ff0513920c75ea8eb804e1ce8e32a8eb Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Wed, 10 Oct 2012 20:40:46 +0000 Subject: [PATCH] Compute ccfred, the "red curve". git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@2655 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- lib/jt9.f90 | 32 ++++++++++++++++++-------------- lib/spec9.f90 | 11 +++++++++++ lib/sync9.f90 | 50 +++++++++++++++++++++++++++++--------------------- mainwindow.cpp | 2 +- 4 files changed, 59 insertions(+), 36 deletions(-) diff --git a/lib/jt9.f90 b/lib/jt9.f90 index c75fb3202..2811dfa31 100644 --- a/lib/jt9.f90 +++ b/lib/jt9.f90 @@ -11,6 +11,7 @@ program jt9 parameter (NSMAX=22000) !Max length of saved spectra integer*4 ihdr(11) real*4 s(NSMAX) + real*4 ccfred(NSMAX) logical*1 lstrong(0:1023) integer*1 i1SoftSymbols(207) character*22 msg @@ -90,25 +91,28 @@ program jt9 10 continue -! Fix up the data in c0() - twopi=8.0*atan(1.0) - phi=0. - dphi=twopi*500.0/1500.0 - do i=1,npts8 - phi=phi+dphi - if(phi.gt.twopi) phi=phi-twopi - if(phi.lt.-twopi) phi=phi+twopi - c0(i)=cmplx(aimag(c0(i)),real(c0(i)))*cmplx(cos(phi),sin(phi)) - enddo - ! Now do the decoding nutc=nutc0 nstandalone=1 - call sync9(ss,tstep,f0a,df3,fpk) !Find sig, get rough freq + + ntol=500 + nfqso=1500 + +! Get sync, approx freq + call sync9(ss,tstep,f0a,df3,ntol,nfqso,sync,fpk,ccfred) + fpk0=fpk + iz=1000.0/df3 + do i=1,iz + freq=1000.0 + (i-1)*df3 + write(72,3001) freq,ccfred(i) +3001 format(2f10.3) + enddo + flush(72) + call spec9(c0,npts8,nsps,f0a,fpk,xdt,i1SoftSymbols) call decode9(i1SoftSymbols,msg) - write(*,1010) nutc,xdt,1000.0+fpk,msg -1010 format(i4.4,f6.1,f7.1,2x,a22) + write(*,1010) nutc,xdt,1000.0+fpk,msg,sync,fpk0 +1010 format(i4.4,f6.1,f7.1,2x,a22,2f9.1) enddo go to 999 diff --git a/lib/spec9.f90 b/lib/spec9.f90 index d9487b333..01be6f28e 100644 --- a/lib/spec9.f90 +++ b/lib/spec9.f90 @@ -19,6 +19,17 @@ subroutine spec9(c0,npts8,nsps,f0a,fpk,xdt,i1SoftSymbols) data ig/0,1,3,2,7,6,4,5/ !Gray code removal save +! Fix up the data in c0() + twopi=8.0*atan(1.0) + phi=0. + dphi=twopi*500.0/1500.0 + do i=0,npts8-1 + phi=phi+dphi + if(phi.gt.twopi) phi=phi-twopi + if(phi.lt.-twopi) phi=phi+twopi + c0(i)=cmplx(aimag(c0(i)),real(c0(i)))*cmplx(cos(phi),sin(phi)) + enddo + nsps8=nsps/8 foffset=fpk-f0a istart=1520 diff --git a/lib/sync9.f90 b/lib/sync9.f90 index 946583f2e..7315b97fa 100644 --- a/lib/sync9.f90 +++ b/lib/sync9.f90 @@ -1,7 +1,8 @@ -subroutine sync9(ss,tstep,f0a,df3,fpk) +subroutine sync9(ss,tstep,f0a,df3,ntol,nfqso,sync,fpk,ccfred) parameter (NSMAX=22000) !Max length of saved spectra real ss(184,NSMAX) + real ccfred(NSMAX) integer ii0(16) integer ii(16) !Locations of sync half-symbols @@ -14,38 +15,45 @@ subroutine sync9(ss,tstep,f0a,df3,fpk) 0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0, & 1,0,0,0,1/ - nz=1000.0/df3 + ia=1 + ib=min(1000,nint(1000.0/df3)) - smax=0. + if(ntol.lt.1000) then + ia=nint((nfqso-1000-ntol)/df3) + ib=nint((nfqso-1000+ntol)/df3) + if(ia.lt.1) ia=1 + if(ib.gt.NSMAX) ib=NSMAX + endif + print*,ia,ib,df3*ia+1000,df3*ib+1000 + + sbest=0. lagmax=2.5/tstep + 0.9999 - do n=1,nz + ccfred=0. + + do i=ia,ib + smax=0. do lag=-lagmax,lagmax sum=0. - do i=1,16 - k=ii(i) + lag - if(k.ge.1) sum=sum + ss(k,n) + do j=1,16 + k=ii(j) + lag + if(k.ge.1) sum=sum + ss(k,i) enddo if(sum.gt.smax) then smax=sum - npk=n + ipk=i lagpk=lag endif enddo + if(smax.gt.sbest) then + sbest=smax + ipkbest=ipk + lagpkbest=lagpk + endif + ccfred(i)=smax enddo - fpk=f0a + (npk-1)*df3 - -! This loop for tests only: -! do lag=-lagmax,lagmax -! sum=0. -! do i=1,16 -! k=ii(i) + lag -! if(k.ge.1) sum=sum + ss(k,npk) -! enddo -! write(71,3001) lag,sum -!3001 format(i8,f12.3) -! enddo -! flush(71) + fpk=f0a + (ipkbest-1)*df3 + sync=sbest return end subroutine sync9 diff --git a/mainwindow.cpp b/mainwindow.cpp index db3bd7c10..9b139331c 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -1,4 +1,4 @@ -//----------------------------------------------------------------- MainWindow +//---------------------------------------------------------------- MainWindow #include "mainwindow.h" #include "ui_mainwindow.h" #include "devsetup.h"