More into q65 module.

This commit is contained in:
Joe Taylor 2021-01-13 11:21:59 -05:00
parent df8ad7a8d9
commit 18100fd259
4 changed files with 9 additions and 9 deletions

View File

@ -62,7 +62,7 @@ contains
complex, allocatable :: c0(:) !Analytic signal, 6000 Sa/s complex, allocatable :: c0(:) !Analytic signal, 6000 Sa/s
idec=-1 idec=-1
mode65=2**nsubmode mode_q65=2**nsubmode
npts=ntrperiod*12000 npts=ntrperiod*12000
nfft1=ntrperiod*12000 nfft1=ntrperiod*12000
nfft2=ntrperiod*6000 nfft2=ntrperiod*6000
@ -89,7 +89,7 @@ contains
df1=12000.0/nfft1 df1=12000.0/nfft1
this%callback => callback this%callback => callback
nFadingModel=1 nFadingModel=1
ibwa=max(1,int(1.8*log(baud*mode65)) + 2) ibwa=max(1,int(1.8*log(baud*mode_q65)) + 2)
ibwb=min(10,ibwa+4) ibwb=min(10,ibwa+4)
if(iand(ndepth,3).eq.3) then if(iand(ndepth,3).eq.3) then
ibwa=max(1,ibwa-1) ibwa=max(1,ibwa-1)
@ -101,7 +101,7 @@ contains
dgen=0 dgen=0
call q65_enc(dgen,codewords) !Initialize the Q65 codec call q65_enc(dgen,codewords) !Initialize the Q65 codec
call timer('sync_q65',0) call timer('sync_q65',0)
call q65_sync(nutc,iwave,ntrperiod,mode65, & call q65_sync(nutc,iwave,ntrperiod, &
nfqso,ntol,ndepth,lclearave,emedelay,xdt,f0,snr1,width,dat4, & nfqso,ntol,ndepth,lclearave,emedelay,xdt,f0,snr1,width,dat4, &
snr2,idec) snr2,idec)
call timer('sync_q65',1) call timer('sync_q65',1)
@ -150,7 +150,7 @@ contains
endif endif
call timer('q65loops',0) call timer('q65loops',0)
call q65_loops(c00,npts/2,nsps/2,mode65,nsubmode,ndepth,jpk0, & call q65_loops(c00,npts/2,nsps/2,nsubmode,ndepth,jpk0, &
xdt,f0,iaptype,xdt1,f1,snr2,dat4,idec) xdt,f0,iaptype,xdt1,f1,snr2,dat4,idec)
call timer('q65loops',1) call timer('q65loops',1)
if(idec.gt.0) go to 100 !Successful decode, we're done if(idec.gt.0) go to 100 !Successful decode, we're done

View File

@ -9,7 +9,7 @@ module q65
integer,dimension(22) :: isync = (/1,9,12,13,15,22,23,26,27,33,35, & integer,dimension(22) :: isync = (/1,9,12,13,15,22,23,26,27,33,35, &
38,46,50,55,60,62,66,69,74,76,85/) 38,46,50,55,60,62,66,69,74,76,85/)
integer codewords(63,206) integer codewords(63,206)
integer navg,ibwa,ibwb,ncw,nsps integer navg,ibwa,ibwb,ncw,nsps,mode_q65
real,allocatable,save :: s1a(:,:) !Cumulative symbol spectra real,allocatable,save :: s1a(:,:) !Cumulative symbol spectra
real sync(85) !sync vector real sync(85) !sync vector

View File

@ -1,4 +1,4 @@
subroutine q65_loops(c00,npts2,nsps2,mode_q65,nsubmode,ndepth,jpk0, & subroutine q65_loops(c00,npts2,nsps2,nsubmode,ndepth,jpk0, &
xdt0,f0,iaptype,xdt1,f1,snr2,dat4,idec) xdt0,f0,iaptype,xdt1,f1,snr2,dat4,idec)
use packjt77 use packjt77

View File

@ -1,4 +1,4 @@
subroutine q65_sync(nutc,iwave,ntrperiod,mode_q65, & subroutine q65_sync(nutc,iwave,ntrperiod, &
nfqso,ntol,ndepth,lclearave,emedelay,xdt,f0,snr1,width,dat4,snr2,idec) nfqso,ntol,ndepth,lclearave,emedelay,xdt,f0,snr1,width,dat4,snr2,idec)
! Detect and align with the Q65 sync vector, returning time and frequency ! Detect and align with the Q65 sync vector, returning time and frequency
@ -102,7 +102,7 @@ subroutine q65_sync(nutc,iwave,ntrperiod,mode_q65, &
! Try list decoding via "Deep Likelihood". ! Try list decoding via "Deep Likelihood".
call timer('list_dec',0) call timer('list_dec',0)
call q65_dec_q3(df,s1,iz,jz,ia, & call q65_dec_q3(df,s1,iz,jz,ia, &
mode_q65,lag1,lag2,i0,j0,ccf,ccf1,ccf2,ia2,s3,LL,snr2, & lag1,lag2,i0,j0,ccf,ccf1,ccf2,ia2,s3,LL,snr2, &
dat4,idec,decoded) dat4,idec,decoded)
call timer('list_dec',1) call timer('list_dec',1)
endif endif
@ -215,7 +215,7 @@ subroutine q65_symspec(iwave,nmax,iz,jz,istep,nsmo,s1)
end subroutine q65_symspec end subroutine q65_symspec
subroutine q65_dec_q3(df,s1,iz,jz,ia, & subroutine q65_dec_q3(df,s1,iz,jz,ia, &
mode_q65,lag1,lag2,i0,j0,ccf,ccf1,ccf2,ia2,s3,LL,snr2, & lag1,lag2,i0,j0,ccf,ccf1,ccf2,ia2,s3,LL,snr2, &
dat4,idec,decoded) dat4,idec,decoded)
use q65 use q65