From 683cd081032b2a5dd3b0f9e8495df538b971b464 Mon Sep 17 00:00:00 2001 From: Steven Franke Date: Mon, 17 Aug 2020 14:12:08 -0500 Subject: [PATCH] Add timer call for bit metric calculation. Improve some comments. Make fort.21 ntype parameter more informative. --- lib/fst4/decode240_101.f90 | 2 +- lib/fst4/decode240_74.f90 | 2 +- lib/fst4/get_fst4_bitmetrics.f90 | 2 +- lib/fst4_decode.f90 | 8 +++++--- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/fst4/decode240_101.f90 b/lib/fst4/decode240_101.f90 index 80e42eeb0..e924f00ec 100644 --- a/lib/fst4/decode240_101.f90 +++ b/lib/fst4/decode240_101.f90 @@ -141,7 +141,7 @@ subroutine decode240_101(llr,Keff,maxosd,norder,apmask,message101,cw,ntype,nhard where(llr .ge. 0) hdec=1 nxor=ieor(hdec,cw) dmin=sum(nxor*abs(llr)) - ntype=2 + ntype=1+nosd return endif enddo diff --git a/lib/fst4/decode240_74.f90 b/lib/fst4/decode240_74.f90 index 3f8a6a952..224a2860d 100644 --- a/lib/fst4/decode240_74.f90 +++ b/lib/fst4/decode240_74.f90 @@ -141,7 +141,7 @@ subroutine decode240_74(llr,Keff,maxosd,norder,apmask,message74,cw,ntype,nharder where(llr .ge. 0) hdec=1 nxor=ieor(hdec,cw) dmin=sum(nxor*abs(llr)) - ntype=2 + ntype=1+nosd return endif enddo diff --git a/lib/fst4/get_fst4_bitmetrics.f90 b/lib/fst4/get_fst4_bitmetrics.f90 index 9cf1e2470..f248171f0 100644 --- a/lib/fst4/get_fst4_bitmetrics.f90 +++ b/lib/fst4/get_fst4_bitmetrics.f90 @@ -84,7 +84,7 @@ subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,badsync) endif bitmetrics=0.0 - do nseq=1,nmax !Try coherent sequences of 1, 2, and 4 symbols + do nseq=1,nmax !Try coherent sequences of 1,2,3,4 or 1,2,4,8 symbols if(nseq.eq.1) nsym=1 if(nseq.eq.2) nsym=2 if(nhicoh.eq.0) then diff --git a/lib/fst4_decode.f90 b/lib/fst4_decode.f90 index e56fa27a8..9a6683fe4 100644 --- a/lib/fst4_decode.f90 +++ b/lib/fst4_decode.f90 @@ -395,11 +395,13 @@ contains if(is0.lt.0) cycle cframe=c2(is0:is0+160*nss-1) bitmetrics=0 + call timer('bitmetrc',0) if(hmod.eq.1) then call get_fst4_bitmetrics(cframe,nss,hmod,nblock,nhicoh,bitmetrics,s4,badsync) else call get_fst4_bitmetrics2(cframe,nss,hmod,nblock,bitmetrics,s4,badsync) endif + call timer('bitmetrc',1) if(badsync) cycle hbits=0 @@ -410,7 +412,8 @@ contains ns4=count(hbits(229:244).eq.(/1,1,1,0,0,1,0,0,1,0,1,1,0,0,0,1/)) ns5=count(hbits(305:320).eq.(/0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,0/)) nsync_qual=ns1+ns2+ns3+ns4+ns5 - if(nsync_qual.lt. 46) cycle !### Value ?? ### + + if(nsync_qual.lt. 46) cycle !### Value ?? ### scalefac=2.83 llra( 1: 60)=bitmetrics( 17: 76, 1) llra( 61:120)=bitmetrics( 93:152, 1) @@ -768,7 +771,7 @@ contains nnw=nint(48000.*nsps*2./fs) allocate (s(nnw)) - s=0. !Compute low-resloution power spectrum + s=0. !Compute low-resolution power spectrum do i=ina,inb ! noise analysis window includes signal analysis window j0=nint(i*df2/df1) do j=j0-ndh,j0+ndh @@ -785,7 +788,6 @@ contains enddo call pctile(s2(ina+hmod*3:inb-hmod*3),inb-ina+1-hmod*6,30,base) s2=s2/base !Normalize wrt noise level - ncand=0 candidates=0 if(ia.lt.3) ia=3