Fix a bug in AP decoding when iaptype=2. Decrease time-sync search range to +/- 1.5s. Fix a big with erasure decoding.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7926 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Steven Franke 2017-07-18 15:22:20 +00:00
parent 4594aaa589
commit 46e1cd5a30
3 changed files with 12 additions and 10 deletions

View File

@ -35,7 +35,7 @@ subroutine ft8b(dd0,newdat,nfqso,ndepth,lsubtract,iaptype,icand,sync0,f1,xdt,
call ft8_downsample(dd0,newdat,f1,cd0) !Mix f1 to baseband and downsample
call timer('ft8_down',1)
i0=nint(xdt*fs2) !Initial guess for start of signal
i0=nint((xdt+0.5)*fs2) !Initial guess for start of signal
smax=0.0
do idt=i0-8,i0+8 !Search over +/- one quarter symbol
call sync8d(cd0,idt,ctwk,0,sync)
@ -154,7 +154,7 @@ subroutine ft8b(dd0,newdat,nfqso,ndepth,lsubtract,iaptype,icand,sync0,f1,xdt,
llra=2.0*rxdatap/(ss*ss) ! llr's for use with ap
apmag=4.0
nap=0
! if(ndepth.eq.3) nap=2
if(ndepth.eq.3) nap=2
do iap=0,nap !### Temporary ###
nera=1
@ -162,9 +162,9 @@ subroutine ft8b(dd0,newdat,nfqso,ndepth,lsubtract,iaptype,icand,sync0,f1,xdt,
do iera=1,nera
llr=llr0
nblank=0
if(nera.eq.3 .and. iera.eq.1) nblank=48
if(nera.eq.3 .and. iera.eq.1) nblank=0
if(nera.eq.3 .and. iera.eq.2) nblank=24
if(nera.eq.3 .and. iera.eq.3) nblank=0
if(nera.eq.3 .and. iera.eq.3) nblank=48
if(nblank.gt.0) llr(1:nblank)=0.
if(iap.eq.0) then
apmask=0
@ -208,7 +208,7 @@ subroutine ft8b(dd0,newdat,nfqso,ndepth,lsubtract,iaptype,icand,sync0,f1,xdt,
llrap=llr
! llrap(88:143)=apmag*apsym(1:56)/ss
llrap(115)=llra(115)
llrap(116:143)=apmag*apsym(1:28)/ss
llrap(116:143)=apmag*apsym(29:56)/ss
llrap(144)=-apmag/ss
! llrap(160:162)=apmag*apsym(73:75)/ss
endif

View File

@ -1,8 +1,8 @@
subroutine sync8(dd,nfa,nfb,syncmin,nfqso,s,candidate,ncand)
include 'ft8_params.f90'
! Search over +/- 2.5s relative to start of interval.
parameter (JZ=62)
! Search over +/- 1.5s relative to 0.5s TX start time.
parameter (JZ=38)
complex cx(0:NH1)
real s(NH1,NHSYM)
real savg(NH1)
@ -45,8 +45,10 @@ subroutine sync8(dd,nfa,nfb,syncmin,nfqso,s,candidate,ncand)
ib=nint(nfb/df)
nssy=NSPS/NSTEP ! # steps per symbol
nfos=NFFT1/NSPS ! # frequency bin oversampling factor
jstrt=0.5/tstep
do i=ia,ib
do j=-JZ,JZ
do j=-JZ,+JZ
ta=0.
tb=0.
tc=0.
@ -54,7 +56,7 @@ subroutine sync8(dd,nfa,nfb,syncmin,nfqso,s,candidate,ncand)
t0b=0.
t0c=0.
do n=0,6
k=j+nssy*n
k=j+jstrt+nssy*n
if(k.ge.1.and.k.le.NHSYM) then
ta=ta + s(i+nfos*icos7(n),k)
t0a=t0a + sum(s(i:i+nfos*6:nfos,k))

View File

@ -80,7 +80,7 @@ contains
call ft8b(dd,newdat,nfqso,ndepth,lsubtract,iaptype,icand,sync,f1, &
xdt,apsym,nharderrors,dmin,nbadcrc,iap,ipass,iera,message,xsnr)
nsnr=nint(xsnr)
xdt=xdt-0.6
xdt=xdt-0.5
call timer('ft8b ',1)
if(nbadcrc.eq.0 .and. associated(this%callback)) then
call this%callback(sync,nsnr,xdt,f1,iap,iera,message)