mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-05-24 10:22:26 -04:00
1. Clean up the behavior of Avg and DS decoding.
2. Specify Navg (max # of transmissions to average) for fer65. 3. Specify DS (0 = no deep search, 1 = deep search) for fer65. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6549 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
3e091fca99
commit
c54831df14
@ -24,8 +24,8 @@ program fer65
|
|||||||
|
|
||||||
nargs=iargc()
|
nargs=iargc()
|
||||||
if(nargs.ne.7) then
|
if(nargs.ne.7) then
|
||||||
print*,'Usage: fer65 submode fspread snr1 snr2 depth Navg iters'
|
print*,'Usage: fer65 submode fspread snr1 snr2 Navg DS iters'
|
||||||
print*,'Example: fer65 C 3.0 -28 -12 19 1 1000'
|
print*,'Example: fer65 C 3.0 -28 -12 8 1 1000'
|
||||||
go to 999
|
go to 999
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -37,12 +37,16 @@ program fer65
|
|||||||
call getarg(4,arg)
|
call getarg(4,arg)
|
||||||
read(arg,*) snr2
|
read(arg,*) snr2
|
||||||
call getarg(5,arg)
|
call getarg(5,arg)
|
||||||
read(arg,*) ndepth
|
|
||||||
call getarg(6,arg)
|
|
||||||
read(arg,*) navg
|
read(arg,*) navg
|
||||||
|
call getarg(6,arg)
|
||||||
|
read(arg,*) nds
|
||||||
call getarg(7,arg)
|
call getarg(7,arg)
|
||||||
read(arg,*) iters
|
read(arg,*) iters
|
||||||
|
|
||||||
|
ndepth=3
|
||||||
|
if(navg.gt.1) ndepth=ndepth+16
|
||||||
|
if(nds.ne.0) ndepth=ndepth+32
|
||||||
|
|
||||||
dfmax=min(d,0.5*2.69)
|
dfmax=min(d,0.5*2.69)
|
||||||
if(submode.eq.'b' .or. submode.eq.'B') dfmax=min(d,2.69)
|
if(submode.eq.'b' .or. submode.eq.'B') dfmax=min(d,2.69)
|
||||||
if(submode.eq.'c' .or. submode.eq.'C') dfmax=min(d,2.0*2.69)
|
if(submode.eq.'c' .or. submode.eq.'C') dfmax=min(d,2.0*2.69)
|
||||||
@ -54,9 +58,9 @@ program fer65
|
|||||||
open(20,file='fer65.20',status='unknown')
|
open(20,file='fer65.20',status='unknown')
|
||||||
open(21,file='fer65.21',status='unknown')
|
open(21,file='fer65.21',status='unknown')
|
||||||
|
|
||||||
write(20,1000) submode,iters,ntrials,naggressive,d,ndepth,navg
|
write(20,1000) submode,iters,ntrials,naggressive,d,iand(ndepth,3),navg,nds
|
||||||
1000 format(/'JT65',a1,' Iters:',i5,' T:',i6,' Aggressive:',i3, &
|
1000 format(/'JT65',a1,' Iters:',i5,' T:',i6,' Aggr:',i3, &
|
||||||
' Doppler:',f5.1,' Depth:',i2,' Navg:',i3)
|
' Dop:',f5.1,' Depth:',i2,' Navg:',i3,' DS:',i2)
|
||||||
write(20,1002)
|
write(20,1002)
|
||||||
1002 format(/' dB nsync ngood nbad sync dsnr ', &
|
1002 format(/' dB nsync ngood nbad sync dsnr ', &
|
||||||
'DT Freq Nsum Width'/85('-'))
|
'DT Freq Nsum Width'/85('-'))
|
||||||
@ -92,7 +96,7 @@ program fer65
|
|||||||
nfreq=0
|
nfreq=0
|
||||||
ndrift=0
|
ndrift=0
|
||||||
nwidth=0
|
nwidth=0
|
||||||
cmnd='./jt65 -m A -a 10 -c K1ABC -f 1500 -n 1000 -d 5 -s -X 32 000000_????.wav > decoded.txt'
|
cmnd='./jt65 -m A -a 10 -c K1ABC -f 1500 -n 1000 -d 5 -s 000000_????.wav > decoded.txt'
|
||||||
cmnd(11:11)=submode
|
cmnd(11:11)=submode
|
||||||
write(cmnd(47:48),'(i2)') ndepth
|
write(cmnd(47:48),'(i2)') ndepth
|
||||||
call system(cmnd)
|
call system(cmnd)
|
||||||
@ -132,7 +136,7 @@ program fer65
|
|||||||
sq(7)=sq(7) + nsum*nsum
|
sq(7)=sq(7) + nsum*nsum
|
||||||
else if(decoded.ne.' ') then
|
else if(decoded.ne.' ') then
|
||||||
nbad=nbad+1
|
nbad=nbad+1
|
||||||
print*,nbad,decoded
|
print*,'Nbad:',nbad,decoded
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
20 continue
|
20 continue
|
||||||
|
10
lib/jt65.f90
10
lib/jt65.f90
@ -9,7 +9,7 @@ program jt65
|
|||||||
use readwav
|
use readwav
|
||||||
|
|
||||||
character c,mode
|
character c,mode
|
||||||
logical :: display_help=.false.,nrobust=.false.
|
logical :: display_help=.false.,nrobust=.false.,single_decode=.false.
|
||||||
type(wav_header) :: wav
|
type(wav_header) :: wav
|
||||||
integer*2 id2(NZMAX)
|
integer*2 id2(NZMAX)
|
||||||
real*4 dd(NZMAX)
|
real*4 dd(NZMAX)
|
||||||
@ -36,7 +36,7 @@ program jt65
|
|||||||
naggressive=0
|
naggressive=0
|
||||||
nfqso=1500
|
nfqso=1500
|
||||||
ntrials=10000
|
ntrials=10000
|
||||||
nexp_decoded=0
|
nexp_decode=0
|
||||||
ntol=1000
|
ntol=1000
|
||||||
nsubmode=0
|
nsubmode=0
|
||||||
nlow=200
|
nlow=200
|
||||||
@ -77,8 +77,9 @@ program jt65
|
|||||||
case ('g')
|
case ('g')
|
||||||
read (optarg(:narglen), *) hisgrid
|
read (optarg(:narglen), *) hisgrid
|
||||||
case ('X')
|
case ('X')
|
||||||
read (optarg(:narglen), *) nexp_decoded
|
read (optarg(:narglen), *) nexp_decode
|
||||||
case ('s')
|
case ('s')
|
||||||
|
single_decode=.true.
|
||||||
ntol=100
|
ntol=100
|
||||||
nlow=nfqso-ntol
|
nlow=nfqso-ntol
|
||||||
nhigh=nfqso+ntol
|
nhigh=nfqso+ntol
|
||||||
@ -86,6 +87,7 @@ program jt65
|
|||||||
end select
|
end select
|
||||||
end do
|
end do
|
||||||
|
|
||||||
|
if(single_decode) nexp_decode=ior(nexp_decode,32)
|
||||||
if(display_help .or. nstat.lt.0 .or. nremain.lt.1) then
|
if(display_help .or. nstat.lt.0 .or. nremain.lt.1) then
|
||||||
print *, ''
|
print *, ''
|
||||||
print *, 'Usage: jt65 [OPTIONS] file1 [file2 ...]'
|
print *, 'Usage: jt65 [OPTIONS] file1 [file2 ...]'
|
||||||
@ -123,7 +125,7 @@ program jt65
|
|||||||
dd(npts+1:)=0.
|
dd(npts+1:)=0.
|
||||||
call test(dd,nutc,nfa,nfb,nfqso,ntol,nsubmode, &
|
call test(dd,nutc,nfa,nfb,nfqso,ntol,nsubmode, &
|
||||||
n2pass,nrobust,ntrials,naggressive,ndepth, &
|
n2pass,nrobust,ntrials,naggressive,ndepth, &
|
||||||
mycall,hiscall,hisgrid,nexp_decoded)
|
mycall,hiscall,hisgrid,nexp_decode)
|
||||||
if(nft.gt.0) exit
|
if(nft.gt.0) exit
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
@ -225,10 +225,11 @@ contains
|
|||||||
ndepth,ntrials,naggressive,nclearave,neme,mycall, &
|
ndepth,ntrials,naggressive,nclearave,neme,mycall, &
|
||||||
hiscall,hisgrid,nftt,avemsg,qave,deepave,nsum,ndeepave)
|
hiscall,hisgrid,nftt,avemsg,qave,deepave,nsum,ndeepave)
|
||||||
nsmo=param(9)
|
nsmo=param(9)
|
||||||
|
nqave=qave
|
||||||
|
|
||||||
if (associated(this%callback) .and. nsum.ge.2) then
|
if (associated(this%callback) .and. nsum.ge.2) then
|
||||||
call this%callback(nutc,sync1,nsnr,dtx-1.0,nfreq,ndrift, &
|
call this%callback(nutc,sync1,nsnr,dtx-1.0,nfreq,ndrift, &
|
||||||
width,avemsg,nftt,nqual,nsmo,nsum,minsync,nsubmode, &
|
width,avemsg,nftt,nqave,nsmo,nsum,minsync,nsubmode, &
|
||||||
naggressive)
|
naggressive)
|
||||||
prtavg=.true.
|
prtavg=.true.
|
||||||
cycle
|
cycle
|
||||||
@ -461,26 +462,28 @@ contains
|
|||||||
|
|
||||||
call extract(s3c,nadd,mode65,ntrials,naggressive,ndepth,mycall, &
|
call extract(s3c,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)
|
||||||
|
|
||||||
if(nftt.eq.1) then
|
if(nftt.eq.1) then
|
||||||
nsmo=ismo
|
nsmo=ismo
|
||||||
param(9)=nsmo
|
param(9)=nsmo
|
||||||
exit
|
go to 900
|
||||||
else if(nftt.eq.2) then
|
else if(nftt.eq.2) then
|
||||||
if(qual.gt.qualbest) then
|
if(qual.gt.qualbest) then
|
||||||
decoded_best=decoded
|
deepbest=avemsg
|
||||||
qualbest=qual
|
qualbest=qual
|
||||||
nnbest=nn
|
nnbest=nn
|
||||||
nsmobest=ismo
|
nsmobest=ismo
|
||||||
|
nfttbest=nftt
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
if(nftt.eq.2) then
|
if(nfttbest.eq.2) then
|
||||||
decoded=decoded_best
|
avemsg=deepbest !### ???
|
||||||
qual=qualbest
|
deepave=deepbest
|
||||||
|
qave=qualbest
|
||||||
nsmo=nsmobest
|
nsmo=nsmobest
|
||||||
param(9)=nsmo
|
param(9)=nsmo
|
||||||
|
nftt=nfttbest
|
||||||
endif
|
endif
|
||||||
900 continue
|
900 continue
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user