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 tonespec(NFFT)
real*8 dt, df, fs, pi, twopi real*8 dt, df, fs, pi, twopi
real softbits(144) real softbits(144)
real*8 unscrambledsoftbits(128) real*8 lratio(128)
real lratio(128)
logical first logical first
data first/.true./ data first/.true./
data s8/0,1,1,1,0,0,1,0/ 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(49:128)=softbits(65:65+80-1)
lratio=exp(2.0*lratio/(sigma*sigma)) 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_iterations=10
max_dither=1 max_dither=1
call ldpc_decode(unscrambledsoftbits, decoded, & call ldpc_decode(lratio, decoded, &
max_iterations, niterations, max_dither, ndither) max_iterations, niterations, max_dither, ndither)
if( niterations .ge. 0.0 ) then 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, target:: i1Msg8BitBytes(10) !80 bits represented in 10 bytes
integer*1 codeword(128) !Encoded bits before re-ordering integer*1 codeword(128) !Encoded bits before re-ordering
integer*1 msgbits(80) !72-bit message + 8-bit hash 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 bitseq(144) !Tone #s, data and sync (values 0-1)
integer*1 i1hash(4) integer*1 i1hash(4)
integer*1 b7(7) integer*1 b7(7)
@ -124,17 +123,13 @@ subroutine genmsk144(msg0,ichk,msgsent,i4tone,itype,pchk_file)
call ldpc_encode(msgbits,codeword) 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: !Create 144-bit channel vector:
!8-bit sync word + 48 bits + 8-bit sync word + 80 bits !8-bit sync word + 48 bits + 8-bit sync word + 80 bits
bitseq=0 bitseq=0
bitseq(1:8)=s8 bitseq(1:8)=s8
bitseq(9:56)=reorderedcodeword(1:48) bitseq(9:56)=codeword(1:48)
bitseq(57:64)=s8 bitseq(57:64)=s8
bitseq(65:144)=reorderedcodeword(49:128) bitseq(65:144)=codeword(49:128)
bitseq=2*bitseq-1 bitseq=2*bitseq-1
xq(1:6)=bitseq(1)*pp(7:12) !first bit is mapped to 1st half-symbol on q xq(1:6)=bitseq(1)*pp(7:12) !first bit is mapped to 1st half-symbol on q