mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-26 14:18:38 -05:00
Speed up decoder by eliminating some complex multiples in sequence detection loop. Add timer calls for doppler spread calculation and sequence detection loop.
This commit is contained in:
parent
e3171d2142
commit
ad0540a027
@ -1,5 +1,6 @@
|
|||||||
subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,nsync_qual,badsync)
|
subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,nsync_qual,badsync)
|
||||||
|
|
||||||
|
use timer_module, only: timer
|
||||||
include 'fst4_params.f90'
|
include 'fst4_params.f90'
|
||||||
complex cd(0:NN*nss-1)
|
complex cd(0:NN*nss-1)
|
||||||
complex cs(0:3,NN)
|
complex cs(0:3,NN)
|
||||||
@ -84,6 +85,8 @@ subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,nsync_qual,
|
|||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
call timer('seqcorrs',0)
|
||||||
bitmetrics=0.0
|
bitmetrics=0.0
|
||||||
do nseq=1,nmax !Try coherent sequences of 1,2,3,4 or 1,2,4,8 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
|
||||||
@ -100,11 +103,14 @@ subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,nsync_qual,
|
|||||||
s2=0
|
s2=0
|
||||||
do i=0,nt-1
|
do i=0,nt-1
|
||||||
csum=0
|
csum=0
|
||||||
cterm=1
|
! cterm=1 ! hmod.ne.1
|
||||||
|
term=1
|
||||||
do j=0,nsym-1
|
do j=0,nsym-1
|
||||||
ntone=mod(i/4**(nsym-1-j),4)
|
ntone=mod(i/4**(nsym-1-j),4)
|
||||||
csum=csum+cs(graymap(ntone),ks+j)*cterm
|
csum=csum+cs(graymap(ntone),ks+j)*term
|
||||||
cterm=cterm*conjg(cp(graymap(ntone)))
|
term=-term
|
||||||
|
! csum=csum+cs(graymap(ntone),ks+j)*cterm ! hmod.ne.1
|
||||||
|
! cterm=cterm*conjg(cp(graymap(ntone))) ! hmod.ne.1
|
||||||
enddo
|
enddo
|
||||||
s2(i)=abs(csum)
|
s2(i)=abs(csum)
|
||||||
enddo
|
enddo
|
||||||
@ -122,6 +128,7 @@ subroutine get_fst4_bitmetrics(cd,nss,hmod,nmax,nhicoh,bitmetrics,s4,nsync_qual,
|
|||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
call timer('seqcorrs',1)
|
||||||
|
|
||||||
hbits=0
|
hbits=0
|
||||||
where(bitmetrics(:,1).ge.0) hbits=1
|
where(bitmetrics(:,1).ge.0) hbits=1
|
||||||
|
@ -455,10 +455,12 @@ contains
|
|||||||
endif
|
endif
|
||||||
inquire(file='plotspec',exist=ex)
|
inquire(file='plotspec',exist=ex)
|
||||||
fmid=-999.0
|
fmid=-999.0
|
||||||
|
call timer('dopsprd ',0)
|
||||||
if(ex) then
|
if(ex) then
|
||||||
call dopspread(itone,iwave,nsps,nmax,ndown,hmod, &
|
call dopspread(itone,iwave,nsps,nmax,ndown,hmod, &
|
||||||
isbest,fc_synced,fmid,w50)
|
isbest,fc_synced,fmid,w50)
|
||||||
endif
|
endif
|
||||||
|
call timer('dopsprd ',1)
|
||||||
xsig=0
|
xsig=0
|
||||||
do i=1,NN
|
do i=1,NN
|
||||||
xsig=xsig+s4(itone(i),i)
|
xsig=xsig+s4(itone(i),i)
|
||||||
|
Loading…
Reference in New Issue
Block a user