Further progress on average and smoothed decodes. Not finished, though!

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6524 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2016-03-11 16:26:06 +00:00
parent e02dc28ce2
commit a35e411409
6 changed files with 18 additions and 13 deletions

View File

@ -111,18 +111,19 @@ subroutine decode65a(dd,npts,newdat,nqd,f0,nflip,mode65,ntrials, &
call decode65b(s2,nflip,mode65,ntrials,naggressive,ndepth, & call decode65b(s2,nflip,mode65,ntrials,naggressive,ndepth, &
mycall,hiscall,hisgrid,nexp_decode,nqd,nft,qual,nhist,decoded) mycall,hiscall,hisgrid,nexp_decode,nqd,nft,qual,nhist,decoded)
if(nft.eq.1) then if(nft.eq.1) then
nsmo=ismo nsmo=ismo
param(9)=nsmo
nsum=1
exit exit
else if(nft.eq.2) then else if(nft.eq.2) then
!### Should also deal with nft=2 solutions
if(qual.gt.qualbest) then if(qual.gt.qualbest) then
decoded_best=decoded decoded_best=decoded
qualbest=qual qualbest=qual
nnbest=nn nnbest=nn
nsmobest=ismo nsmobest=ismo
endif endif
! print*,'A',nn,ndepth,ntrials,ismo,qual,decoded
endif endif
enddo enddo

View File

@ -1,18 +1,14 @@
subroutine decode65b(s2,nflip,mode65,ntrials,naggressive,ndepth, & subroutine decode65b(s2,nflip,mode65,ntrials,naggressive,ndepth, &
mycall,hiscall,hisgrid,nexp_decode,nqd,nft,qual,nhist,decoded) mycall,hiscall,hisgrid,nexp_decode,nqd,nft,qual,nhist,decoded)
use jt65_mod
real s2(66,126) real s2(66,126)
real s3(64,63) real s3(64,63)
logical first,ltext logical first,ltext
character decoded*22 character decoded*22
character mycall*12,hiscall*12,hisgrid*6 character mycall*12,hiscall*12,hisgrid*6
common/prcom/pr(126),mdat(126),mref(126,2),mdat2(126),mref2(126,2)
data first/.true./
save save
if(first) call setup65
first=.false.
do j=1,63 do j=1,63
k=mdat(j) !Points to data symbol k=mdat(j) !Points to data symbol
if(nflip.lt.0) k=mdat2(j) if(nflip.lt.0) k=mdat2(j)

View File

@ -157,6 +157,7 @@ contains
decoded0="" decoded0=""
freq0=0. freq0=0.
prtavg=.false. prtavg=.false.
nsum=0
do icand=1,ncand do icand=1,ncand
freq=ca(icand)%freq freq=ca(icand)%freq
@ -169,6 +170,8 @@ contains
naggressive,ndepth,mycall,hiscall,hisgrid,nexp_decode, & naggressive,ndepth,mycall,hiscall,hisgrid,nexp_decode, &
sync2,a,dtx,nft,qual,nhist,nsmo,decoded) sync2,a,dtx,nft,qual,nhist,nsmo,decoded)
call timer('decod65a',1) call timer('decod65a',1)
if(nft.eq.1) nsum=1
! write(*,'("a",3i3,a6)') nft,nsum,nsmo,decoded(1:6)
! ncandidates=param(0) ! ncandidates=param(0)
nhard_min=param(1) nhard_min=param(1)
@ -210,6 +213,7 @@ contains
endif endif
endif endif
if(nftt.eq.1) then if(nftt.eq.1) then
nft=1 nft=1
decoded=avemsg decoded=avemsg
@ -217,7 +221,7 @@ contains
endif endif
n=naggressive n=naggressive
rtt=0.001*nrtt1000 rtt=0.001*nrtt1000
if(nft.lt.2) then if(nft.lt.2 .and. minsync.ge.0) then
if(nhard_min.gt.50) cycle if(nhard_min.gt.50) cycle
if(nhard_min.gt.h0(n)) cycle if(nhard_min.gt.h0(n)) cycle
if(ntotal_min.gt.d0(n)) cycle if(ntotal_min.gt.d0(n)) cycle
@ -284,8 +288,8 @@ contains
integer nfsave(MAXAVE) integer nfsave(MAXAVE)
integer listutc(10) integer listutc(10)
integer nflipsave(MAXAVE) integer nflipsave(MAXAVE)
real s1b(-255:256,126) ! real s1b(-255:256,126)
real s1save(-255:256,126,MAXAVE) ! real s1save(-255:256,126,MAXAVE)
real s3save(64,63,MAXAVE) real s3save(64,63,MAXAVE)
real s3b(64,63) real s3b(64,63)
real dtsave(MAXAVE) real dtsave(MAXAVE)
@ -314,7 +318,7 @@ contains
dtsave(nsave)=dtxx dtsave(nsave)=dtxx
nfsave(nsave)=nfreq nfsave(nsave)=nfreq
nflipsave(nsave)=nflip nflipsave(nsave)=nflip
s1save(-255:256,1:126,nsave)=s1 ! s1save(-255:256,1:126,nsave)=s1
s3save(1:64,1:63,nsave)=s3a s3save(1:64,1:63,nsave)=s3a
10 syncsum=0. 10 syncsum=0.
@ -355,6 +359,7 @@ contains
write(14,1000) cused(i),iutc(i),syncsave(i),dtsave(i),nfsave(i),csync write(14,1000) cused(i),iutc(i),syncsave(i),dtsave(i),nfsave(i),csync
1000 format(a1,i5.4,f6.1,f6.2,i6,1x,a1) 1000 format(a1,i5.4,f6.1,f6.2,i6,1x,a1)
enddo enddo
if(nsum.lt.2) go to 900
rewind 62 rewind 62
sqt=0. sqt=0.
@ -389,6 +394,7 @@ contains
call extract(s3b,nadd,mode65,ntrials,naggressive,ndepth,mycall, & call extract(s3b,nadd,mode65,ntrials,naggressive,ndepth,mycall, &
hiscall,hisgrid,nexp_decode,ncount,nhist,avemsg,ltext,nftt,qual) hiscall,hisgrid,nexp_decode,ncount,nhist,avemsg,ltext,nftt,qual)
900 continue
return return
end subroutine avg65 end subroutine avg65

View File

@ -3,8 +3,10 @@ module jt65_mod
integer param(0:9) integer param(0:9)
integer mrs(63) integer mrs(63)
integer mrs2(63) integer mrs2(63)
integer mdat(126),mref(126,2),mdat2(126),mref2(126,2) !From prcom
real s1(-255:256,126) real s1(-255:256,126)
real s3a(64,63) real s3a(64,63)
real pr(126)
end module jt65_mod end module jt65_mod

View File

@ -3,8 +3,8 @@ subroutine setup65
! Defines arrays related to the JT65 pseudo-random synchronizing pattern. ! Defines arrays related to the JT65 pseudo-random synchronizing pattern.
! Executed at program start. ! Executed at program start.
use jt65_mod
integer nprc(126) integer nprc(126)
common/prcom/pr(126),mdat(126),mref(126,2),mdat2(126),mref2(126,2)
! JT65 ! JT65
data nprc/ & data nprc/ &

View File

@ -5,12 +5,12 @@ subroutine xcor(ss,ipk,nsteps,nsym,lag1,lag2,ccf,ccf0,lagpk,flip,fdot,nrobust)
! CCF peak may be either positive or negative, with negative implying ! CCF peak may be either positive or negative, with negative implying
! the "OOO" message. ! the "OOO" message.
use jt65_mod
parameter (NHMAX=3413) !Max length of power spectra parameter (NHMAX=3413) !Max length of power spectra
parameter (NSMAX=322) !Max number of half-symbol steps parameter (NSMAX=322) !Max number of half-symbol steps
real ss(NSMAX,NHMAX) !2d spectrum, stepped by half-symbols real ss(NSMAX,NHMAX) !2d spectrum, stepped by half-symbols
real a(NSMAX) real a(NSMAX)
real ccf(-11:540) real ccf(-11:540)
include 'prcom.f90'
data lagmin/0/ !Silence g77 warning data lagmin/0/ !Silence g77 warning
save save