mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-26 06:08:42 -05:00
280c8344cd
Preparation for merging with the wsjtx project repository.
63 lines
1.3 KiB
Fortran
63 lines
1.3 KiB
Fortran
subroutine qra64zap(cx,cy,xpol,nzap)
|
|
|
|
parameter (NFFT1=5376000) !56*96000
|
|
parameter (NFFT2=336000) !56*6000 (downsampled by 1/16)
|
|
complex cx(0:NFFT2-1),cy(0:NFFT2-1)
|
|
real s(-1312:1312)
|
|
integer iloc(1)
|
|
logical xpol
|
|
|
|
slimit=3.0
|
|
sbottom=1.5
|
|
nadd=128
|
|
nblks=NFFT2/nadd
|
|
nbh=nblks/2
|
|
k=-1
|
|
s=0.
|
|
df=nadd*96000.0/NFFT1
|
|
do i=1,nblks
|
|
j=i
|
|
if(j.gt.nblks/2) j=j-nblks
|
|
do n=1,nadd
|
|
k=k+1
|
|
s(j)=s(j) + real(cx(k))**2 + aimag(cx(k))**2
|
|
if(xpol) s(j)=s(j) + real(cy(k))**2 + aimag(cy(k))**2
|
|
enddo
|
|
enddo
|
|
call pctile(s,nblks,45,base)
|
|
s=s/base
|
|
do nzap=1,3
|
|
iloc=maxloc(s)
|
|
ipk=iloc(1)-1313
|
|
smax=s(ipk)
|
|
nw=3
|
|
do n=1,3
|
|
nw=2*nw
|
|
if(ipk-2*nw.lt.-1312) cycle
|
|
if(ipk+2*nw.gt. 1312) cycle
|
|
s1=maxval(s(ipk-2*nw:ipk-nw))
|
|
s2=maxval(s(ipk+nw:ipk+2*nw))
|
|
if(smax.gt.slimit .and. s1.lt.sbottom .and. s2.lt.sbottom) then
|
|
s(ipk-nw:ipk+nw)=1.0
|
|
i0=ipk
|
|
if(i0.lt.0) i0=i0+2625
|
|
ia=(i0-nw)*nadd
|
|
ib=(i0+nw)*nadd
|
|
cx(ia:ib)=0.
|
|
cy(ia:ib)=0.
|
|
exit
|
|
endif
|
|
enddo
|
|
enddo
|
|
|
|
! rewind 75
|
|
! do i=-nbh,nbh
|
|
! freq=i*df
|
|
! write(75,3001) freq,s(i)
|
|
!3001 format(2f12.3)
|
|
! enddo
|
|
! flush(75)
|
|
|
|
return
|
|
end subroutine qra64zap
|