Tweaks to decrease UER for Sh messages.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7221 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Steven Franke 2016-10-23 17:37:44 +00:00
parent 0bc06e27e6
commit ad0ad1680b
4 changed files with 17 additions and 12 deletions

View File

@ -27,16 +27,17 @@ read(arg,*) ntrials
call getarg(4,arg)
read(arg,*) s
rate=real(K)/real(N)
n=32
!rate=real(K)/real(N)
! don't count hash bits as data bits
!rate=5.0/real(N)
rate=4.0/real(N)
write(*,*) "rate: ",rate
write(*,*) "niter= ",max_iterations," ndither= ",max_dither," s= ",s
allocate ( codeword(N), decoded(K), message(K) )
allocate ( lratio(N), rxdata(N), llr(N) )
msg="K1JT K9AN RRR "
msg="K1JT K9AN"
irpt=14
call hash(msg,22,ihash)
ihash=iand(ihash,4095) !12-bit hash
@ -52,8 +53,8 @@ write(*,'(32i1)') codeword
call init_random_seed()
write(*,*) "Eb/N0 SNR2500 ngood nundetected nbadhash"
do idb = -6, 14
db=idb/2.0-1.0
do idb = 0, 30
db=idb/2.0
sigma=1/sqrt( 2*rate*(10**(db/10.0)) )
ngood=0
nue=0

View File

@ -94,9 +94,12 @@ program msk144d2
do i=1,npts-7*1024+1,7*512
ichunk=id2(i:i+7*1024-1)
tsec=(i-1)/12000.0
call mskrtd(ichunk,nutc,tsec,ntol,nrxfreq,ndepth,mycall,hiscall,bShMsgs,line)
if( index(line,"^") .ne. 0 .or. index(line,"&") .ne. 0 ) then
write(*,*) line
tt=sum(float(abs(id2(i:i+7*512-1))))
if( tt .ne. 0.0 ) then
call mskrtd(ichunk,nutc,tsec,ntol,nrxfreq,ndepth,mycall,hiscall,bShMsgs,line)
if( index(line,"^") .ne. 0 .or. index(line,"&") .ne. 0 ) then
write(*,*) line
endif
endif
enddo
enddo

View File

@ -100,7 +100,8 @@ subroutine msk40decodeframe(c,mycall,hiscall,xsnr,msgreceived,nsuccess)
softbits=softbits/ssig
sigma=0.75
if(xsnr.lt.0.0) sigma=0.75-0.0875*xsnr
! if(xsnr.lt.0.0) sigma=0.75-0.0875*xsnr
if(xsnr.lt.0.0) sigma=0.75-0.11*xsnr
llr(1:32)=softbits(9:40)
llr=2.0*llr/(sigma*sigma)
@ -124,8 +125,8 @@ subroutine msk40decodeframe(c,mycall,hiscall,xsnr,msgreceived,nsuccess)
enddo
nrxrpt=iand(imsg,15)
nrxhash=(imsg-nrxrpt)/16
if(nhammd.le.4 .and. cord .lt. 0.65 .and. nrxhash.eq.ihash) then
!write(*,*) 'decodeframe ',nhammd,cord,nrxhash,nrxrpt,ihash,xsnr,sigma
if(nhammd.le.5 .and. cord .lt. 1.7 .and. nrxhash.eq.ihash) then
nsuccess=1
write(msgreceived,'(a1,a,1x,a,a1,1x,a4)') "<",trim(mycall), &
trim(hiscall),">",rpt(nrxrpt)

View File

@ -125,7 +125,7 @@ subroutine msk40spd(cbig,n,ntol,mycall,hiscall,nsuccess,msgreceived,fc,fret,tret
do ip=1,MAXCAND ! Find candidates
iloc=maxloc(detmet(1:nstep))
il=iloc(1)
if( (detmet(il) .lt. 3.0) ) exit
if( (detmet(il) .lt. 3.5) ) exit
if( abs(detfer(il)) .le. ntol ) then
ndet=ndet+1
nstart(ndet)=1+(il-1)*60+1
@ -179,10 +179,10 @@ subroutine msk40spd(cbig,n,ntol,mycall,hiscall,nsuccess,msgreceived,fc,fret,tret
call msk40decodeframe(ct,mycall,hiscall,xsnr,msgreceived,ndecodesuccess)
if( ndecodesuccess .gt. 0 ) then
!write(*,*) icand, iav, ipk, is, tret, fret, msgreceived
tret=(nstart(icand)+NSPM/2)/fs
fret=fest
navg=sum(navmask)
!write(*,*) icand, iav, ipk, is, tret, fret, msgreceived
nsuccess=1
return
endif