From 3160e63dc741b3289127690a40be67bf64f83faa Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Tue, 15 Dec 2020 09:32:24 -0500 Subject: [PATCH] Several minor tweaks to Q65 decoding. --- lib/q65_decode.f90 | 2 +- lib/qra/q65/q65_loops.f90 | 5 +++-- lib/spec64.f90 | 19 ++----------------- 3 files changed, 6 insertions(+), 20 deletions(-) diff --git a/lib/q65_decode.f90 b/lib/q65_decode.f90 index 0473b7119..6bfd28c27 100644 --- a/lib/q65_decode.f90 +++ b/lib/q65_decode.f90 @@ -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 diff --git a/lib/qra/q65/q65_loops.f90 b/lib/qra/q65/q65_loops.f90 index b440e076f..0f83d7275 100644 --- a/lib/qra/q65/q65_loops.f90 +++ b/lib/qra/q65/q65_loops.f90 @@ -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 diff --git a/lib/spec64.f90 b/lib/spec64.f90 index fe518d747..cf43994dc 100644 --- a/lib/spec64.f90 +++ b/lib/spec64.f90 @@ -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