mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-03-26 14:08:40 -04:00
Merge branch 'map65' of bitbucket.org:k1jt/wsjtx into map65
This commit is contained in:
commit
4b9763b982
@ -18,7 +18,9 @@ subroutine ftninit
|
|||||||
open(12,file=appd//'/all_q65w.txt',status='unknown',position='append')
|
open(12,file=appd//'/all_q65w.txt',status='unknown',position='append')
|
||||||
open(17,file=appd//'/red.dat',status='unknown')
|
open(17,file=appd//'/red.dat',status='unknown')
|
||||||
open(19,file=appd//'/livecq.txt',status='unknown')
|
open(19,file=appd//'/livecq.txt',status='unknown')
|
||||||
open(71,file=appd//'/debug.tmp',status='unknown')
|
open(71,file=appd//'/fort.71',status='unknown')
|
||||||
|
open(72,file=appd//'/fort.72',status='unknown')
|
||||||
|
open(73,file=appd//'/fort.73',status='unknown')
|
||||||
|
|
||||||
! Import FFTW wisdom, if available:
|
! Import FFTW wisdom, if available:
|
||||||
iret=fftwf_init_threads() !Initialize FFTW threading
|
iret=fftwf_init_threads() !Initialize FFTW threading
|
||||||
|
@ -26,7 +26,6 @@ subroutine q65wa(dd,ss,savg,newdat,nutc,fcenter,ntol,nfa,nfb, &
|
|||||||
save
|
save
|
||||||
|
|
||||||
if(nagain.eq.1) ndepth=3
|
if(nagain.eq.1) ndepth=3
|
||||||
nagain=0 !### TEMPORARY ? ###
|
|
||||||
|
|
||||||
nkhz_center=nint(1000.0*(fcenter-int(fcenter)))
|
nkhz_center=nint(1000.0*(fcenter-int(fcenter)))
|
||||||
mfa=nfa-nkhz_center+48
|
mfa=nfa-nkhz_center+48
|
||||||
@ -35,10 +34,16 @@ subroutine q65wa(dd,ss,savg,newdat,nutc,fcenter,ntol,nfa,nfb, &
|
|||||||
nts_q65=2**(mode_q65-1) !Q65 tone separation factor
|
nts_q65=2**(mode_q65-1) !Q65 tone separation factor
|
||||||
|
|
||||||
call timer('get_cand',0)
|
call timer('get_cand',0)
|
||||||
call get_candidates(ss,savg,nhsym,mfa,mfb,nts_jt65,nts_q65,cand,ncand)
|
! call get_candidates(ss,savg,nhsym,mfa,mfb,nts_jt65,nts_q65,cand,ncand)
|
||||||
|
call getcand2(savg,nts_q65,cand,ncand)
|
||||||
call timer('get_cand',1)
|
call timer('get_cand',1)
|
||||||
candec=.false.
|
|
||||||
|
|
||||||
|
do i=1,ncand
|
||||||
|
write(71,3071) i,cand(i)%f,cand(i)%xdt,cand(i)%snr
|
||||||
|
3071 format(i2,3f10.3)
|
||||||
|
enddo
|
||||||
|
|
||||||
|
candec=.false.
|
||||||
nwrite_q65=0
|
nwrite_q65=0
|
||||||
bq65=mode_q65.gt.0
|
bq65=mode_q65.gt.0
|
||||||
df=96000.0/NFFT !df = 96000/NFFT = 2.930 Hz
|
df=96000.0/NFFT !df = 96000/NFFT = 2.930 Hz
|
||||||
@ -61,6 +66,9 @@ subroutine q65wa(dd,ss,savg,newdat,nutc,fcenter,ntol,nfa,nfb, &
|
|||||||
freq=cand(icand)%f+nkhz_center-48.0-1.27046
|
freq=cand(icand)%f+nkhz_center-48.0-1.27046
|
||||||
ikhz=nint(freq)
|
ikhz=nint(freq)
|
||||||
|
|
||||||
|
! print*,'AAA',icand,nutc,nqd,fcenter,nfcal,nfsample,ikhz,mousedf,ntol, &
|
||||||
|
! mycall,hiscall,hisgrid,mode_q65,f0,fqso,newdat, &
|
||||||
|
! nagain,max_drift,ndop00
|
||||||
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, &
|
||||||
mycall,hiscall,hisgrid,mode_q65,f0,fqso,newdat, &
|
mycall,hiscall,hisgrid,mode_q65,f0,fqso,newdat, &
|
||||||
@ -72,3 +80,52 @@ subroutine q65wa(dd,ss,savg,newdat,nutc,fcenter,ntol,nfa,nfb, &
|
|||||||
|
|
||||||
return
|
return
|
||||||
end subroutine q65wa
|
end subroutine q65wa
|
||||||
|
|
||||||
|
subroutine getcand2(savg0,nts_q65,cand,ncand)
|
||||||
|
|
||||||
|
use wideband_sync
|
||||||
|
! parameter(NFFT=32768)
|
||||||
|
real savg0(NFFT),savg(NFFT)
|
||||||
|
integer ipk1(1)
|
||||||
|
type(candidate) :: cand(MAX_CANDIDATES)
|
||||||
|
|
||||||
|
savg=savg0
|
||||||
|
df=96000.0/NFFT
|
||||||
|
bw=65*nts_q65*1.666666667
|
||||||
|
nbw=bw/df + 1
|
||||||
|
smin=140.0
|
||||||
|
nguard=5
|
||||||
|
j=0
|
||||||
|
sync(1:NFFT)%ccfmax=0.
|
||||||
|
|
||||||
|
do i=1,NFFT-2*nbw
|
||||||
|
if(savg(i).lt.smin) cycle
|
||||||
|
spk=maxval(savg(i:i+nbw))
|
||||||
|
ipk1=maxloc(savg(i:i+nbw))
|
||||||
|
i0=ipk1(1) + i - 1
|
||||||
|
fpk=0.001*i*df
|
||||||
|
j=j+1
|
||||||
|
! write(*,3020) j,fpk,spk
|
||||||
|
!3020 format(i3,f12.6,f8.1)
|
||||||
|
cand(j)%f=fpk
|
||||||
|
cand(j)%xdt=2.5
|
||||||
|
cand(j)%snr=spk
|
||||||
|
cand(j)%iflip=0
|
||||||
|
|
||||||
|
sync(i0)%ccfmax=spk
|
||||||
|
|
||||||
|
ia=min(i,i0-nguard)
|
||||||
|
ib=i0+nbw+nguard
|
||||||
|
savg(ia:ib)=0.
|
||||||
|
! sync(ia:ib)%ccfmax=0.
|
||||||
|
if(j.ge.30) exit
|
||||||
|
enddo
|
||||||
|
ncand=j
|
||||||
|
|
||||||
|
do i=1,NFFT
|
||||||
|
write(72,3072) i,0.001*i*df,savg0(i),savg(i),sync(i)%ccfmax
|
||||||
|
3072 format(i6,f15.6,3f15.3)
|
||||||
|
enddo
|
||||||
|
|
||||||
|
return
|
||||||
|
end subroutine getcand2
|
||||||
|
Loading…
Reference in New Issue
Block a user