mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 13:30:52 -05:00 
			
		
		
		
	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:
		
							parent
							
								
									0bc06e27e6
								
							
						
					
					
						commit
						ad0ad1680b
					
				@ -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
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
 | 
			
		||||
@ -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)
 | 
			
		||||
 | 
			
		||||
@ -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 
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user