Add timer call for bit metric calculation. Improve some comments. Make fort.21 ntype parameter more informative.

This commit is contained in:
Steven Franke 2020-08-17 14:12:08 -05:00
parent b6d14853c4
commit 683cd08103
4 changed files with 8 additions and 6 deletions

View File

@ -141,7 +141,7 @@ subroutine decode240_101(llr,Keff,maxosd,norder,apmask,message101,cw,ntype,nhard
where(llr .ge. 0) hdec=1 where(llr .ge. 0) hdec=1
nxor=ieor(hdec,cw) nxor=ieor(hdec,cw)
dmin=sum(nxor*abs(llr)) dmin=sum(nxor*abs(llr))
ntype=2 ntype=1+nosd
return return
endif endif
enddo enddo

View File

@ -141,7 +141,7 @@ subroutine decode240_74(llr,Keff,maxosd,norder,apmask,message74,cw,ntype,nharder
where(llr .ge. 0) hdec=1 where(llr .ge. 0) hdec=1
nxor=ieor(hdec,cw) nxor=ieor(hdec,cw)
dmin=sum(nxor*abs(llr)) dmin=sum(nxor*abs(llr))
ntype=2 ntype=1+nosd
return return
endif endif
enddo enddo

View File

@ -84,7 +84,7 @@ subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,badsync)
endif endif
bitmetrics=0.0 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.1) nsym=1
if(nseq.eq.2) nsym=2 if(nseq.eq.2) nsym=2
if(nhicoh.eq.0) then if(nhicoh.eq.0) then

View File

@ -395,11 +395,13 @@ contains
if(is0.lt.0) cycle if(is0.lt.0) cycle
cframe=c2(is0:is0+160*nss-1) cframe=c2(is0:is0+160*nss-1)
bitmetrics=0 bitmetrics=0
call timer('bitmetrc',0)
if(hmod.eq.1) then if(hmod.eq.1) then
call get_fst4_bitmetrics(cframe,nss,hmod,nblock,nhicoh,bitmetrics,s4,badsync) call get_fst4_bitmetrics(cframe,nss,hmod,nblock,nhicoh,bitmetrics,s4,badsync)
else else
call get_fst4_bitmetrics2(cframe,nss,hmod,nblock,bitmetrics,s4,badsync) call get_fst4_bitmetrics2(cframe,nss,hmod,nblock,bitmetrics,s4,badsync)
endif endif
call timer('bitmetrc',1)
if(badsync) cycle if(badsync) cycle
hbits=0 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/)) 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/)) 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 nsync_qual=ns1+ns2+ns3+ns4+ns5
if(nsync_qual.lt. 46) cycle !### Value ?? ###
if(nsync_qual.lt. 46) cycle !### Value ?? ###
scalefac=2.83 scalefac=2.83
llra( 1: 60)=bitmetrics( 17: 76, 1) llra( 1: 60)=bitmetrics( 17: 76, 1)
llra( 61:120)=bitmetrics( 93:152, 1) llra( 61:120)=bitmetrics( 93:152, 1)
@ -768,7 +771,7 @@ contains
nnw=nint(48000.*nsps*2./fs) nnw=nint(48000.*nsps*2./fs)
allocate (s(nnw)) 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 do i=ina,inb ! noise analysis window includes signal analysis window
j0=nint(i*df2/df1) j0=nint(i*df2/df1)
do j=j0-ndh,j0+ndh do j=j0-ndh,j0+ndh
@ -785,7 +788,6 @@ contains
enddo enddo
call pctile(s2(ina+hmod*3:inb-hmod*3),inb-ina+1-hmod*6,30,base) call pctile(s2(ina+hmod*3:inb-hmod*3),inb-ina+1-hmod*6,30,base)
s2=s2/base !Normalize wrt noise level s2=s2/base !Normalize wrt noise level
ncand=0 ncand=0
candidates=0 candidates=0
if(ia.lt.3) ia=3 if(ia.lt.3) ia=3