mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-06-02 06:42:25 -04: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)
|
call getarg(4,arg)
|
||||||
read(arg,*) s
|
read(arg,*) s
|
||||||
|
|
||||||
rate=real(K)/real(N)
|
n=32
|
||||||
|
!rate=real(K)/real(N)
|
||||||
! don't count hash bits as data bits
|
! don't count hash bits as data bits
|
||||||
!rate=5.0/real(N)
|
rate=4.0/real(N)
|
||||||
write(*,*) "rate: ",rate
|
write(*,*) "rate: ",rate
|
||||||
write(*,*) "niter= ",max_iterations," ndither= ",max_dither," s= ",s
|
write(*,*) "niter= ",max_iterations," ndither= ",max_dither," s= ",s
|
||||||
|
|
||||||
allocate ( codeword(N), decoded(K), message(K) )
|
allocate ( codeword(N), decoded(K), message(K) )
|
||||||
allocate ( lratio(N), rxdata(N), llr(N) )
|
allocate ( lratio(N), rxdata(N), llr(N) )
|
||||||
|
|
||||||
msg="K1JT K9AN RRR "
|
msg="K1JT K9AN"
|
||||||
irpt=14
|
irpt=14
|
||||||
call hash(msg,22,ihash)
|
call hash(msg,22,ihash)
|
||||||
ihash=iand(ihash,4095) !12-bit hash
|
ihash=iand(ihash,4095) !12-bit hash
|
||||||
@ -52,8 +53,8 @@ write(*,'(32i1)') codeword
|
|||||||
call init_random_seed()
|
call init_random_seed()
|
||||||
|
|
||||||
write(*,*) "Eb/N0 SNR2500 ngood nundetected nbadhash"
|
write(*,*) "Eb/N0 SNR2500 ngood nundetected nbadhash"
|
||||||
do idb = -6, 14
|
do idb = 0, 30
|
||||||
db=idb/2.0-1.0
|
db=idb/2.0
|
||||||
sigma=1/sqrt( 2*rate*(10**(db/10.0)) )
|
sigma=1/sqrt( 2*rate*(10**(db/10.0)) )
|
||||||
ngood=0
|
ngood=0
|
||||||
nue=0
|
nue=0
|
||||||
|
@ -94,10 +94,13 @@ program msk144d2
|
|||||||
do i=1,npts-7*1024+1,7*512
|
do i=1,npts-7*1024+1,7*512
|
||||||
ichunk=id2(i:i+7*1024-1)
|
ichunk=id2(i:i+7*1024-1)
|
||||||
tsec=(i-1)/12000.0
|
tsec=(i-1)/12000.0
|
||||||
|
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)
|
call mskrtd(ichunk,nutc,tsec,ntol,nrxfreq,ndepth,mycall,hiscall,bShMsgs,line)
|
||||||
if( index(line,"^") .ne. 0 .or. index(line,"&") .ne. 0 ) then
|
if( index(line,"^") .ne. 0 .or. index(line,"&") .ne. 0 ) then
|
||||||
write(*,*) line
|
write(*,*) line
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
@ -100,7 +100,8 @@ subroutine msk40decodeframe(c,mycall,hiscall,xsnr,msgreceived,nsuccess)
|
|||||||
softbits=softbits/ssig
|
softbits=softbits/ssig
|
||||||
|
|
||||||
sigma=0.75
|
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(1:32)=softbits(9:40)
|
||||||
llr=2.0*llr/(sigma*sigma)
|
llr=2.0*llr/(sigma*sigma)
|
||||||
|
|
||||||
@ -124,8 +125,8 @@ subroutine msk40decodeframe(c,mycall,hiscall,xsnr,msgreceived,nsuccess)
|
|||||||
enddo
|
enddo
|
||||||
nrxrpt=iand(imsg,15)
|
nrxrpt=iand(imsg,15)
|
||||||
nrxhash=(imsg-nrxrpt)/16
|
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
|
!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
|
nsuccess=1
|
||||||
write(msgreceived,'(a1,a,1x,a,a1,1x,a4)') "<",trim(mycall), &
|
write(msgreceived,'(a1,a,1x,a,a1,1x,a4)') "<",trim(mycall), &
|
||||||
trim(hiscall),">",rpt(nrxrpt)
|
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
|
do ip=1,MAXCAND ! Find candidates
|
||||||
iloc=maxloc(detmet(1:nstep))
|
iloc=maxloc(detmet(1:nstep))
|
||||||
il=iloc(1)
|
il=iloc(1)
|
||||||
if( (detmet(il) .lt. 3.0) ) exit
|
if( (detmet(il) .lt. 3.5) ) exit
|
||||||
if( abs(detfer(il)) .le. ntol ) then
|
if( abs(detfer(il)) .le. ntol ) then
|
||||||
ndet=ndet+1
|
ndet=ndet+1
|
||||||
nstart(ndet)=1+(il-1)*60+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)
|
call msk40decodeframe(ct,mycall,hiscall,xsnr,msgreceived,ndecodesuccess)
|
||||||
|
|
||||||
if( ndecodesuccess .gt. 0 ) then
|
if( ndecodesuccess .gt. 0 ) then
|
||||||
|
!write(*,*) icand, iav, ipk, is, tret, fret, msgreceived
|
||||||
tret=(nstart(icand)+NSPM/2)/fs
|
tret=(nstart(icand)+NSPM/2)/fs
|
||||||
fret=fest
|
fret=fest
|
||||||
navg=sum(navmask)
|
navg=sum(navmask)
|
||||||
!write(*,*) icand, iav, ipk, is, tret, fret, msgreceived
|
|
||||||
nsuccess=1
|
nsuccess=1
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user