Work in progress on QMAP, for Q65-30x decoding.

This commit is contained in:
Joe Taylor 2023-12-06 14:22:45 -05:00
parent 7348bc323e
commit 93dba5e623
5 changed files with 31 additions and 9 deletions

View File

@ -1,5 +1,5 @@
subroutine map65_mmdec(nutc,id2,nqd,nsubmode,nfa,nfb,nfqso,ntol,newdat, &
nagain,max_drift,ndepth,mycall,hiscall,hisgrid)
subroutine map65_mmdec(nutc,id2,nqd,ntrperiod, nsubmode,nfa,nfb,nfqso, &
ntol,newdat,nagain,max_drift,ndepth,mycall,hiscall,hisgrid)
use prog_args
use timer_module, only: timer
@ -39,7 +39,7 @@ subroutine map65_mmdec(nutc,id2,nqd,nsubmode,nfa,nfb,nfqso,ntol,newdat, &
lagain=(nagain.ne.0)
bVHF=.true.
emedelay=2.5
ntrperiod=60
! ntrperiod=60
call timer('dec_q65 ',0)
call my_q65%decode(q65_decoded,id2,nqd,nutc,ntrperiod,nsubmode,nfqso, &

View File

@ -63,12 +63,12 @@ subroutine getcand2(ss,savg0,nts_q65,nagain,ntol,f0_selected,cand,ncand)
ib=min(i0+nbw+nguard,32768)
savg(ia:ib)=0.
! write(*,3301) j,fpk+80-48,xdt,snr_sync,ntrperiod,iseq
3301 format(i3,f8.1,f8.2,f8.1,2i5)
3301 format(i3,f10.3,f8.2,f8.1,2i5)
if(j.ge.MAX_CANDIDATES) exit
endif
ntrperiod=30
! if(ntrperiod.eq.30) cycle
if(ntrperiod.eq.30) cycle
call q65_sync(ss,i0,nts_q65,ntrperiod,iseq,sync_ok,snr_sync,xdt)
if(sync_ok) then

View File

@ -56,8 +56,8 @@ subroutine q65_sync(ss,i0,nts_q65,ntrperiod,iseq,sync_ok,snr,xdt)
sq=sq+ccf(i)**2
nsum=nsum+1
endif
write(40,3040) i,i*tstep-1.0,ccf(i),fpk
3040 format(i5,3f8.2)
! write(40,3040) i,i*tstep-1.0,ccf(i),fpk
!3040 format(i5,3f8.2)
enddo
ave=xsum/nsum
rms=sqrt(sq/nsum - ave*ave)

View File

@ -1,4 +1,5 @@
subroutine q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz,mousedf,ntol, &
ntrperiod,iseq, &
mycall0,hiscall0,hisgrid,mode_q65,f0,fqso,nkhz_center, newdat,nagain, &
max_drift,offset,ndepth,datetime,ndop00,idec)
@ -90,8 +91,16 @@ subroutine q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz,mousedf,ntol, &
endif
nsnr0=-99 !Default snr for no decode
!###
nfa=800
nfb=1200
write(*,4001) f0,f0+31.847,nfa,nfb,ntol,ntrperiod,iseq,mode_q65
4001 format('b',2f10.3,6i6)
if(iseq.eq.1) iwave(1:360000)=iwave(360001:720000)
!###
! NB: Frequency of ipk is now shifted to 1000 Hz.
call map65_mmdec(nutc,iwave,nqd,nsubmode,nfa,nfb,1000,ntol, &
call map65_mmdec(nutc,iwave,nqd,ntrperiod,nsubmode,nfa,nfb,1000,ntol, &
newdat,nagain,max_drift,ndepth,mycall,hiscall,hisgrid)
MHz=fcenter
freq0=MHz + 0.001d0*ikhz

View File

@ -56,13 +56,26 @@ subroutine qmapa(dd,ss,savg,newdat,nutc,fcenter,ntol,nfa,nfb, &
call filbig(dd,NSMAX,f0,newdat,nfsample,cx,n5) !Do the full-length FFT
call timer('filbig ',1)
do icand=1,ncand !Attempt to decode each candidate
f0=cand(icand)%f
freq=cand(icand)%f+nkhz_center-48.0-1.27046
ntrperiod=cand(icand)%ntrperiod
!###
if(icand.gt.1) exit
f0=-31.847 + 117.602
ntrperiod=30
iseq=1
mode_q65=2
!###
freq=f0+nkhz_center-48.0-1.27046
write(*,5001) icand,ntrperiod,iseq,f0,f0+nkhz_center-48.0, &
cand(icand)%xdt,cand(icand)%snr
5001 format('a',3i5,2f10.3,2f8.1)
ikhz=nint(freq)
idec=-1
call timer('q65b ',0)
call q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz,mousedf,ntol, &
ntrperiod,iseq, &
mycall,hiscall,hisgrid,mode_q65,f0,fqso,nkhz_center,newdat, &
nagain2,max_drift,offset,ndepth,datetime,ndop00,idec)
call timer('q65b ',1)