Remove bit re-ordering in msk144.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6908 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Steven Franke 2016-07-12 18:29:46 +00:00
parent 211f8ba291
commit 42b6ef859c
2 changed files with 4 additions and 13 deletions

View File

@ -39,8 +39,7 @@ subroutine detectmsk144(cbig,n,pchk_file,lines,nmessages,nutc,ntol)
real tonespec(NFFT)
real*8 dt, df, fs, pi, twopi
real softbits(144)
real*8 unscrambledsoftbits(128)
real lratio(128)
real*8 lratio(128)
logical first
data first/.true./
data s8/0,1,1,1,0,0,1,0/
@ -352,12 +351,9 @@ subroutine detectmsk144(cbig,n,pchk_file,lines,nmessages,nutc,ntol)
lratio(49:128)=softbits(65:65+80-1)
lratio=exp(2.0*lratio/(sigma*sigma))
unscrambledsoftbits(1:127:2)=lratio(1:64)
unscrambledsoftbits(2:128:2)=lratio(65:128)
max_iterations=10
max_dither=1
call ldpc_decode(unscrambledsoftbits, decoded, &
call ldpc_decode(lratio, decoded, &
max_iterations, niterations, max_dither, ndither)
if( niterations .ge. 0.0 ) then

View File

@ -31,7 +31,6 @@ subroutine genmsk144(msg0,ichk,msgsent,i4tone,itype,pchk_file)
integer*1, target:: i1Msg8BitBytes(10) !80 bits represented in 10 bytes
integer*1 codeword(128) !Encoded bits before re-ordering
integer*1 msgbits(80) !72-bit message + 8-bit hash
integer*1 reorderedcodeword(128) !Odd bits first, then even
integer*1 bitseq(144) !Tone #s, data and sync (values 0-1)
integer*1 i1hash(4)
integer*1 b7(7)
@ -124,17 +123,13 @@ subroutine genmsk144(msg0,ichk,msgsent,i4tone,itype,pchk_file)
call ldpc_encode(msgbits,codeword)
! Reorder the bits.
reorderedcodeword(1:64)=codeword(1:127:2)
reorderedcodeword(65:128)=codeword(2:128:2)
!Create 144-bit channel vector:
!8-bit sync word + 48 bits + 8-bit sync word + 80 bits
bitseq=0
bitseq(1:8)=s8
bitseq(9:56)=reorderedcodeword(1:48)
bitseq(9:56)=codeword(1:48)
bitseq(57:64)=s8
bitseq(65:144)=reorderedcodeword(49:128)
bitseq(65:144)=codeword(49:128)
bitseq=2*bitseq-1
xq(1:6)=bitseq(1)*pp(7:12) !first bit is mapped to 1st half-symbol on q