mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-05-29 04:42:28 -04:00
Implement a valid scheme for computing S/N in JT4 mode.
(cherry picked from commit f8bb7f447743a19129d3603dc0841fa16f80b308)
This commit is contained in:
parent
de4696768d
commit
f962caace4
@ -165,7 +165,6 @@ contains
|
|||||||
nfreqz=dfx + 1270.46 - 1.5*4.375*mode4
|
nfreqz=dfx + 1270.46 - 1.5*4.375*mode4
|
||||||
call timer('sync4 ',1)
|
call timer('sync4 ',1)
|
||||||
|
|
||||||
snrx=db(sync) - 26.
|
|
||||||
nsnr=nint(snrx)
|
nsnr=nint(snrx)
|
||||||
if(sync.lt.syncmin) then
|
if(sync.lt.syncmin) then
|
||||||
if (associated (this%decode_callback)) then
|
if (associated (this%decode_callback)) then
|
||||||
|
@ -23,8 +23,7 @@ subroutine sync4(dat,jz,ntol,NFreeze,MouseDF,mode,mode4,minwidth, &
|
|||||||
data nch/1,2,4,9,18,36,72/
|
data nch/1,2,4,9,18,36,72/
|
||||||
save
|
save
|
||||||
|
|
||||||
! write(*,3001) 'A',ntol,nfreeze,mousedf,mode,mode4,minwidth
|
|
||||||
!3001 format(a1,6i6)
|
|
||||||
|
|
||||||
! Do FFTs of twice symbol length, stepped by half symbols. Note that
|
! Do FFTs of twice symbol length, stepped by half symbols. Note that
|
||||||
! we have already downsampled the data by factor of 2.
|
! we have already downsampled the data by factor of 2.
|
||||||
@ -96,7 +95,7 @@ subroutine sync4(dat,jz,ntol,NFreeze,MouseDF,mode,mode4,minwidth, &
|
|||||||
sync=abs(ccfblue(lagpk0))
|
sync=abs(ccfblue(lagpk0))
|
||||||
|
|
||||||
! Find best sync value
|
! Find best sync value
|
||||||
if(sync.gt.syncbest) then
|
if(sync.gt.syncbest*1.03) then
|
||||||
ipk=i
|
ipk=i
|
||||||
lagpk=lagpk0
|
lagpk=lagpk0
|
||||||
ichpk=ich
|
ichpk=ich
|
||||||
@ -106,8 +105,8 @@ subroutine sync4(dat,jz,ntol,NFreeze,MouseDF,mode,mode4,minwidth, &
|
|||||||
enddo
|
enddo
|
||||||
if(savered) red=ccfred
|
if(savered) red=ccfred
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
ccfred=red
|
ccfred=red
|
||||||
|
|
||||||
! width=df*nch(ichpk)
|
! width=df*nch(ichpk)
|
||||||
dfx=(ipk-i0 + 3*mode4)*df
|
dfx=(ipk-i0 + 3*mode4)*df
|
||||||
|
|
||||||
@ -171,7 +170,19 @@ subroutine sync4(dat,jz,ntol,NFreeze,MouseDF,mode,mode4,minwidth, &
|
|||||||
do i=ipk1a,jmax
|
do i=ipk1a,jmax
|
||||||
if(ccfred1(i).le.ccf10) exit
|
if(ccfred1(i).le.ccf10) exit
|
||||||
enddo
|
enddo
|
||||||
width=(i-i1)*df
|
nw=i-il
|
||||||
|
width=nw*df
|
||||||
|
|
||||||
|
sq=0.
|
||||||
|
ns=0
|
||||||
|
do j=jmin,jmax
|
||||||
|
if(abs(j-ipk1a).lt.nw) then
|
||||||
|
sq=sq + ccfred1(j)*ccfred1(j)
|
||||||
|
ns=ns+1
|
||||||
|
endif
|
||||||
|
enddo
|
||||||
|
rms=sqrt(sq/ns)
|
||||||
|
snrx=10.0*log10(ccfred1(ipk1a)) - 26.0
|
||||||
|
|
||||||
return
|
return
|
||||||
end subroutine sync4
|
end subroutine sync4
|
||||||
|
Loading…
x
Reference in New Issue
Block a user