From ad0ad1680b420976e80fd0adc1176214cfd078de Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Sun, 23 Oct 2016 17:37:44 +0000 Subject: [PATCH] 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 --- lib/ldpcsim40.f90 | 11 ++++++----- lib/msk144d2.f90 | 9 ++++++--- lib/msk40decodeframe.f90 | 5 +++-- lib/msk40spd.f90 | 4 ++-- 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/lib/ldpcsim40.f90 b/lib/ldpcsim40.f90 index 27a51dd88..9860f7f10 100644 --- a/lib/ldpcsim40.f90 +++ b/lib/ldpcsim40.f90 @@ -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 diff --git a/lib/msk144d2.f90 b/lib/msk144d2.f90 index 51d974658..268ac2fed 100644 --- a/lib/msk144d2.f90 +++ b/lib/msk144d2.f90 @@ -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 diff --git a/lib/msk40decodeframe.f90 b/lib/msk40decodeframe.f90 index 79bd2a036..15e832c33 100644 --- a/lib/msk40decodeframe.f90 +++ b/lib/msk40decodeframe.f90 @@ -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) diff --git a/lib/msk40spd.f90 b/lib/msk40spd.f90 index 9a9e108f7..4dfef05e4 100644 --- a/lib/msk40spd.f90 +++ b/lib/msk40spd.f90 @@ -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