mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-07-30 12:42:27 -04:00
Small tweak to deep search algorithm.
Don't compute waterfall spectrum while decoding. Force upper case for decoded test. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/trunk@132 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
6192b1c945
commit
7152ab8acc
26
deep65.f
26
deep65.f
@ -12,6 +12,7 @@
|
|||||||
character*4 rpt(MAXRPT)
|
character*4 rpt(MAXRPT)
|
||||||
logical first
|
logical first
|
||||||
integer ncode(63,2*MAXCALLS)
|
integer ncode(63,2*MAXCALLS)
|
||||||
|
common/tmp9/ mrs(63),mrs2(63)
|
||||||
|
|
||||||
data neme0/-99/
|
data neme0/-99/
|
||||||
data rpt/'-01','-02','-03','-04','-05',
|
data rpt/'-01','-02','-03','-04','-05',
|
||||||
@ -89,13 +90,9 @@
|
|||||||
20 ntot=k
|
20 ntot=k
|
||||||
neme0=neme
|
neme0=neme
|
||||||
|
|
||||||
sum0=0.
|
ref0=0.
|
||||||
do j=1,63
|
do j=1,63
|
||||||
smax=-1.e30
|
ref0=ref0 + s3(mrs(j),j)
|
||||||
do i=1,64
|
|
||||||
smax=max(smax,s3(i,j))
|
|
||||||
enddo
|
|
||||||
sum0=sum0+smax
|
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
p1=-1.e30
|
p1=-1.e30
|
||||||
@ -104,20 +101,29 @@
|
|||||||
C If sync=OOO, no CQ messages
|
C If sync=OOO, no CQ messages
|
||||||
if(flip.lt.0.0 .and. testmsg(k)(1:3).eq.'CQ ') go to 30
|
if(flip.lt.0.0 .and. testmsg(k)(1:3).eq.'CQ ') go to 30
|
||||||
sum=0.
|
sum=0.
|
||||||
|
ref=ref0
|
||||||
|
nhard=0
|
||||||
do j=1,63
|
do j=1,63
|
||||||
i=ncode(j,k)+1
|
i=ncode(j,k)+1
|
||||||
sum=sum + s3(i,j)
|
sum=sum + s3(i,j)
|
||||||
|
if(i.eq.mrs(j)) then
|
||||||
|
ref=ref - s3(i,j) + s3(mrs2(j),j)
|
||||||
|
nhard=nhard+1
|
||||||
|
endif
|
||||||
enddo
|
enddo
|
||||||
|
sum=sum/ref
|
||||||
if(sum.gt.p1) then
|
if(sum.gt.p1) then
|
||||||
p1=sum
|
p1=sum
|
||||||
ip1=k
|
ip1=k
|
||||||
|
ref1=ref
|
||||||
|
nhard1=nhard
|
||||||
endif
|
endif
|
||||||
30 enddo
|
30 enddo
|
||||||
|
|
||||||
p1=p1/sum0
|
qual=100.0*(p1-0.405)
|
||||||
qual=100.0*(p1-0.40)
|
print*,nhard1,ref1/ref0,qual,100.0*(p1*(ref1/ref0)-0.40)
|
||||||
if(mode65.eq.1) qual=100.0*(p1-0.33)
|
if(mode65.eq.1) qual=100.0*(p1-0.335)
|
||||||
if(mode65.eq.4) qual=100.0*(p1-0.50)
|
if(mode65.eq.4) qual=100.0*(p1-0.505)
|
||||||
if(qual.lt.0.) qual=0.
|
if(qual.lt.0.) qual=0.
|
||||||
if(qual.gt.10.) qual=10.
|
if(qual.gt.10.) qual=10.
|
||||||
decoded=' '
|
decoded=' '
|
||||||
|
@ -14,6 +14,7 @@ C mr2prob probability that mr2sym was the transmitted value
|
|||||||
real*4 signal(64,63)
|
real*4 signal(64,63)
|
||||||
real*8 fs(64)
|
real*8 fs(64)
|
||||||
integer mrsym(63),mrprob(63),mr2sym(63),mr2prob(63)
|
integer mrsym(63),mrprob(63),mr2sym(63),mr2prob(63)
|
||||||
|
common/tmp9/ mrs(63),mrs2(63)
|
||||||
|
|
||||||
afac=1.1 * float(nadd)**0.64
|
afac=1.1 * float(nadd)**0.64
|
||||||
scale=255.999
|
scale=255.999
|
||||||
@ -54,6 +55,8 @@ C Compute probabilities for most reliable symbol values
|
|||||||
mr2sym(j)=i2-1
|
mr2sym(j)=i2-1
|
||||||
mrprob(j)=scale*p1
|
mrprob(j)=scale*p1
|
||||||
mr2prob(j)=scale*p2
|
mr2prob(j)=scale*p2
|
||||||
|
mrs(j)=i1
|
||||||
|
mrs2(j)=i2
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
sum=0.
|
sum=0.
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
!------------------------------------------------ ftn_init
|
!------------------------------------------------ ftn_init
|
||||||
subroutine ftn_init
|
subroutine ftn_init
|
||||||
|
|
||||||
character*1 cjunk,fname*80
|
character*1 cjunk
|
||||||
include 'gcom1.f90'
|
include 'gcom1.f90'
|
||||||
include 'gcom2.f90'
|
include 'gcom2.f90'
|
||||||
include 'gcom3.f90'
|
include 'gcom3.f90'
|
||||||
|
@ -217,7 +217,10 @@ def update():
|
|||||||
contrast=sc2.get()
|
contrast=sc2.get()
|
||||||
logm=logmap.get()
|
logm=logmap.get()
|
||||||
g0=sc3.get()
|
g0=sc3.get()
|
||||||
if Audio.gcom2.monitoring or Audio.gcom2.ndiskdat:
|
|
||||||
|
# Don't calculate spectra for waterfall while decoding
|
||||||
|
if Audio.gcom2.ndecoding==0 and \
|
||||||
|
(Audio.gcom2.monitoring or Audio.gcom2.ndiskdat):
|
||||||
Audio.spec(brightness,contrast,logm,g0,nspeed,a) #Call Fortran routine spec
|
Audio.spec(brightness,contrast,logm,g0,nspeed,a) #Call Fortran routine spec
|
||||||
newdat=Audio.gcom1.newdat #True if new data available
|
newdat=Audio.gcom1.newdat #True if new data available
|
||||||
else:
|
else:
|
||||||
@ -253,7 +256,6 @@ def update():
|
|||||||
if minsep.get():
|
if minsep.get():
|
||||||
draw.line((0,0,749,0),fill=128) #Draw the minute separator
|
draw.line((0,0,749,0),fill=128) #Draw the minute separator
|
||||||
|
|
||||||
# Don't update waterfall while decoding
|
|
||||||
pim=ImageTk.PhotoImage(im) #Convert Image to PhotoImage
|
pim=ImageTk.PhotoImage(im) #Convert Image to PhotoImage
|
||||||
graph1.delete(ALL)
|
graph1.delete(ALL)
|
||||||
#For some reason, top two lines are invisible, so we move down 2
|
#For some reason, top two lines are invisible, so we move down 2
|
||||||
|
8
wsjt65.f
8
wsjt65.f
@ -15,7 +15,7 @@ C already been done.
|
|||||||
character decoded*22,cfile6*6,special*5,cooo*3
|
character decoded*22,cfile6*6,special*5,cooo*3
|
||||||
character*22 avemsg1,avemsg2,deepmsg,deepbest
|
character*22 avemsg1,avemsg2,deepmsg,deepbest
|
||||||
character*67 line,ave1,ave2
|
character*67 line,ave1,ave2
|
||||||
character*1 csync
|
character*1 csync,c1
|
||||||
character*12 mycall
|
character*12 mycall
|
||||||
character*12 hiscall
|
character*12 hiscall
|
||||||
character*6 hisgrid
|
character*6 hisgrid
|
||||||
@ -160,6 +160,10 @@ C result from the Reed-Solomon decoder.
|
|||||||
if(flip.lt.0.0 .and. (kvqual.eq.1 .or. nqual.ge.nq2)) cooo='OOO'
|
if(flip.lt.0.0 .and. (kvqual.eq.1 .or. nqual.ge.nq2)) cooo='OOO'
|
||||||
if(kvqual.eq.0.and.nqual.ge.nq1.and.nqual.lt.nq2) cooo(2:3)=' ?'
|
if(kvqual.eq.0.and.nqual.ge.nq1.and.nqual.lt.nq2) cooo(2:3)=' ?'
|
||||||
if(decoded.eq.' ') cooo=' '
|
if(decoded.eq.' ') cooo=' '
|
||||||
|
do i=1,22
|
||||||
|
c1=decoded(i:i)
|
||||||
|
if(c1.ge.'a' .and. c1.le.'z') decoded(i:i)=char(ichar(c1)-32)
|
||||||
|
enddo
|
||||||
write(line,1010) cfile6,nsync,nsnr,dtx-1.0,ndf,
|
write(line,1010) cfile6,nsync,nsnr,dtx-1.0,ndf,
|
||||||
+ nint(width),csync,special,decoded(1:18),cooo,kvqual,nqual,itry
|
+ nint(width),csync,special,decoded(1:18),cooo,kvqual,nqual,itry
|
||||||
1010 format(a6,i3,i5,f5.1,i5,i3,1x,a1,1x,a5,a18,1x,a3,i5,i3,i2)
|
1010 format(a6,i3,i5,f5.1,i5,i3,1x,a1,1x,a5,a18,1x,a3,i5,i3,i2)
|
||||||
@ -175,7 +179,7 @@ C Blank DT if shorthand message (### wrong logic? ###)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
C Blank the end-of-line numbers
|
C Blank the end-of-line numbers
|
||||||
if(naggressive.eq.0) line(58:67)=' '
|
if(naggressive.eq.0 .and. ndiag.eq.0) line(58:67)=' '
|
||||||
if(ndiag.eq.0) line(66:67)=' '
|
if(ndiag.eq.0) line(66:67)=' '
|
||||||
|
|
||||||
if(lcum) write(21,1011) line
|
if(lcum) write(21,1011) line
|
||||||
|
Loading…
x
Reference in New Issue
Block a user