mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-06-25 06:35:17 -04:00
Merge branch 'release-2.1.0' of bitbucket.org:k1jt/wsjtx into release-2.1.0
This commit is contained in:
commit
1275569273
@ -32,7 +32,7 @@ contains
|
|||||||
procedure(ft4_decode_callback) :: callback
|
procedure(ft4_decode_callback) :: callback
|
||||||
parameter (NSS=NSPS/NDOWN)
|
parameter (NSS=NSPS/NDOWN)
|
||||||
parameter (NZZ=18*3456)
|
parameter (NZZ=18*3456)
|
||||||
character message*37,msgsent*37,msg0*37
|
character message*37,msgsent*37
|
||||||
character c77*77
|
character c77*77
|
||||||
character*37 decodes(100)
|
character*37 decodes(100)
|
||||||
character*512 data_dir,fname
|
character*512 data_dir,fname
|
||||||
@ -75,13 +75,13 @@ contains
|
|||||||
logical nohiscall,unpk77_success
|
logical nohiscall,unpk77_success
|
||||||
logical one(0:255,0:7) ! 256 4-symbol sequences, 8 bits
|
logical one(0:255,0:7) ! 256 4-symbol sequences, 8 bits
|
||||||
logical first, dobigfft
|
logical first, dobigfft
|
||||||
|
logical dosubtract
|
||||||
|
|
||||||
data icos4a/0,1,3,2/
|
data icos4a/0,1,3,2/
|
||||||
data icos4b/1,0,2,3/
|
data icos4b/1,0,2,3/
|
||||||
data icos4c/2,3,1,0/
|
data icos4c/2,3,1,0/
|
||||||
data icos4d/3,2,0,1/
|
data icos4d/3,2,0,1/
|
||||||
data graymap/0,1,3,2/
|
data graymap/0,1,3,2/
|
||||||
data msg0/' '/
|
|
||||||
data first/.true./
|
data first/.true./
|
||||||
data mcq/0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0/
|
data mcq/0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0/
|
||||||
data mrrr/0,1,1,1,1,1,1,0,1,0,0,1,0,0,1,0,0,0,1/
|
data mrrr/0,1,1,1,1,1,1,0,1,0,0,1,0,0,1,0,0,0,1/
|
||||||
@ -91,7 +91,7 @@ contains
|
|||||||
1,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,1,0,1, &
|
1,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,1,1,1,0,0,1,0,1, &
|
||||||
0,1,0,1,0,1,1,0,1,1,1,1,1,0,0,0,1,0,1/
|
0,1,0,1,0,1,1,0,1,1,1,1,1,0,0,0,1,0,1/
|
||||||
save fs,dt,tt,txt,twopi,h,one,first,apbits,nappasses,naptypes, &
|
save fs,dt,tt,txt,twopi,h,one,first,apbits,nappasses,naptypes, &
|
||||||
mycall0,hiscall0,msg0,cqstr0,ctwk2
|
mycall0,hiscall0,cqstr0,ctwk2
|
||||||
|
|
||||||
this%callback => callback
|
this%callback => callback
|
||||||
hhmmss=cdatetime0(8:13)
|
hhmmss=cdatetime0(8:13)
|
||||||
@ -201,7 +201,6 @@ contains
|
|||||||
mycall0=mycall
|
mycall0=mycall
|
||||||
hiscall0=hiscall
|
hiscall0=hiscall
|
||||||
endif
|
endif
|
||||||
syncmin=1.2
|
|
||||||
maxcand=100
|
maxcand=100
|
||||||
ndecodes=0
|
ndecodes=0
|
||||||
decodes=' '
|
decodes=' '
|
||||||
@ -209,7 +208,21 @@ contains
|
|||||||
fb=nfb
|
fb=nfb
|
||||||
dd=iwave
|
dd=iwave
|
||||||
|
|
||||||
do isp = 1,2
|
! ndepth=3: 2 passes, subtract on each pass
|
||||||
|
! ndepth=2: 1 pass, no subtraction
|
||||||
|
! ndepth=1: 1 pass, no subtraction, fewer candidates
|
||||||
|
|
||||||
|
max_iterations=40
|
||||||
|
syncmin=1.2
|
||||||
|
dosubtract=.true.
|
||||||
|
nsp=2
|
||||||
|
if(ndepth.lt.3) then
|
||||||
|
nsp=1
|
||||||
|
dosubtract=.false.
|
||||||
|
endif
|
||||||
|
if(ndepth.eq.1) syncmin=2.0
|
||||||
|
|
||||||
|
do isp = 1,nsp
|
||||||
candidate=0.0
|
candidate=0.0
|
||||||
ncand=0
|
ncand=0
|
||||||
call timer('getcand4',0)
|
call timer('getcand4',0)
|
||||||
@ -373,6 +386,7 @@ contains
|
|||||||
|
|
||||||
apmag=maxval(abs(llra))*1.1
|
apmag=maxval(abs(llra))*1.1
|
||||||
npasses=3+nappasses(nQSOProgress)
|
npasses=3+nappasses(nQSOProgress)
|
||||||
|
if(ndepth.eq.1) npasses=3
|
||||||
if(ncontest.ge.5) npasses=3 ! Don't support Fox and Hound
|
if(ncontest.ge.5) npasses=3 ! Don't support Fox and Hound
|
||||||
do ipass=1,npasses
|
do ipass=1,npasses
|
||||||
if(ipass.eq.1) llr=llra
|
if(ipass.eq.1) llr=llra
|
||||||
@ -384,7 +398,7 @@ contains
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if(ipass .gt. 3) then
|
if(ipass .gt. 3) then
|
||||||
llrd=llrc
|
llrd=llra
|
||||||
iaptype=naptypes(nQSOProgress,ipass-3)
|
iaptype=naptypes(nQSOProgress,ipass-3)
|
||||||
|
|
||||||
! ncontest=0 : NONE
|
! ncontest=0 : NONE
|
||||||
@ -450,7 +464,6 @@ contains
|
|||||||
|
|
||||||
llr=llrd
|
llr=llrd
|
||||||
endif
|
endif
|
||||||
max_iterations=40
|
|
||||||
message77=0
|
message77=0
|
||||||
call timer('bpdec174',0)
|
call timer('bpdec174',0)
|
||||||
call bpdecode174_91(llr,apmask,max_iterations,message77, &
|
call bpdecode174_91(llr,apmask,max_iterations,message77, &
|
||||||
@ -461,7 +474,7 @@ contains
|
|||||||
message77=mod(message77+rvec,2) ! remove rvec scrambling
|
message77=mod(message77+rvec,2) ! remove rvec scrambling
|
||||||
write(c77,'(77i1)') message77(1:77)
|
write(c77,'(77i1)') message77(1:77)
|
||||||
call unpack77(c77,1,message,unpk77_success)
|
call unpack77(c77,1,message,unpk77_success)
|
||||||
if(unpk77_success) then
|
if(unpk77_success.and.dosubtract) then
|
||||||
call get_ft4_tones_from_77bits(message77,i4tone)
|
call get_ft4_tones_from_77bits(message77,i4tone)
|
||||||
dt=real(ibest)/750.0
|
dt=real(ibest)/750.0
|
||||||
call timer('subtract',0)
|
call timer('subtract',0)
|
||||||
@ -472,7 +485,6 @@ contains
|
|||||||
do i=1,ndecodes
|
do i=1,ndecodes
|
||||||
if(decodes(i).eq.message) idupe=1
|
if(decodes(i).eq.message) idupe=1
|
||||||
enddo
|
enddo
|
||||||
if(ibest.le.10 .and. message.eq.msg0) idupe=1 !Already decoded
|
|
||||||
if(idupe.eq.1) exit
|
if(idupe.eq.1) exit
|
||||||
ndecodes=ndecodes+1
|
ndecodes=ndecodes+1
|
||||||
decodes(ndecodes)=message
|
decodes(ndecodes)=message
|
||||||
@ -484,7 +496,6 @@ contains
|
|||||||
nsnr=nint(max(-20.0,xsnr))
|
nsnr=nint(max(-20.0,xsnr))
|
||||||
xdt=ibest/750.0 - 0.5
|
xdt=ibest/750.0 - 0.5
|
||||||
call this%callback(sync,nsnr,xdt,f0,message,iaptype,qual)
|
call this%callback(sync,nsnr,xdt,f0,message,iaptype,qual)
|
||||||
if(ibest.ge.ibmax-15) msg0=message !Possible dupe candidate
|
|
||||||
exit
|
exit
|
||||||
endif
|
endif
|
||||||
enddo !Sequence estimation
|
enddo !Sequence estimation
|
||||||
|
Loading…
x
Reference in New Issue
Block a user