mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-03-24 04:58:46 -04:00
Improve wideband Q65 decoding in MAP65.
This commit is contained in:
parent
ef79bed994
commit
51eb142f4c
@ -40,7 +40,7 @@ subroutine map65_mmdec(nutc,id2,nqd,nsubmode,nfa,nfb,nfqso,ntol,newdat, &
|
||||
lagain=(nagain.ne.0)
|
||||
bVHF=.true.
|
||||
emedelay=2.5
|
||||
ndepth=1
|
||||
ndepth=3 !Does this make it too slow?
|
||||
ntrperiod=60
|
||||
|
||||
open(17,file=trim(temp_dir)//'/red.dat',status='unknown')
|
||||
|
@ -68,11 +68,11 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb, &
|
||||
endif
|
||||
!###
|
||||
! do k=1,ncand
|
||||
! freq=cand(k)%f+nkhz_center-48.0-1.27046
|
||||
! freq=cand(k)%f+nkhz_center-48.0
|
||||
! ipk=cand(k)%indx
|
||||
! write(*,3010) nutc,k,db(cand(k)%snr),freq,cand(k)%xdt, &
|
||||
! write(71,3071) k,db(cand(k)%snr),freq,cand(k)%xdt, &
|
||||
! cand(k)%ipol,cand(k)%iflip,ipk,ldecoded(ipk)
|
||||
!3010 format('=a',i5.4,i5,f8.2,f10.3,f8.2,2i3,i6,L4)
|
||||
!3071 format(i3,f8.2,f10.3,f8.2,2i3,i6,L4)
|
||||
! enddo
|
||||
!###
|
||||
|
||||
|
@ -41,7 +41,7 @@ subroutine get_candidates(ss,savg,xpol,jz,nfa,nfb,nts_jt65,nts_q65,cand,ncand)
|
||||
type(candidate) :: cand(MAX_CANDIDATES)
|
||||
common/early/nhsym1,nhsym2,ldecoded(32768)
|
||||
|
||||
call wb_sync(ss,savg,xpol,jz,nfa,nfb)
|
||||
call wb_sync(ss,savg,xpol,jz,nfa,nfb) !Output to sync() array
|
||||
|
||||
tstep=2048.0/11025.0 !0.185760 s: 0.5*tsym_jt65, 0.3096*tsym_q65
|
||||
df3=96000.0/NFFT
|
||||
@ -89,8 +89,6 @@ subroutine get_candidates(ss,savg,xpol,jz,nfa,nfb,nts_jt65,nts_q65,cand,ncand)
|
||||
if(diffhz.gt.-0.03*bw .and. diffhz.lt.1.03*bw) skip=.true.
|
||||
enddo
|
||||
if(skip) cycle
|
||||
! write(*,3301) i,k,m,f0,diffhz,bw,db(snr1)
|
||||
!3301 format('=A',3i5,f8.3,2f8.0,f8.2)
|
||||
k=k+1
|
||||
cand(k)%snr=snr1
|
||||
cand(k)%f=f0
|
||||
@ -99,6 +97,8 @@ subroutine get_candidates(ss,savg,xpol,jz,nfa,nfb,nts_jt65,nts_q65,cand,ncand)
|
||||
cand(k)%ipol=sync(n)%ipol
|
||||
cand(k)%iflip=nint(flip)
|
||||
cand(k)%indx=n
|
||||
! write(50,3050) i,k,m,f0+32.0,diffhz,bw,snr1,db(snr1)
|
||||
!3050 format(3i5,f8.3,2f8.0,2f8.2)
|
||||
if(k.ge.MAX_CANDIDATES) exit
|
||||
enddo
|
||||
ncand=k
|
||||
@ -251,15 +251,30 @@ subroutine wb_sync(ss,savg,xpol,jz,nfa,nfb)
|
||||
|
||||
enddo ! i (frequency bin)
|
||||
|
||||
! do i=ia,ib
|
||||
! write(15,3015) 0.001*(i-1)*df3,sync(i)%ccfmax,sync(i)%xdt,sync(i)%ipol, &
|
||||
! sync(i)%iflip,sync(i)%birdie
|
||||
!3015 format(3f10.3,2i6,L5)
|
||||
! enddo
|
||||
|
||||
call pctile(sync(ia:ib)%ccfmax,ib-ia+1,50,base)
|
||||
sync(ia:ib)%ccfmax=sync(ia:ib)%ccfmax/base
|
||||
|
||||
bw=65*4*1.66666667 !Q65-60C bandwidth
|
||||
nbw=bw/df3 + 1 !Number of bins to blank
|
||||
syncmin=2.0
|
||||
nguard=10
|
||||
do i=ia,ib
|
||||
if(sync(i)%ccfmax.lt.syncmin) cycle
|
||||
spk=maxval(sync(i:i+nbw)%ccfmax)
|
||||
ip =maxloc(sync(i:i+nbw)%ccfmax)
|
||||
i0=ip(1)+i-1
|
||||
ja=min(i,i0-nguard)
|
||||
jb=i0+nbw+nguard
|
||||
sync(ja:jb)%ccfmax=0.
|
||||
sync(i0)%ccfmax=spk
|
||||
enddo
|
||||
|
||||
! do i=ia,ib
|
||||
! write(15,3015) 0.001*(i-1)*df3+32.0,sync(i)%ccfmax,sync(i)%xdt, &
|
||||
! sync(i)%ipol,sync(i)%iflip,sync(i)%birdie
|
||||
!3015 format(3f10.3,2i6,L5)
|
||||
! enddo
|
||||
|
||||
return
|
||||
end subroutine wb_sync
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user