mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-03-23 20:48:33 -04:00
QMAP now decodes both Q65-60C and Q65-30B in same 60-second Rx sequence.
This commit is contained in:
parent
93dba5e623
commit
cb7395b504
qmap/libqmap
@ -7,6 +7,7 @@ subroutine getcand2(ss,savg0,nts_q65,nagain,ntol,f0_selected,cand,ncand)
|
||||
real :: f !Freq of sync tone, 0 to 96000 Hz
|
||||
real :: xdt !DT of matching sync pattern, -1.0 to +4.0 s
|
||||
integer :: ntrperiod !60 for Q65-60x, 30 for Q65-30x
|
||||
integer :: iseq !0 for first half-minute, 1 for second half
|
||||
end type candidate
|
||||
|
||||
parameter (NFFT=32768) !FFTs done in symspec()
|
||||
@ -59,6 +60,7 @@ subroutine getcand2(ss,savg0,nts_q65,nagain,ntol,f0_selected,cand,ncand)
|
||||
cand(j)%xdt=xdt
|
||||
cand(j)%snr=snr_sync
|
||||
cand(j)%ntrperiod=ntrperiod
|
||||
cand(j)%iseq=iseq
|
||||
ia=max(1,min(i,i0-nguard))
|
||||
ib=min(i0+nbw+nguard,32768)
|
||||
savg(ia:ib)=0.
|
||||
@ -68,7 +70,7 @@ subroutine getcand2(ss,savg0,nts_q65,nagain,ntol,f0_selected,cand,ncand)
|
||||
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
|
||||
@ -78,6 +80,7 @@ subroutine getcand2(ss,savg0,nts_q65,nagain,ntol,f0_selected,cand,ncand)
|
||||
cand(j)%xdt=xdt
|
||||
cand(j)%snr=snr_sync
|
||||
cand(j)%ntrperiod=ntrperiod
|
||||
cand(j)%iseq=iseq
|
||||
ia=max(1,min(i,i0-nguard))
|
||||
ib=min(i0+nbw+nguard,32768)
|
||||
savg(ia:ib)=0.
|
||||
@ -94,6 +97,7 @@ subroutine getcand2(ss,savg0,nts_q65,nagain,ntol,f0_selected,cand,ncand)
|
||||
cand(j)%xdt=xdt
|
||||
cand(j)%snr=snr_sync
|
||||
cand(j)%ntrperiod=ntrperiod
|
||||
cand(j)%iseq=iseq
|
||||
ia=max(1,min(i,i0-nguard))
|
||||
ib=min(i0+nbw+nguard,32768)
|
||||
savg(ia:ib)=0.
|
||||
|
@ -94,8 +94,8 @@ subroutine q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz,mousedf,ntol, &
|
||||
!###
|
||||
nfa=800
|
||||
nfb=1200
|
||||
write(*,4001) f0,f0+31.847,nfa,nfb,ntol,ntrperiod,iseq,mode_q65
|
||||
4001 format('b',2f10.3,6i6)
|
||||
! 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)
|
||||
!###
|
||||
|
||||
@ -117,8 +117,15 @@ subroutine q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz,mousedf,ntol, &
|
||||
ndecodes=ndecodes+1
|
||||
frx=0.001*k0*df+nkhz_center-48.0+1.0 - 0.001*nfcal
|
||||
fsked=frx - 0.001*ndop00/2.0 - 0.001*offset
|
||||
write(result(ndecodes),1120) nutc,frx,fsked,xdt0,nsnr0,trim(msg0)
|
||||
1120 format(i4.4,f9.3,f7.1,f7.2,i5,2x,a)
|
||||
if(ntrperiod.eq.60) then
|
||||
write(result(ndecodes),1120) nutc,frx,fsked,xdt0,nsnr0,trim(msg0)
|
||||
1120 format(i4.4,f9.3,f7.1,f7.2,i5,2x,a)
|
||||
else
|
||||
nhhmmss=100*nutc
|
||||
if(iseq.eq.1) nhhmmss=100*nutc+30
|
||||
write(result(ndecodes),1121) nhhmmss,frx,fsked,xdt0,nsnr0,trim(msg0)
|
||||
1121 format(i6.6,f9.3,f7.1,f7.2,i5,2x,a)
|
||||
endif
|
||||
write(12,1130) datetime,trim(result(ndecodes)(5:))
|
||||
1130 format(a11,1x,a)
|
||||
result(ndecodes)=trim(result(ndecodes))//char(0)
|
||||
|
@ -11,6 +11,7 @@ subroutine qmapa(dd,ss,savg,newdat,nutc,fcenter,ntol,nfa,nfb, &
|
||||
real :: f !Freq of sync tone, 0 to 96000 Hz
|
||||
real :: xdt !DT of matching sync pattern, -1.0 to +4.0 s
|
||||
integer :: ntrperiod !60 for Q65-60x, 30 for Q65-30x
|
||||
integer :: iseq !0 for first half-minute, 1 for second half
|
||||
end type candidate
|
||||
|
||||
parameter (NFFT=32768) !Size of FFTs done in symspec()
|
||||
@ -60,17 +61,19 @@ subroutine qmapa(dd,ss,savg,newdat,nutc,fcenter,ntol,nfa,nfb, &
|
||||
do icand=1,ncand !Attempt to decode each candidate
|
||||
f0=cand(icand)%f
|
||||
ntrperiod=cand(icand)%ntrperiod
|
||||
iseq=cand(icand)%iseq
|
||||
!###
|
||||
if(icand.gt.1) exit
|
||||
f0=-31.847 + 117.602
|
||||
ntrperiod=30
|
||||
iseq=1
|
||||
mode_q65=2
|
||||
! if(icand.gt.2) exit
|
||||
! f0=-31.847 + 117.602
|
||||
! ntrperiod=30
|
||||
! iseq=icand-1
|
||||
!###
|
||||
mode_q65=3 !###
|
||||
if(ntrperiod.eq.30) 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)
|
||||
! write(*,5001) icand,ntrperiod,iseq,mode_q65,f0,f0+nkhz_center-48.0, &
|
||||
! cand(icand)%xdt,cand(icand)%snr
|
||||
!5001 format('a',4i5,2f10.3,2f8.1)
|
||||
ikhz=nint(freq)
|
||||
idec=-1
|
||||
call timer('q65b ',0)
|
||||
|
Loading…
Reference in New Issue
Block a user