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 apmask1(78),apsymbols1(78)
integer apmask(13),apsymbols(13) integer apmask(13),apsymbols(13)
integer dgen(13) integer dgen(13)
integer codewords(63,64) integer codewords(63,206)
logical lapcqonly,unpk77_success logical lapcqonly,unpk77_success
complex, allocatable :: c00(:) !Analytic signal, 6000 Sa/s complex, allocatable :: c00(:) !Analytic signal, 6000 Sa/s
complex, allocatable :: c0(:) !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*2 iwave(0:nmax-1) !Raw data
integer isync(22) !Indices of sync symbols integer isync(22) !Indices of sync symbols
integer itone(85) integer itone(85)
integer codewords(63,64) integer codewords(63,206)
integer dat4(13) integer dat4(13)
integer ijpk(2) integer ijpk(2)
logical unpk77_success logical unpk77_success

View File

@ -1,9 +1,10 @@
subroutine q65_set_list(mycall,hiscall,hisgrid,codewords,ncw) subroutine q65_set_list(mycall,hiscall,hisgrid,codewords,ncw)
parameter (MAX_NCW=206)
character*12 mycall,hiscall character*12 mycall,hiscall
character*6 hisgrid character*6 hisgrid
character*37 msg0,msg,msgsent character*37 msg0,msg,msgsent
integer codewords(63,64) integer codewords(63,MAX_NCW)
integer itone(85) integer itone(85)
integer isync(22) 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/ 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 ncw=0
if(hiscall(1:1).eq. ' ') return if(hiscall(1:1).eq. ' ') return
ncw=58 ncw=MAX_NCW
msg0=trim(mycall)//' '//trim(hiscall) msg0=trim(mycall)//' '//trim(hiscall)
j0=len(trim(msg0))+2 j0=len(trim(msg0))+2
isnr0=-35
do i=1,ncw do i=1,ncw
msg=msg0 msg=msg0
if(i.eq.2) msg(j0:j0+2)='RRR' if(i.eq.2) msg(j0:j0+2)='RRR'
if(i.eq.3) msg(j0:j0+3)='RR73' if(i.eq.3) msg(j0:j0+3)='RR73'
if(i.eq.4) msg(j0:j0+1)='73' if(i.eq.4) msg(j0:j0+1)='73'
if(i.ge.5 .and. i.le.56) then if(i.eq.5) msg='CQ '//trim(hiscall)//' '//hisgrid(1:4)
isnr=isnr0 + (i-5)/2 if(i.eq.6) msg(j0:j0+3)=hisgrid(1:4)
if(iand(i,1).eq.1) write(msg(j0:j0+2),'(i3.2)') isnr if(i.ge.7 .and. i.le.206) then
if(iand(i,1).eq.0) write(msg(j0:j0+3),'("R",i3.2)') isnr 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 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) call genq65(msg,0,msgsent,itone,i3,n3)
i0=1 i0=1
j=0 j=0
@ -38,8 +43,8 @@ subroutine q65_set_list(mycall,hiscall,hisgrid,codewords,ncw)
j=j+1 j=j+1
codewords(j,i)=itone(k) - 1 codewords(j,i)=itone(k) - 1
enddo enddo
! write(*,3001) i,isnr,codewords(1:13,i),trim(msg) ! write(71,3001) i,isnr,codewords(1:13,i),trim(msg)
!3001 format(i2,2x,i3.2,2x,13i3,2x,a) !3001 format(i3,2x,i3.2,2x,13i3,2x,a)
enddo enddo
return return