mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-22 04:11:16 -05:00
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:
parent
e02dc28ce2
commit
a35e411409
@ -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
|
||||||
|
|
||||||
|
@ -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)
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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/ &
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user