From 3b3288afa3e1252c3c0c8aa773afdd2b2c5039d4 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Thu, 25 Feb 2016 03:04:07 +0000 Subject: [PATCH] msksim.f90 works, but needs more work. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6493 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- lib/ldpc/Makefile.msk_osx | 2 +- lib/ldpc/dec.c | 30 +++++++++-------- lib/ldpc/enc.c | 9 +++++ lib/ldpc/msksim.f90 | 69 +++++++++++++++++++++++++++++---------- lib/ldpc/rcode.c | 16 +++------ 5 files changed, 83 insertions(+), 43 deletions(-) diff --git a/lib/ldpc/Makefile.msk_osx b/lib/ldpc/Makefile.msk_osx index 265871ec6..c5a475bb7 100644 --- a/lib/ldpc/Makefile.msk_osx +++ b/lib/ldpc/Makefile.msk_osx @@ -27,7 +27,7 @@ all: msksim OBJS = msksim.o alloc.o rcode.o channel.o dec.o enc.o \ intio.o blockio.o check.o open.o mod2dense.o \ - mod2sparse.o mod2convert.o distrib.o rand.o + mod2sparse.o mod2convert.o distrib.o rand.o gran.o msksim: $(OBJS) $(FC) -o msksim $(OBJS) diff --git a/lib/ldpc/dec.c b/lib/ldpc/dec.c index 2a5e21479..431518d8f 100755 --- a/lib/ldpc/dec.c +++ b/lib/ldpc/dec.c @@ -384,19 +384,23 @@ void iterprp } } -void ldpc_decode_ ( double *lratio, char *dblk, char *pchk, double *bprb ) +void ldpc_decode_ ( double lratio[], char decoded[], int *max_iterations, int *niterations) { - int i, n; - n = prprp_decode ( H, lratio, dblk, pchk, bprb ); - printf("in ldpc_decode n=%d\n"); - printf("dblk: "); - for( i=0; i<128; i++) { - printf("%d",dblk[i]); + int i, j, valid; + char dblk[N],pchk[M]; + double bprb[N]; + + max_iter=*max_iterations; + *niterations = prprp_decode ( H, lratio, dblk, pchk, bprb ); + valid = check( H, dblk, pchk )==0; + if( !valid ) { + *niterations=-1; + }; + + j=0; + for( i=M; i