mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-15 08:31:57 -05:00
More into q65 module.
This commit is contained in:
parent
a5a1eed681
commit
f05654e19d
@ -24,6 +24,31 @@ subroutine q65_clravg
|
|||||||
return
|
return
|
||||||
end subroutine q65_clravg
|
end subroutine q65_clravg
|
||||||
|
|
||||||
|
subroutine q65_dec1(s3,nsubmode,b90ts,esnodb,irc,dat4,decoded)
|
||||||
|
|
||||||
|
use packjt77
|
||||||
|
real s3(1,1) !Silence compiler warning that wants to see a 2D array
|
||||||
|
real s3prob(0:63,63) !Symbol-value probabilities
|
||||||
|
integer dat4(13)
|
||||||
|
character c77*77,decoded*37
|
||||||
|
logical unpk77_success
|
||||||
|
|
||||||
|
nFadingModel=1
|
||||||
|
decoded=' '
|
||||||
|
call q65_intrinsics_ff(s3,nsubmode,b90ts,nFadingModel,s3prob)
|
||||||
|
call q65_dec_fullaplist(s3,s3prob,codewords,ncw,esnodb,dat4,plog,irc)
|
||||||
|
if(sum(dat4).le.0) irc=-2
|
||||||
|
if(irc.ge.0 .and. plog.gt.PLOG_MIN) then
|
||||||
|
write(c77,1000) dat4(1:12),dat4(13)/2
|
||||||
|
1000 format(12b6.6,b5.5)
|
||||||
|
call unpack77(c77,0,decoded,unpk77_success) !Unpack to get msgsent
|
||||||
|
else
|
||||||
|
irc=-1
|
||||||
|
endif
|
||||||
|
|
||||||
|
return
|
||||||
|
end subroutine q65_dec1
|
||||||
|
|
||||||
subroutine q65_dec2(s3,nsubmode,b90ts,esnodb,irc,dat4,decoded)
|
subroutine q65_dec2(s3,nsubmode,b90ts,esnodb,irc,dat4,decoded)
|
||||||
|
|
||||||
use packjt77
|
use packjt77
|
||||||
|
@ -72,8 +72,8 @@ subroutine q65_sync(nutc,iwave,ntrperiod,nfqso,ntol,ndepth,lclearave, &
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
call timer('s1 ',0)
|
call timer('s1 ',0)
|
||||||
nmax=ntrperiod*12000
|
! Compute spectra with symbol length and NSTEP time bins per symbol.
|
||||||
call q65_symspec(iwave,nmax,iz,jz,s1)
|
call q65_symspec(iwave,ntrperiod*12000,iz,jz,s1)
|
||||||
call timer('s1 ',1)
|
call timer('s1 ',1)
|
||||||
|
|
||||||
i0=nint(nfqso/df) !Target QSO frequency
|
i0=nint(nfqso/df) !Target QSO frequency
|
||||||
@ -101,9 +101,8 @@ subroutine q65_sync(nutc,iwave,ntrperiod,nfqso,ntol,ndepth,lclearave, &
|
|||||||
if(ncw.gt.0) then
|
if(ncw.gt.0) then
|
||||||
! Try list decoding via "Deep Likelihood".
|
! Try list decoding via "Deep Likelihood".
|
||||||
call timer('list_dec',0)
|
call timer('list_dec',0)
|
||||||
call q65_dec_q3(df,s1,iz,jz,ia, &
|
call q65_dec_q3(df,s1,iz,jz,ia,lag1,lag2,i0,j0,ccf,ccf1,ccf2, &
|
||||||
lag1,lag2,i0,j0,ccf,ccf1,ccf2,ia2,s3,LL,snr2, &
|
ia2,s3,LL,snr2,dat4,idec,decoded)
|
||||||
dat4,idec,decoded)
|
|
||||||
call timer('list_dec',1)
|
call timer('list_dec',1)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -302,7 +301,7 @@ subroutine q65_dec_q3(df,s1,iz,jz,ia, &
|
|||||||
do ibw=ibwa,ibwb
|
do ibw=ibwa,ibwb
|
||||||
b90=1.72**ibw
|
b90=1.72**ibw
|
||||||
b90ts=b90/baud
|
b90ts=b90/baud
|
||||||
call q65_dec1(s3,nsubmode,b90ts,codewords,ncw,esnodb,irc,dat4,decoded)
|
call q65_dec1(s3,nsubmode,b90ts,esnodb,irc,dat4,decoded)
|
||||||
if(irc.ge.0) then
|
if(irc.ge.0) then
|
||||||
snr2=esnodb - db(2500.0/baud) + 3.0 !Empirical adjustment
|
snr2=esnodb - db(2500.0/baud) + 3.0 !Empirical adjustment
|
||||||
idec=1
|
idec=1
|
||||||
@ -321,30 +320,3 @@ subroutine q65_dec_q3(df,s1,iz,jz,ia, &
|
|||||||
|
|
||||||
return
|
return
|
||||||
end subroutine q65_dec_q3
|
end subroutine q65_dec_q3
|
||||||
|
|
||||||
subroutine q65_dec1(s3,nsubmode,b90ts,codewords,ncw,esnodb,irc,dat4,decoded)
|
|
||||||
|
|
||||||
use packjt77
|
|
||||||
parameter (PLOG_MIN=-240.0) !List decoding threshold
|
|
||||||
real s3(1,1) !Silence compiler warning that wants to see a 2D array
|
|
||||||
real s3prob(0:63,63) !Symbol-value probabilities
|
|
||||||
integer codewords(63,206)
|
|
||||||
integer dat4(13)
|
|
||||||
character c77*77,decoded*37
|
|
||||||
logical unpk77_success
|
|
||||||
|
|
||||||
nFadingModel=1
|
|
||||||
decoded=' '
|
|
||||||
call q65_intrinsics_ff(s3,nsubmode,b90ts,nFadingModel,s3prob)
|
|
||||||
call q65_dec_fullaplist(s3,s3prob,codewords,ncw,esnodb,dat4,plog,irc)
|
|
||||||
if(sum(dat4).le.0) irc=-2
|
|
||||||
if(irc.ge.0 .and. plog.gt.PLOG_MIN) then
|
|
||||||
write(c77,1000) dat4(1:12),dat4(13)/2
|
|
||||||
1000 format(12b6.6,b5.5)
|
|
||||||
call unpack77(c77,0,decoded,unpk77_success) !Unpack to get msgsent
|
|
||||||
else
|
|
||||||
irc=-1
|
|
||||||
endif
|
|
||||||
|
|
||||||
return
|
|
||||||
end subroutine q65_dec1
|
|
||||||
|
Loading…
Reference in New Issue
Block a user