Fix an "off by one" times mode_q65 error, and some code cleanup.

This commit is contained in:
Joe Taylor 2021-01-11 15:09:47 -05:00
parent fe1aefe93a
commit cc2ca0f7e7
3 changed files with 3 additions and 17 deletions

View File

@ -148,14 +148,6 @@ contains
1060 format(13b6.6) 1060 format(13b6.6)
write(c78,1050) apsymbols1 write(c78,1050) apsymbols1
read(c78,1060) apsymbols read(c78,1060) apsymbols
if(iaptype.eq.4) then
do j=1,3
ng15=32401+j
write(c78(60:74),'(b15.15)') ng15
read(c78,1060) dgen
call q65_enc(dgen,codewords(1,j))
enddo
endif
endif endif
call timer('q65loops',0) call timer('q65loops',0)
@ -168,7 +160,6 @@ contains
! There was no single-transmission decode. ! There was no single-transmission decode.
if(iand(ndepth,16).eq.16) then if(iand(ndepth,16).eq.16) then
! Try for an average decode. ! Try for an average decode.
call timer('q65_avg2',0) call timer('q65_avg2',0)
call q65_avg2(ntrperiod,baud,nsubmode,nQSOprogress,lapcqonly, & call q65_avg2(ntrperiod,baud,nsubmode,nQSOprogress,lapcqonly, &
codewords,ncw,xdt,f0,snr2,dat4,idec) codewords,ncw,xdt,f0,snr2,dat4,idec)

View File

@ -12,14 +12,9 @@ subroutine q65_loops(c00,npts2,nsps,mode_q65,nsubmode,ndepth,jpk0, &
character decoded*37 character decoded*37
real a(3) !twkfreq params f,f1,f2 real a(3) !twkfreq params f,f1,f2
real s3(LN) !Symbol spectra real s3(LN) !Symbol spectra
integer cw4(63)
integer dat4(13) !Decoded message (as 13 six-bit integers) integer dat4(13) !Decoded message (as 13 six-bit integers)
integer nap(0:11) !AP return codes integer nap(0:11) !AP return codes
data nap/0,2,3,2,3,4,2,3,6,4,6,6/ data nap/0,2,3,2,3,4,2,3,6,4,6,6/
data cw4/0, 0, 0, 0, 8, 4,60,35,17,48,33,25,34,43,43,43,35,15,46,30, &
54,24,26,26,57,57,42, 3,23,11,49,49,16, 2, 6, 6,55,21,39,51, &
51,51,42,42,50,25,31,35,57,30, 1,54,54,10,10,22,44,58,57,40, &
21,21,19/
idec=-1 idec=-1
ircbest=9999 ircbest=9999

View File

@ -176,7 +176,7 @@ subroutine q65_sync(nutc,iwave,ntrperiod,mode_q65,codewords,ncw,nsps, &
n=n+1 n=n+1
if(j.ge.1 .and. j.le.jz) then if(j.ge.1 .and. j.le.jz) then
do i=0,LL-1 do i=0,LL-1
s3(i-64,n)=s1(i+i1,j) s3(i-64,n)=s1(i+i1,j) !Copy from s1 into s3
enddo enddo
endif endif
enddo enddo
@ -262,8 +262,8 @@ subroutine q65_sync(nutc,iwave,ntrperiod,mode_q65,codewords,ncw,nsps, &
ccf1=ccf(:,jpk)/rms ccf1=ccf(:,jpk)/rms
if(snr1.gt.10.0) ccf1=(10.0/snr1)*ccf1 if(snr1.gt.10.0) ccf1=(10.0/snr1)*ccf1
if(iand(ndepth,16).eq.16) then if(iand(ndepth,16).eq.16) then
! Fill s3() from s1() here, then call q65_avg(). ! Copy from s1 into s3, then call q65_avg().
i1=i0+ipk-64 i1=i0+ipk-64 + mode_q65
i2=i1+LL-1 i2=i1+LL-1
if(snr1.ge.2.8 .and. i1.ge.1 .and. i2.le.iz) then if(snr1.ge.2.8 .and. i1.ge.1 .and. i2.le.iz) then
j=j0+jpk-7 j=j0+jpk-7