mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-05-24 02:12:37 -04:00
More tweaks to FST280 decoding. Suppress blank free text msgs.
This commit is contained in:
parent
17d1bc92dc
commit
0e935f0cf7
@ -281,6 +281,10 @@ subroutine unpack77(c77,nrx,msg,unpk77_success)
|
|||||||
call unpacktext77(c77(1:71),msg(1:13))
|
call unpacktext77(c77(1:71),msg(1:13))
|
||||||
msg(14:)=' '
|
msg(14:)=' '
|
||||||
msg=adjustl(msg)
|
msg=adjustl(msg)
|
||||||
|
if(msg(1:1).eq.' ') then
|
||||||
|
unpk77_success=.false.
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
else if(i3.eq.0 .and. n3.eq.1) then
|
else if(i3.eq.0 .and. n3.eq.1) then
|
||||||
! 0.1 K1ABC RR73; W9XYZ <KH1/KH7Z> -11 28 28 10 5 71 DXpedition Mode
|
! 0.1 K1ABC RR73; W9XYZ <KH1/KH7Z> -11 28 28 10 5 71 DXpedition Mode
|
||||||
|
@ -72,10 +72,10 @@ subroutine get_fst280_bitmetrics(cd,nss,hmod,bitmetrics,badsync)
|
|||||||
nsync=is1+is2+is3 !Number of correct hard sync symbols, 0-24
|
nsync=is1+is2+is3 !Number of correct hard sync symbols, 0-24
|
||||||
|
|
||||||
badsync=.false.
|
badsync=.false.
|
||||||
! if(nsync .lt. 8) then
|
if(nsync .lt. 8) then
|
||||||
! badsync=.true.
|
badsync=.true.
|
||||||
! return
|
return
|
||||||
! endif
|
endif
|
||||||
|
|
||||||
bitmetrics=0.0
|
bitmetrics=0.0
|
||||||
do nseq=1,4 !Try coherent sequences of 1, 2, and 4 symbols
|
do nseq=1,4 !Try coherent sequences of 1, 2, and 4 symbols
|
||||||
|
@ -232,6 +232,7 @@ contains
|
|||||||
cframe=c2(is0:is0+164*nss-1)
|
cframe=c2(is0:is0+164*nss-1)
|
||||||
s2=sum(cframe*conjg(cframe))
|
s2=sum(cframe*conjg(cframe))
|
||||||
cframe=cframe/sqrt(s2)
|
cframe=cframe/sqrt(s2)
|
||||||
|
bitmetrics=0
|
||||||
call get_fst280_bitmetrics(cframe,nss,hmod,bitmetrics,badsync)
|
call get_fst280_bitmetrics(cframe,nss,hmod,bitmetrics,badsync)
|
||||||
|
|
||||||
hbits=0
|
hbits=0
|
||||||
@ -243,7 +244,7 @@ contains
|
|||||||
ns5=count(hbits(313:320).eq.(/0,0,0,1,1,0,1,1/))
|
ns5=count(hbits(313:320).eq.(/0,0,0,1,1,0,1,1/))
|
||||||
ns6=count(hbits(321:328).eq.(/0,1,0,0,1,1,1,0/))
|
ns6=count(hbits(321:328).eq.(/0,1,0,0,1,1,1,0/))
|
||||||
nsync_qual=ns1+ns2+ns3+ns4+ns5+ns6
|
nsync_qual=ns1+ns2+ns3+ns4+ns5+ns6
|
||||||
! if(nsync_qual.lt. 20) cycle
|
if(nsync_qual.lt. 30) cycle !### Value ?? ###
|
||||||
|
|
||||||
scalefac=2.83
|
scalefac=2.83
|
||||||
llra( 1:140)=bitmetrics( 17:156, 1)
|
llra( 1:140)=bitmetrics( 17:156, 1)
|
||||||
@ -442,9 +443,10 @@ contains
|
|||||||
call pctile(s2(ia:ib),ib-ia+1,30,base)
|
call pctile(s2(ia:ib),ib-ia+1,30,base)
|
||||||
s2=s2/base
|
s2=s2/base
|
||||||
|
|
||||||
thresh=1.25
|
thresh=1.4
|
||||||
|
|
||||||
ncand=0
|
ncand=0
|
||||||
|
candidates=0
|
||||||
if(ia.lt.3) ia=3
|
if(ia.lt.3) ia=3
|
||||||
if(ib.gt.18000-2) ib=18000-2
|
if(ib.gt.18000-2) ib=18000-2
|
||||||
do i=ia,ib
|
do i=ia,ib
|
||||||
@ -464,13 +466,14 @@ contains
|
|||||||
snr_cand=0.
|
snr_cand=0.
|
||||||
snr_cand(1:ncand)=candidates(1:ncand,2)
|
snr_cand(1:ncand)=candidates(1:ncand,2)
|
||||||
call indexx(snr_cand,ncand,indx)
|
call indexx(snr_cand,ncand,indx)
|
||||||
nmax=5
|
nmax=min(ncand,5)
|
||||||
do i=1,min(ncand,nmax)
|
do i=1,nmax
|
||||||
j=indx(ncand+1-i)
|
j=indx(ncand+1-i)
|
||||||
candidates0(i,1:4)=candidates(j,1:4)
|
candidates0(i,1:4)=candidates(j,1:4)
|
||||||
enddo
|
enddo
|
||||||
candidates(1:nmax,1:4)=candidates0(1:nmax,1:4)
|
ncand=nmax
|
||||||
candidates(nmax+1:,1:4)=0.
|
candidates(1:ncand,1:4)=candidates0(1:ncand,1:4)
|
||||||
|
candidates(ncand+1:,1:4)=0.
|
||||||
|
|
||||||
return
|
return
|
||||||
end subroutine get_candidates_fst280
|
end subroutine get_candidates_fst280
|
||||||
|
Loading…
x
Reference in New Issue
Block a user