Increase the Q65 list decodes to include reports -50 to +49 dB.

This commit is contained in:
Joe Taylor 2020-12-15 11:03:06 -05:00
parent 3160e63dc7
commit 841bbac56e
3 changed files with 18 additions and 13 deletions

View File

@ -56,7 +56,7 @@ contains
integer apmask1(78),apsymbols1(78)
integer apmask(13),apsymbols(13)
integer dgen(13)
integer codewords(63,64)
integer codewords(63,206)
logical lapcqonly,unpk77_success
complex, allocatable :: c00(:) !Analytic signal, 6000 Sa/s
complex, allocatable :: c0(:) !Analytic signal, 6000 Sa/s

View File

@ -20,7 +20,7 @@ subroutine q65_sync(nutc,iwave,nmax,mode_q65,codewords,ncw,nsps,nfqso,ntol, &
integer*2 iwave(0:nmax-1) !Raw data
integer isync(22) !Indices of sync symbols
integer itone(85)
integer codewords(63,64)
integer codewords(63,206)
integer dat4(13)
integer ijpk(2)
logical unpk77_success

View File

@ -1,9 +1,10 @@
subroutine q65_set_list(mycall,hiscall,hisgrid,codewords,ncw)
parameter (MAX_NCW=206)
character*12 mycall,hiscall
character*6 hisgrid
character*37 msg0,msg,msgsent
integer codewords(63,64)
integer codewords(63,MAX_NCW)
integer itone(85)
integer isync(22)
data isync/1,9,12,13,15,22,23,26,27,33,35,38,46,50,55,60,62,66,69,74,76,85/
@ -11,22 +12,26 @@ subroutine q65_set_list(mycall,hiscall,hisgrid,codewords,ncw)
ncw=0
if(hiscall(1:1).eq. ' ') return
ncw=58
ncw=MAX_NCW
msg0=trim(mycall)//' '//trim(hiscall)
j0=len(trim(msg0))+2
isnr0=-35
do i=1,ncw
msg=msg0
if(i.eq.2) msg(j0:j0+2)='RRR'
if(i.eq.3) msg(j0:j0+3)='RR73'
if(i.eq.4) msg(j0:j0+1)='73'
if(i.ge.5 .and. i.le.56) then
isnr=isnr0 + (i-5)/2
if(iand(i,1).eq.1) write(msg(j0:j0+2),'(i3.2)') isnr
if(iand(i,1).eq.0) write(msg(j0:j0+3),'("R",i3.2)') isnr
if(i.eq.5) msg='CQ '//trim(hiscall)//' '//hisgrid(1:4)
if(i.eq.6) msg(j0:j0+3)=hisgrid(1:4)
if(i.ge.7 .and. i.le.206) then
isnr = -50 + (i-7)/2
if(iand(i,1).eq.1) then
write(msg(j0:j0+2),'(i3.2)') isnr
if(msg(j0:j0).eq.' ') msg(j0:j0)='+'
else
write(msg(j0:j0+3),'("R",i3.2)') isnr
if(msg(j0+1:j0+1).eq.' ') msg(j0+1:j0+1)='+'
endif
endif
if(i.eq.57) msg='CQ '//trim(hiscall)//' '//hisgrid(1:4)
if(i.eq.58) msg(j0:j0+3)=hisgrid(1:4)
call genq65(msg,0,msgsent,itone,i3,n3)
i0=1
j=0
@ -38,8 +43,8 @@ subroutine q65_set_list(mycall,hiscall,hisgrid,codewords,ncw)
j=j+1
codewords(j,i)=itone(k) - 1
enddo
! write(*,3001) i,isnr,codewords(1:13,i),trim(msg)
!3001 format(i2,2x,i3.2,2x,13i3,2x,a)
! write(71,3001) i,isnr,codewords(1:13,i),trim(msg)
!3001 format(i3,2x,i3.2,2x,13i3,2x,a)
enddo
return