Several minor tweaks to Q65 decoding.

This commit is contained in:
Joe Taylor 2020-12-15 09:32:24 -05:00
parent 99377e4c24
commit 3160e63dc7
3 changed files with 6 additions and 20 deletions

View File

@ -143,7 +143,7 @@ contains
nFadingModel,ndepth,jpk0,xdt,f0,iaptype,apmask,apsymbols, &
xdt1,f1,snr2,dat4,id2)
call timer('q65loops',1)
snr2=snr2 + db(6912.0/nsps)
! snr2=snr2 + db(6912.0/nsps)
if(id2.gt.0) exit
enddo

View File

@ -29,7 +29,7 @@ subroutine q65_loops(c00,npts2,nsps,mode,mode_q65,nsubmode,nFadingModel, &
idfmax=3
idtmax=3
ibwmin=1
ibwmin=0
ibwmax=2
maxdist=5
if(iand(ndepth,3).ge.2) then
@ -70,7 +70,8 @@ subroutine q65_loops(c00,npts2,nsps,mode,mode_q65,nsubmode,nFadingModel, &
ndist=ndf**2 + ndt**2 + ((nbw-2))**2
if(ndist.gt.maxdist) cycle
! b90=1.728**ibw
b90=3.0**nbw
b90=3.0**nbw !### Mult by ~baud/3.33 ??? ###
if(nbw.eq.0) b90=baud
if(b90.gt.230.0) cycle
call timer('q65_intr',0)
b90ts = b90/baud

View File

@ -11,7 +11,6 @@ subroutine spec64(c0,nsps,mode,mode64,jpk,s3,LL,NN)
data isync/1,9,12,13,15,22,23,26,27,33,35,38,46,50,55,60,62,66,69,74,76,85/
nfft=nsps
fac=1.0/nfft
if(mode.eq.64) then
do j=1,NN
@ -19,7 +18,7 @@ subroutine spec64(c0,nsps,mode,mode64,jpk,s3,LL,NN)
if(j.ge.33) jj=j+14 !Skip middle Costas array
ja=jpk + (jj-1)*nfft
jb=ja+nfft-1
cs(0:nfft-1)=fac*c0(ja:jb)
cs(0:nfft-1)=c0(ja:jb)
call four2a(cs,nfft,1,-1,1)
do ii=1,LL
i=ii-65
@ -38,7 +37,7 @@ subroutine spec64(c0,nsps,mode,mode64,jpk,s3,LL,NN)
j=j+1
ja=(k-1)*nsps + jpk
jb=ja+nsps-1
cs(0:nfft-1)=fac*c0(ja:jb)
cs(0:nfft-1)=c0(ja:jb)
call four2a(cs,nsps,1,-1,1) !c2c FFT to frequency
do ii=1,LL
i=ii-65+mode64 !mode64 = 1 2 4 8 16 for Q65 A B C D E
@ -64,19 +63,5 @@ subroutine spec64(c0,nsps,mode,mode64,jpk,s3,LL,NN)
s3(i,1:NN)=s3(i,1:NN)/(xbase(i)+0.001) !Apply frequency equalization
enddo
! print*,'a',LL,NN,jpk,mode,mode64
! df=6000.0/nfft
! do i=1,LL
! write(71,3071) i,i-65,i*df,(s3(i,j),j=1,4)
!3071 format(2i8,f10.3,4e12.3)
! enddo
! do j=1,NN
! ipk1=maxloc(s3(1:LL,j))
! m=ipk1(1)-65
! write(72,3072) j,m,m/2,m/4,m/8,m/16,m/32,m/64
!3072 format(8i7)
! enddo
return
end subroutine spec64