mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-05-30 05:12:26 -04:00
Delimit the times at which 60s and 30s decode attempts are made.
This commit is contained in:
parent
5cc82189e6
commit
7276e86e60
@ -6,7 +6,7 @@ set (libq65_FSRCS
|
|||||||
astro0.f90
|
astro0.f90
|
||||||
astrosub.f90
|
astrosub.f90
|
||||||
cfom.f90
|
cfom.f90
|
||||||
chkstat.f90
|
# chkstat.f90
|
||||||
dcoord.f90
|
dcoord.f90
|
||||||
decode0.f90
|
decode0.f90
|
||||||
dot.f90
|
dot.f90
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
subroutine getcand2(ss,savg0,nts_q65,nagain,ntol,f0_selected,bAlso30,cand,ncand)
|
subroutine getcand2(ss,savg0,nts_q65,nagain,nhsym,ntol,f0_selected, &
|
||||||
|
bAlso30,cand,ncand)
|
||||||
|
|
||||||
! Get candidates for Q65 decodes, based on presence of sync tone.
|
! Get candidates for Q65 decodes, based on presence of sync tone.
|
||||||
|
|
||||||
@ -53,58 +54,61 @@ subroutine getcand2(ss,savg0,nts_q65,nagain,ntol,f0_selected,bAlso30,cand,ncand)
|
|||||||
! Check to see if sync tone is present.
|
! Check to see if sync tone is present.
|
||||||
ntrperiod=60
|
ntrperiod=60
|
||||||
iseq=0
|
iseq=0
|
||||||
call q65_sync(ss,i0,nts_q65,ntrperiod,iseq,sync_ok,snr_sync,xdt)
|
if(nhsym.ge.200) then
|
||||||
if(sync_ok) then
|
call q65_sync(ss,i0,nts_q65,ntrperiod,iseq,sync_ok,snr_sync,xdt)
|
||||||
|
if(sync_ok) then
|
||||||
! Sync tone is present, we have a candidate for decoding
|
! Sync tone is present, we have a candidate for decoding
|
||||||
j=j+1
|
j=j+1
|
||||||
cand(j)%f=fpk
|
cand(j)%f=fpk
|
||||||
cand(j)%xdt=xdt
|
cand(j)%xdt=xdt
|
||||||
cand(j)%snr=snr_sync
|
cand(j)%snr=snr_sync
|
||||||
cand(j)%ntrperiod=ntrperiod
|
cand(j)%ntrperiod=ntrperiod
|
||||||
cand(j)%iseq=iseq
|
cand(j)%iseq=iseq
|
||||||
ia=max(1,min(i,i0-nguard))
|
ia=max(1,min(i,i0-nguard))
|
||||||
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
|
if(j.ge.MAX_CANDIDATES) exit
|
||||||
3301 format(i3,f10.3,f8.2,f8.1,2i5)
|
endif
|
||||||
if(j.ge.MAX_CANDIDATES) exit
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if(.not.bAlso30) cycle
|
if(.not.bAlso30) cycle
|
||||||
ntrperiod=30
|
ntrperiod=30
|
||||||
|
|
||||||
call q65_sync(ss,i0,nts_q65,ntrperiod,iseq,sync_ok,snr_sync,xdt)
|
if(nhsym.le.200) then
|
||||||
if(sync_ok) then
|
call q65_sync(ss,i0,nts_q65,ntrperiod,iseq,sync_ok,snr_sync,xdt)
|
||||||
|
if(sync_ok) then
|
||||||
! Sync tone is present, we have a candidate for decoding
|
! Sync tone is present, we have a candidate for decoding
|
||||||
j=j+1
|
j=j+1
|
||||||
cand(j)%f=fpk
|
cand(j)%f=fpk
|
||||||
cand(j)%xdt=xdt
|
cand(j)%xdt=xdt
|
||||||
cand(j)%snr=snr_sync
|
cand(j)%snr=snr_sync
|
||||||
cand(j)%ntrperiod=ntrperiod
|
cand(j)%ntrperiod=ntrperiod
|
||||||
cand(j)%iseq=iseq
|
cand(j)%iseq=iseq
|
||||||
ia=max(1,min(i,i0-nguard))
|
ia=max(1,min(i,i0-nguard))
|
||||||
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
|
if(j.ge.MAX_CANDIDATES) exit
|
||||||
if(j.ge.MAX_CANDIDATES) exit
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
iseq=1
|
iseq=1
|
||||||
call q65_sync(ss,i0,nts_q65,ntrperiod,iseq,sync_ok,snr_sync,xdt)
|
if(nhsym.ge.330) then
|
||||||
if(sync_ok) then
|
call q65_sync(ss,i0,nts_q65,ntrperiod,iseq,sync_ok,snr_sync,xdt)
|
||||||
|
if(sync_ok) then
|
||||||
! Sync tone is present, we have a candidate for decoding
|
! Sync tone is present, we have a candidate for decoding
|
||||||
j=j+1
|
j=j+1
|
||||||
cand(j)%f=fpk
|
cand(j)%f=fpk
|
||||||
cand(j)%xdt=xdt
|
cand(j)%xdt=xdt
|
||||||
cand(j)%snr=snr_sync
|
cand(j)%snr=snr_sync
|
||||||
cand(j)%ntrperiod=ntrperiod
|
cand(j)%ntrperiod=ntrperiod
|
||||||
cand(j)%iseq=iseq
|
cand(j)%iseq=iseq
|
||||||
ia=max(1,min(i,i0-nguard))
|
ia=max(1,min(i,i0-nguard))
|
||||||
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
|
if(j.ge.MAX_CANDIDATES) exit
|
||||||
if(j.ge.MAX_CANDIDATES) exit
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
enddo
|
enddo
|
||||||
ncand=j !Total number of candidates found
|
ncand=j !Total number of candidates found
|
||||||
|
|
||||||
|
@ -41,11 +41,20 @@ subroutine q65c(itimer)
|
|||||||
npatience=1
|
npatience=1
|
||||||
newdat=1 !Always on ??
|
newdat=1 !Always on ??
|
||||||
|
|
||||||
call chkstat(dd,nhsym,bSkip)
|
if(ntx30a.gt.5) then
|
||||||
if(bSkip .and. nagain.eq.0) then
|
dd(1:2,1:30*96000)=0.
|
||||||
print*,'A',nhsym,ntx30a,ntx30b,ntx60,junk1,junk2,bAlso30
|
ss(1:200,1:NFFT)=0.
|
||||||
return
|
|
||||||
endif
|
endif
|
||||||
|
if(ntx30b.gt.5) then
|
||||||
|
dd(1:2,30*96000+1:60*96000)=0.
|
||||||
|
ss(201:400,1:NFFT)=0.
|
||||||
|
endif
|
||||||
|
|
||||||
|
! call chkstat(dd,nhsym,bSkip)
|
||||||
|
! if(bSkip .and. nagain.eq.0) then
|
||||||
|
! print*,'A',nhsym,ntx30a,ntx30b,ntx60,junk1,junk2,bAlso30
|
||||||
|
! return
|
||||||
|
! endif
|
||||||
|
|
||||||
call timer('decode0 ',0)
|
call timer('decode0 ',0)
|
||||||
call decode0(dd,ss,savg)
|
call decode0(dd,ss,savg)
|
||||||
|
@ -44,7 +44,8 @@ subroutine qmapa(dd,ss,savg,newdat,nutc,fcenter,ntol,nfa,nfb, &
|
|||||||
|
|
||||||
call timer('get_cand',0)
|
call timer('get_cand',0)
|
||||||
! Get a list of decoding candidates
|
! Get a list of decoding candidates
|
||||||
call getcand2(ss,savg,nts_q65,nagain,ntol,f0_selected,bAlso30,cand,ncand)
|
call getcand2(ss,savg,nts_q65,nagain,nhsym,ntol,f0_selected,bAlso30, &
|
||||||
|
cand,ncand)
|
||||||
call timer('get_cand',1)
|
call timer('get_cand',1)
|
||||||
|
|
||||||
nwrite_q65=0
|
nwrite_q65=0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user