mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-05-30 05:12:26 -04:00
Work in progress on QMAP, for Q65-30x decoding.
This commit is contained in:
parent
7348bc323e
commit
93dba5e623
@ -1,5 +1,5 @@
|
|||||||
subroutine map65_mmdec(nutc,id2,nqd,nsubmode,nfa,nfb,nfqso,ntol,newdat, &
|
subroutine map65_mmdec(nutc,id2,nqd,ntrperiod, nsubmode,nfa,nfb,nfqso, &
|
||||||
nagain,max_drift,ndepth,mycall,hiscall,hisgrid)
|
ntol,newdat,nagain,max_drift,ndepth,mycall,hiscall,hisgrid)
|
||||||
|
|
||||||
use prog_args
|
use prog_args
|
||||||
use timer_module, only: timer
|
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)
|
lagain=(nagain.ne.0)
|
||||||
bVHF=.true.
|
bVHF=.true.
|
||||||
emedelay=2.5
|
emedelay=2.5
|
||||||
ntrperiod=60
|
! ntrperiod=60
|
||||||
|
|
||||||
call timer('dec_q65 ',0)
|
call timer('dec_q65 ',0)
|
||||||
call my_q65%decode(q65_decoded,id2,nqd,nutc,ntrperiod,nsubmode,nfqso, &
|
call my_q65%decode(q65_decoded,id2,nqd,nutc,ntrperiod,nsubmode,nfqso, &
|
||||||
|
@ -63,12 +63,12 @@ subroutine getcand2(ss,savg0,nts_q65,nagain,ntol,f0_selected,cand,ncand)
|
|||||||
ib=min(i0+nbw+nguard,32768)
|
ib=min(i0+nbw+nguard,32768)
|
||||||
savg(ia:ib)=0.
|
savg(ia:ib)=0.
|
||||||
! write(*,3301) j,fpk+80-48,xdt,snr_sync,ntrperiod,iseq
|
! 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
|
if(j.ge.MAX_CANDIDATES) exit
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ntrperiod=30
|
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)
|
call q65_sync(ss,i0,nts_q65,ntrperiod,iseq,sync_ok,snr_sync,xdt)
|
||||||
if(sync_ok) then
|
if(sync_ok) then
|
||||||
|
@ -56,8 +56,8 @@ subroutine q65_sync(ss,i0,nts_q65,ntrperiod,iseq,sync_ok,snr,xdt)
|
|||||||
sq=sq+ccf(i)**2
|
sq=sq+ccf(i)**2
|
||||||
nsum=nsum+1
|
nsum=nsum+1
|
||||||
endif
|
endif
|
||||||
write(40,3040) i,i*tstep-1.0,ccf(i),fpk
|
! write(40,3040) i,i*tstep-1.0,ccf(i),fpk
|
||||||
3040 format(i5,3f8.2)
|
!3040 format(i5,3f8.2)
|
||||||
enddo
|
enddo
|
||||||
ave=xsum/nsum
|
ave=xsum/nsum
|
||||||
rms=sqrt(sq/nsum - ave*ave)
|
rms=sqrt(sq/nsum - ave*ave)
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
subroutine q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz,mousedf,ntol, &
|
subroutine q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz,mousedf,ntol, &
|
||||||
|
ntrperiod,iseq, &
|
||||||
mycall0,hiscall0,hisgrid,mode_q65,f0,fqso,nkhz_center, newdat,nagain, &
|
mycall0,hiscall0,hisgrid,mode_q65,f0,fqso,nkhz_center, newdat,nagain, &
|
||||||
max_drift,offset,ndepth,datetime,ndop00,idec)
|
max_drift,offset,ndepth,datetime,ndop00,idec)
|
||||||
|
|
||||||
@ -90,8 +91,16 @@ subroutine q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz,mousedf,ntol, &
|
|||||||
endif
|
endif
|
||||||
nsnr0=-99 !Default snr for no decode
|
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.
|
! 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)
|
newdat,nagain,max_drift,ndepth,mycall,hiscall,hisgrid)
|
||||||
MHz=fcenter
|
MHz=fcenter
|
||||||
freq0=MHz + 0.001d0*ikhz
|
freq0=MHz + 0.001d0*ikhz
|
||||||
|
@ -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 filbig(dd,NSMAX,f0,newdat,nfsample,cx,n5) !Do the full-length FFT
|
||||||
call timer('filbig ',1)
|
call timer('filbig ',1)
|
||||||
|
|
||||||
|
|
||||||
do icand=1,ncand !Attempt to decode each candidate
|
do icand=1,ncand !Attempt to decode each candidate
|
||||||
f0=cand(icand)%f
|
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)
|
ikhz=nint(freq)
|
||||||
idec=-1
|
idec=-1
|
||||||
call timer('q65b ',0)
|
call timer('q65b ',0)
|
||||||
call q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz,mousedf,ntol, &
|
call q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz,mousedf,ntol, &
|
||||||
|
ntrperiod,iseq, &
|
||||||
mycall,hiscall,hisgrid,mode_q65,f0,fqso,nkhz_center,newdat, &
|
mycall,hiscall,hisgrid,mode_q65,f0,fqso,nkhz_center,newdat, &
|
||||||
nagain2,max_drift,offset,ndepth,datetime,ndop00,idec)
|
nagain2,max_drift,offset,ndepth,datetime,ndop00,idec)
|
||||||
call timer('q65b ',1)
|
call timer('q65b ',1)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user