Always use "&" for MSK144 decodes. Add single digit at end of line to indicate number of frames coherently averaged. THIS REVISION IS NOT INTENDED FOR USE ON THE AIR.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7146 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2016-10-03 20:28:27 +00:00
parent d9e4b7eede
commit a852efc33f
2 changed files with 12 additions and 7 deletions

View File

@ -1,5 +1,5 @@
subroutine msk144spd(cbig,n,ntol,nsuccess,msgreceived,fc,fret,tret)
! msk144 short-ping-decoder
subroutine msk144spd(cbig,n,ntol,nsuccess,msgreceived,fc,fret,tret,iavg_decoded)
! MSK144 short-ping-decoder
use timer_module, only: timer
@ -182,7 +182,7 @@ subroutine msk144spd(cbig,n,ntol,nsuccess,msgreceived,fc,fret,tret)
if( ndecodesuccess .gt. 0 ) then
tret=(nstart(icand)+NSPM/2)/fs
fret=fest
!write(*,*) icand, iav, ipk, is, tret, fret, msgreceived
iavg_decoded=iav
nsuccess=1
return
endif

View File

@ -24,6 +24,7 @@ subroutine mskrtd(id2,nutc0,tsec,ntol,nrxfreq,ndepth,line)
integer iavmask(8)
integer iavpatterns(8,NPATTERNS)
integer npkloc(10)
integer navgd(10)
real d(NFFT1)
real pow(8)
@ -36,6 +37,7 @@ subroutine mskrtd(id2,nutc0,tsec,ntol,nrxfreq,ndepth,line)
1,1,1,1,1,0,0,0, &
1,1,1,1,1,1,1,0/
data xmc/2.0,4.5,2.5,3.5/ !Used to label decode with time at center of averaging mask
data navgd/1,1,1,2,2,3,4,4,5,7/
!###### TEMPORARY
data mycall/'K9AN'/
data hiscall/'K1JT'/
@ -89,7 +91,7 @@ subroutine mskrtd(id2,nutc0,tsec,ntol,nrxfreq,ndepth,line)
! center a 3-frame analysis window and attempts to decode each of the
! 3 frames along with 2- and 3-frame averages.
np=8*NSPM
call msk144spd(cdat,np,ntol,nsuccess,msgreceived,fc,fest,tdec)
call msk144spd(cdat,np,ntol,nsuccess,msgreceived,fc,fest,tdec,iavg_decoded)
!############################################################
!##### hardwired for testing - need to bring in Sh box status
@ -110,6 +112,7 @@ subroutine mskrtd(id2,nutc0,tsec,ntol,nrxfreq,ndepth,line)
! Normal - try 4-frame averages
! Deep - try 4-, 5- and 7-frame averages.
npat=NPATTERNS
iavg_decoded=0
if( ndepth .eq. 1 ) npat=0
if( ndepth .eq. 2 ) npat=2
do iavg=1,npat
@ -130,7 +133,8 @@ subroutine mskrtd(id2,nutc0,tsec,ntol,nrxfreq,ndepth,line)
call msk144decodeframe(ct,msgreceived,ndecodesuccess)
if(ndecodesuccess .gt. 0) then
tdec=tsec+xmc(iavg)*tframe
decsym=' ^ '
decsym=' & '
iavg_decoded=iavg+6
goto 900
endif
enddo !Slicer dither
@ -165,8 +169,9 @@ subroutine mskrtd(id2,nutc0,tsec,ntol,nrxfreq,ndepth,line)
nsnrlast=nsnr
if( nsnr .lt. -8 ) nsnr=-8
if( nsnr .gt. 24 ) nsnr=24
write(line,1020) nutc0,nsnr,tdec,nint(fest),decsym,msgreceived,char(0)
1020 format(i6.6,i4,f5.1,i5,a3,a22,a1)
write(line,1020) nutc0,nsnr,tdec,nint(fest),decsym,msgreceived, &
navgd(iavg_decoded),char(0)
1020 format(i6.6,i4,f5.1,i5,a3,a22,i2,a1)
endif
999 tsec0=tsec