mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 13:30:52 -05:00 
			
		
		
		
	Enable q3 decodes, but only at the QSO freq.
This commit is contained in:
		
							parent
							
								
									ebfe352834
								
							
						
					
					
						commit
						8034a006d7
					
				@ -205,7 +205,8 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
 | 
			
		||||
     open(17,file=trim(temp_dir)//'/red.dat',status='unknown')
 | 
			
		||||
     open(14,file=trim(temp_dir)//'/avemsg.txt',status='unknown')
 | 
			
		||||
     call timer('dec_q65 ',0)
 | 
			
		||||
     call my_q65%decode(q65_decoded,id2,params%nutc,params%ntr,          &
 | 
			
		||||
     nqd=1
 | 
			
		||||
     call my_q65%decode(q65_decoded,id2,nqd,params%nutc,params%ntr,      &
 | 
			
		||||
          params%nsubmode,params%nfqso,params%ntol,params%ndepth,        &
 | 
			
		||||
          params%nfa,params%nfb,logical(params%nclearave),               &
 | 
			
		||||
          single_decode,logical(params%nagain),                          &
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,5 @@
 | 
			
		||||
subroutine map65_mmdec(nutc,id2,nsubmode,nfa,nfb,nfqso,ntol,newdat,nagain,  &
 | 
			
		||||
     mycall,hiscall,hisgrid)
 | 
			
		||||
subroutine map65_mmdec(nutc,id2,nqd,nsubmode,nfa,nfb,nfqso,ntol,newdat,   &
 | 
			
		||||
     nagain,mycall,hiscall,hisgrid)
 | 
			
		||||
 | 
			
		||||
  use prog_args
 | 
			
		||||
  use timer_module, only: timer
 | 
			
		||||
@ -47,7 +47,7 @@ subroutine map65_mmdec(nutc,id2,nsubmode,nfa,nfb,nfqso,ntol,newdat,nagain,  &
 | 
			
		||||
  open(14,file=trim(temp_dir)//'/avemsg.txt',status='unknown')
 | 
			
		||||
 | 
			
		||||
  call timer('dec_q65 ',0)
 | 
			
		||||
  call my_q65%decode(q65_decoded,id2,nutc,ntrperiod,nsubmode,nfqso,           &
 | 
			
		||||
  call my_q65%decode(q65_decoded,id2,nqd,nutc,ntrperiod,nsubmode,nfqso,       &
 | 
			
		||||
       ntol,ndepth,nfa,nfb,lclearave,single_decode,lagain,lnewdat,            &
 | 
			
		||||
       emedelay,mycall,hiscall,hisgrid,nQSOProgress,ncontest,lapcqonly,navg0)
 | 
			
		||||
  call timer('dec_q65 ',1)
 | 
			
		||||
 | 
			
		||||
@ -30,7 +30,7 @@ module q65_decode
 | 
			
		||||
 | 
			
		||||
contains
 | 
			
		||||
 | 
			
		||||
  subroutine decode(this,callback,iwave,nutc,ntrperiod,nsubmode,nfqso,   &
 | 
			
		||||
  subroutine decode(this,callback,iwave,nqd,nutc,ntrperiod,nsubmode,nfqso,   &
 | 
			
		||||
       ntol,ndepth,nfa0,nfb0,lclearave,single_decode,lagain,lnewdat0,        &
 | 
			
		||||
       emedelay,mycall,hiscall,hisgrid,nQSOprogress,ncontest,lapcqonly,navg0)
 | 
			
		||||
 | 
			
		||||
@ -135,10 +135,12 @@ contains
 | 
			
		||||
! Generate codewords for full-AP list decoding
 | 
			
		||||
    if(ichar(hiscall(1:1)).eq.0) hiscall=' '
 | 
			
		||||
    if(ichar(hisgrid(1:1)).eq.0) hisgrid=' '
 | 
			
		||||
    ncw=0
 | 
			
		||||
    if(nqd.eq.1 .or. lagain) then
 | 
			
		||||
       call q65_set_list(mycall,hiscall,hisgrid,codewords,ncw)
 | 
			
		||||
    endif
 | 
			
		||||
    dgen=0
 | 
			
		||||
    call q65_enc(dgen,codewords)         !Initialize the Q65 codec
 | 
			
		||||
 | 
			
		||||
    nused=1
 | 
			
		||||
    iavg=0
 | 
			
		||||
    call timer('q65_dec0',0)
 | 
			
		||||
 | 
			
		||||
@ -41,7 +41,6 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb,        &
 | 
			
		||||
  mfb=nfb-nkhz_center+48
 | 
			
		||||
  nts_jt65=2
 | 
			
		||||
  nts_q65=1
 | 
			
		||||
  ncand=0
 | 
			
		||||
  if(nagain.eq.0) then
 | 
			
		||||
     call timer('get_cand',0)
 | 
			
		||||
     call get_candidates(ss,savg,mfa,mfb,nts_jt65,nts_q65,cand,ncand)
 | 
			
		||||
@ -126,7 +125,7 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb,        &
 | 
			
		||||
                 else
 | 
			
		||||
                    write(13,*) 'Error in iii:',iii,ia,ib,fa,fb
 | 
			
		||||
                    flush(13)
 | 
			
		||||
                    go to 999
 | 
			
		||||
                    go to 900
 | 
			
		||||
                 endif
 | 
			
		||||
              enddo
 | 
			
		||||
              call pctile(tavg,101,50,base(jp))
 | 
			
		||||
@ -236,12 +235,12 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb,        &
 | 
			
		||||
                    write(*,*) '! Signal too strong, or suspect data?  Decoding aborted.'
 | 
			
		||||
                    write(13,*) 'Signal too strong, or suspect data?  Decoding aborted.'
 | 
			
		||||
                    call flush(13)
 | 
			
		||||
                    go to 999
 | 
			
		||||
                    go to 900
 | 
			
		||||
                 endif
 | 
			
		||||
 | 
			
		||||
                 call timer('decode1a',0)
 | 
			
		||||
                 ifreq=i
 | 
			
		||||
                 ikHz=nint(freq+0.5*(nfa+nfb)-foffset)-nfshift
 | 
			
		||||
                 ikhz=nint(freq+0.5*(nfa+nfb)-foffset)-nfshift
 | 
			
		||||
                 idf=nint(1000.0*(freq+0.5*(nfa+nfb)-foffset-(ikHz+nfshift)))
 | 
			
		||||
                 call decode1a(dd,newdat,f00,nflip,mode65,nfsample,       &
 | 
			
		||||
                      xpol,mycall,hiscall,hisgrid,neme,ndepth,nqd,dphi,   &
 | 
			
		||||
@ -359,10 +358,10 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb,        &
 | 
			
		||||
        do n=1,ncand
 | 
			
		||||
           if(cand(n)%iflip.ne.0) cycle
 | 
			
		||||
           freq=cand(n)%f+77.0-1.27046
 | 
			
		||||
           if(nqd.eq.1 .and. abs(freq-mousefqso).gt.float(ntol)) cycle
 | 
			
		||||
           if(nqd.eq.1 .and. abs(freq-mousefqso).gt.0.001*ntol) cycle
 | 
			
		||||
           ikhz=nint(freq)
 | 
			
		||||
!           write(*,3201) nqd,freq,mousefqso,mousedf,ntol
 | 
			
		||||
!3201       format('=A',i3,f10.3,3i5)
 | 
			
		||||
!           write(*,3201) nqd,freq,mousefqso,mousedf,ntol,mycall,hiscall,hisgrid
 | 
			
		||||
!3201       format('=A',i3,f10.3,3i5,2a12,a6)
 | 
			
		||||
           call timer('q65b    ',0)
 | 
			
		||||
           call q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz,             &
 | 
			
		||||
                mousedf,ntol,xpol,mycall,hiscall,hisgrid,mode_q65)
 | 
			
		||||
@ -386,13 +385,13 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb,        &
 | 
			
		||||
1013    format('<QuickDecodeDone>',2i4)
 | 
			
		||||
        flush(6)
 | 
			
		||||
     endif
 | 
			
		||||
     if(nqd.eq.1 .and. nagain.eq.1) go to 999
 | 
			
		||||
     if(nqd.eq.1 .and. nagain.eq.1) go to 900
 | 
			
		||||
 | 
			
		||||
     if(nqd.eq.0) then
 | 
			
		||||
        do n=1,ncand
 | 
			
		||||
           if(cand(n)%iflip.ne.0) cycle
 | 
			
		||||
           freq=cand(n)%f+77.0-1.27046
 | 
			
		||||
           if(nqd.eq.1 .and. abs(freq-mousefqso).gt.float(ntol)) cycle
 | 
			
		||||
           if(nqd.eq.1 .and. abs(freq-mousefqso).gt.0.001*ntol) cycle
 | 
			
		||||
           ikhz=nint(freq)
 | 
			
		||||
!           write(*,3202) nqd,freq,mousefqso,mousedf,ntol
 | 
			
		||||
!3202       format('=B',i3,f10.3,3i5)
 | 
			
		||||
@ -520,7 +519,7 @@ subroutine map65a(dd,ss,savg,newdat,nutc,fcenter,ntol,idphi,nfa,nfb,        &
 | 
			
		||||
  call display(nkeep,ftol)
 | 
			
		||||
  ndecdone=2
 | 
			
		||||
 | 
			
		||||
999 close(23)
 | 
			
		||||
900 close(23)
 | 
			
		||||
  ndphi=0
 | 
			
		||||
  nagain=0
 | 
			
		||||
  mcall3b=mcall3a
 | 
			
		||||
 | 
			
		||||
@ -53,7 +53,7 @@ subroutine q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz,mousedf,ntol,xpol,  &
 | 
			
		||||
  snr1=sync(ipk)%ccfmax
 | 
			
		||||
  ipol=1
 | 
			
		||||
  if(xpol) ipol=sync(ipk)%ipol
 | 
			
		||||
!  print*,'BBB',ipk00,ipk,snr1,ipol
 | 
			
		||||
!  print*,'=A',nqd,ikhz,ff,ifreq,0.001*ia*df3+77,0.001*ib*df3+77
 | 
			
		||||
!###
 | 
			
		||||
  
 | 
			
		||||
  nfft1=MAXFFT1
 | 
			
		||||
@ -129,7 +129,7 @@ subroutine q65b(nutc,nqd,fcenter,nfcal,nfsample,ikhz,mousedf,ntol,xpol,  &
 | 
			
		||||
  nsnr0=-99             !Default snr for no decode
 | 
			
		||||
 | 
			
		||||
! NB: Frequency of ipk is now shifted to 1000 Hz.
 | 
			
		||||
  call map65_mmdec(nutc,iwave,nsubmode,nfa,nfb,1000,ntol,     &
 | 
			
		||||
  call map65_mmdec(nutc,iwave,nqd,nsubmode,nfa,nfb,1000,ntol,     &
 | 
			
		||||
       newdat,nagain,mycall,hiscall,hisgrid)
 | 
			
		||||
 | 
			
		||||
  nfreq=nfreq0 + nhz + mousedf - 1000
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user