mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-05-24 10:22:26 -04:00
Modify genqra64.f90 so it can also be used for a "QRA66" mode.
This commit is contained in:
parent
846b0b6ed8
commit
ee24f03d09
@ -4,15 +4,17 @@ subroutine genqra64(msg0,ichk,msgsent,itone,itype)
|
|||||||
|
|
||||||
use packjt
|
use packjt
|
||||||
character*22 msg0
|
character*22 msg0
|
||||||
character*22 message !Message to be generated
|
character*22 message !Message to be generated
|
||||||
character*22 msgsent !Message as it will be received
|
character*22 msgsent !Message as it will be received
|
||||||
integer itone(84)
|
integer itone(85) !QRA64 uses only 84
|
||||||
character*3 cok !' ' or 'OOO'
|
character*3 cok !' ' or 'OOO'
|
||||||
logical old_qra_sync
|
logical old_qra_sync
|
||||||
integer dgen(13)
|
integer dgen(13)
|
||||||
integer sent(63)
|
integer sent(63)
|
||||||
|
integer b11(11) !Barker 11 code
|
||||||
integer icos7(0:6)
|
integer icos7(0:6)
|
||||||
data icos7/2,5,6,0,4,1,3/ !Defines a 7x7 Costas array
|
data icos7/2,5,6,0,4,1,3/ !Defines a 7x7 Costas array
|
||||||
|
data b11/1,1,1,0,0,0,1,0,0,1,0/ !Barker 11 definition
|
||||||
save
|
save
|
||||||
|
|
||||||
if(msg0(1:1).eq.'@') then
|
if(msg0(1:1).eq.'@') then
|
||||||
@ -39,18 +41,31 @@ subroutine genqra64(msg0,ichk,msgsent,itone,itype)
|
|||||||
call chkmsg(message,cok,nspecial,flip)
|
call chkmsg(message,cok,nspecial,flip)
|
||||||
call packmsg(message,dgen,itype) !Pack message into 72 bits
|
call packmsg(message,dgen,itype) !Pack message into 72 bits
|
||||||
call unpackmsg(dgen,msgsent) !Unpack to get message sent
|
call unpackmsg(dgen,msgsent) !Unpack to get message sent
|
||||||
if(ichk.ne.0) go to 999 !Return if checking only
|
if(ichk.eq.1) go to 999 !Return if checking only
|
||||||
call qra64_enc(dgen,sent) !Encode using QRA64
|
call qra64_enc(dgen,sent) !Encode using QRA64
|
||||||
|
|
||||||
nsync=10
|
if(ichk.eq.66) then
|
||||||
inquire(file='old_qra_sync',exist=old_qra_sync)
|
! Experimental QRA66 (FST66?) mode
|
||||||
if(old_qra_sync) nsync=1
|
j=0
|
||||||
|
k=0
|
||||||
itone(1:7)=nsync*icos7 !Insert 7x7 Costas array in 3 places
|
do i=1,85
|
||||||
itone(8:39)=sent(1:32)
|
if(mod(i,4).eq.1) then
|
||||||
itone(40:46)=nsync*icos7
|
j=j+1 !Index for next sync symbol
|
||||||
itone(47:77)=sent(33:63)
|
if(j.eq.12) j=1
|
||||||
itone(78:84)=nsync*icos7
|
itone(i)=b11(j) !Insert a sync symbol
|
||||||
|
else
|
||||||
|
k=k+1
|
||||||
|
itone(i)=sent(k) + 2
|
||||||
|
endif
|
||||||
|
enddo
|
||||||
|
else
|
||||||
|
! Original QRA64 mode
|
||||||
|
itone(1:7)=10*icos7 !Insert 7x7 Costas array in 3 places
|
||||||
|
itone(8:39)=sent(1:32)
|
||||||
|
itone(40:46)=10*icos7
|
||||||
|
itone(47:77)=sent(33:63)
|
||||||
|
itone(78:84)=10*icos7
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
999 return
|
999 return
|
||||||
|
Loading…
x
Reference in New Issue
Block a user