From 42b6ef859c9f4587d6b99e5fab2611bd08647e51 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Tue, 12 Jul 2016 18:29:46 +0000 Subject: [PATCH] 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 --- lib/detectmsk144.f90 | 8 ++------ lib/genmsk144.f90 | 9 ++------- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/lib/detectmsk144.f90 b/lib/detectmsk144.f90 index 5705439b6..062085df8 100644 --- a/lib/detectmsk144.f90 +++ b/lib/detectmsk144.f90 @@ -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 diff --git a/lib/genmsk144.f90 b/lib/genmsk144.f90 index fe7afb737..949621393 100644 --- a/lib/genmsk144.f90 +++ b/lib/genmsk144.f90 @@ -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