First cut at setting up Fast/Normal/Deep parameters.

This commit is contained in:
Steven Franke 2020-03-17 08:51:37 -05:00
parent a2c3907b75
commit 8f7221825f
3 changed files with 13 additions and 11 deletions

View File

@ -1,4 +1,4 @@
subroutine bpdecode174_91(llr,apmask,maxiterations,message77,cw,nharderror,iter) subroutine bpdecode174_91(llr,apmask,maxiterations,message77,cw,nharderror,iter,ncheck)
! !
! A log-domain belief propagation decoder for the (174,91) code. ! A log-domain belief propagation decoder for the (174,91) code.
! !
@ -76,6 +76,7 @@ do iter=0,maxiterations
! write(*,*) iter,ncheck,nd,ncnt ! write(*,*) iter,ncheck,nd,ncnt
if( ncnt .ge. 5 .and. iter .ge. 10 .and. ncheck .gt. 15) then if( ncnt .ge. 5 .and. iter .ge. 10 .and. ncheck .gt. 15) then
nharderror=-1 nharderror=-1
return return
endif endif
endif endif

View File

@ -261,7 +261,7 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,nzhsym,lapon, &
else else
npasses=4 npasses=4
endif endif
if(nzhsym.lt.50) npasses=3 if(nzhsym.lt.50) npasses=4
do ipass=1,npasses do ipass=1,npasses
llrz=llra llrz=llra
@ -402,11 +402,11 @@ subroutine ft8b(dd0,newdat,nQSOProgress,nfqso,nftx,ndepth,nzhsym,lapon, &
cw=0 cw=0
call timer('bpd174_91 ',0) call timer('bpd174_91 ',0)
call bpdecode174_91(llrz,apmask,max_iterations,message77,cw,nharderrors, & call bpdecode174_91(llrz,apmask,max_iterations,message77,cw,nharderrors, &
niterations) niterations,ncheck)
call timer('bpd174_91 ',1) call timer('bpd174_91 ',1)
dmin=0.0 dmin=0.0
if(ndepth.ge.2 .and. nharderrors.lt.0) then if(nharderrors.lt.0 .and. ncheck.le.30 .and. ndepth.ge.2) then
ndeep=3 ndeep=ndepth
if(abs(nfqso-f1).le.napwid .or. abs(nftx-f1).le.napwid .or. ncontest.eq.7) then if(abs(nfqso-f1).le.napwid .or. abs(nftx-f1).le.napwid .or. ncontest.eq.7) then
ndeep=4 ndeep=4
endif endif

View File

@ -124,24 +124,26 @@ contains
endif endif
! For now: ! For now:
! ndepth=1: no subtraction, 1 pass, belief propagation only ! ndepth=1: subtraction, 3 passes, bp (no subtract refinement)
! ndepth=2: subtraction, 3 passes, bp+osd (no subtract refinement) ! ndepth=2: subtraction, 3 passes, bp+osd (no subtract refinement)
! ndepth=3: subtraction, 3 passes, bp+osd ! ndepth=3: subtraction, 3 passes, bp+osd
if(ndepth.eq.1) npass=1 npass=3
if(ndepth.ge.2) npass=3
do ipass=1,npass do ipass=1,npass
newdat=.true. newdat=.true.
syncmin=1.3 syncmin=1.3
if(ipass.eq.1) then if(ipass.eq.1) then
lsubtract=.true. lsubtract=.true.
if(ndepth.eq.1) lsubtract=.false. ndeep=ndepth
if(ndepth.eq.3) ndeep=2
elseif(ipass.eq.2) then elseif(ipass.eq.2) then
n2=ndecodes n2=ndecodes
if(ndecodes.eq.0) cycle if(ndecodes.eq.0) cycle
lsubtract=.true. lsubtract=.true.
ndeep=ndepth
elseif(ipass.eq.3) then elseif(ipass.eq.3) then
if((ndecodes-n2).eq.0) cycle if((ndecodes-n2).eq.0) cycle
lsubtract=.true. lsubtract=.true.
ndeep=3
endif endif
call timer('sync8 ',0) call timer('sync8 ',0)
maxc=MAXCAND maxc=MAXCAND
@ -154,7 +156,7 @@ contains
xdt=candidate(2,icand) xdt=candidate(2,icand)
xbase=10.0**(0.1*(sbase(nint(f1/3.125))-40.0)) xbase=10.0**(0.1*(sbase(nint(f1/3.125))-40.0))
call timer('ft8b ',0) call timer('ft8b ',0)
call ft8b(dd,newdat,nQSOProgress,nfqso,nftx,ndepth,nzhsym,lft8apon, & call ft8b(dd,newdat,nQSOProgress,nfqso,nftx,ndeep,nzhsym,lft8apon, &
lapcqonly,napwid,lsubtract,nagain,ncontest,iaptype,mycall12, & lapcqonly,napwid,lsubtract,nagain,ncontest,iaptype,mycall12, &
hiscall12,sync,f1,xdt,xbase,apsym2,aph10,nharderrors,dmin, & hiscall12,sync,f1,xdt,xbase,apsym2,aph10,nharderrors,dmin, &
nbadcrc,iappass,iera,msg37,xsnr,itone) nbadcrc,iappass,iera,msg37,xsnr,itone)
@ -165,7 +167,6 @@ contains
if(nbadcrc.eq.0) then if(nbadcrc.eq.0) then
ldupe=.false. ldupe=.false.
do id=1,ndecodes do id=1,ndecodes
! if(msg37.eq.allmessages(id).and.nsnr.le.allsnrs(id)) ldupe=.true.
if(msg37.eq.allmessages(id)) ldupe=.true. if(msg37.eq.allmessages(id)) ldupe=.true.
enddo enddo
if(.not.ldupe) then if(.not.ldupe) then