First functional decoder for QRA01.

git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6805 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
Joe Taylor 2016-06-24 14:36:03 +00:00
parent 6a8e4a7d01
commit 529ad6eec9
6 changed files with 34 additions and 10 deletions

View File

@ -30,7 +30,7 @@ subroutine decode65a(dd,npts,newdat,nqd,f0,nflip,mode65,ntrials, &
! NB: cx has sample rate 12000*77125/672000 = 1378.125 Hz
! Check for a shorthand message
if(single_decode) then
if(single_decode .and. mode65.ne.101) then
call sh65(cx,n5,mode65,ntol,xdf,nspecial,sync2)
if(nspecial.gt.0) then
a=0.
@ -96,7 +96,7 @@ subroutine decode65a(dd,npts,newdat,nqd,f0,nflip,mode65,ntrials, &
qual0=-1.e30
minsmo=0
maxsmo=0
if(mode65.ge.2) then
if(mode65.ge.2 .and. mode65.ne.101) then
minsmo=nint(width/df)
maxsmo=2*minsmo
endif

View File

@ -84,7 +84,8 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
!$omp parallel sections num_threads(2) copyin(/timer_private/) shared(ndecoded) if(.true.) !iif() needed on Mac
!$omp section
if(params%nmode.eq.65 .or. (params%nmode.eq.(65+9) .and. params%ntxmode.eq.65)) then
if(params%nmode.eq.65 .or. params%nmode.eq.165 .or. &
(params%nmode.eq.(65+9) .and. params%ntxmode.eq.65)) then
! We're in JT65 mode, or should do JT65 first
if(newdat65) dd(1:npts65)=id2(1:npts65)
nf1=params%nfa
@ -274,8 +275,13 @@ contains
endif
endif
endif
write(*,1010) params%nutc,snr,dt,freq,csync,decoded,cflags
1010 format(i4.4,i4,f5.1,i5,1x,a2,1x,a22,1x,a3)
if(ft.ge.100) then
write(*,1009) params%nutc,snr,dt,freq,csync,decoded,ft-100
1009 format(i4.4,i4,f5.1,i5,1x,a2,1x,a22,i2)
else
write(*,1010) params%nutc,snr,dt,freq,csync,decoded,cflags
1010 format(i4.4,i4,f5.1,i5,1x,a2,1x,a22,1x,a3)
endif
endif
write(13,1012) params%nutc,nint(sync),snr,dt,float(freq),drift, &

View File

@ -61,6 +61,19 @@ subroutine extract(s3,nadd,mode65,ntrials,naggressive,ndepth,nflip, &
go to 1
endif
if(mode65.eq.101) then
call qra65_dec(s3,dat4,irc) !Decode
decoded=" "
if(irc.ge.0) then
call unpackmsg(dat4,decoded) !Unpack the user message
call fmtmsg(decoded,iz)
nft=100 + irc
else
dec=0
endif
go to 900
endif
mrs=mrsym
mrs2=mr2sym

View File

@ -163,7 +163,9 @@ contains
nvec=100
endif
mode65=2**nsubmode
if(nsubmode.le.8) mode65=2**nsubmode
if(nsubmode.eq.101) mode65=101
nflip=1
nqd=0
decoded=' '

View File

@ -8,9 +8,9 @@ program QRA65code
! Return codes from qra65_dec:
! irc=0 [? ? ?] AP0 (decoding with no a-priori information)
! irc=1 [CQ ? ?] AP27
! irc=2 [CQ ? ] AP44
! irc=2 [CQ ? ] AP42
! irc=3 [CALL ? ?] AP29
! irc=4 [CALL ? ] AP45
! irc=4 [CALL ? ] AP44
! irc=5 [CALL CALL ?] AP57
use packjt

View File

@ -820,7 +820,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
}
statusChanged();
//###
//### The following is temporary ###
{
QString t=m_config.my_callsign();
if(t!="IV3NWV" and t!="K1JT" and t!="K9AN" and t!="G4WJS"
@ -1991,7 +1991,9 @@ void MainWindow::decode() //decode()
dec_data.params.ntxmode=9;
if(m_modeTx=="JT65") dec_data.params.ntxmode=65;
dec_data.params.nmode=9;
if(m_mode=="JT65" or m_mode=="QRA65") dec_data.params.nmode=65;
if(m_mode=="JT65") dec_data.params.nmode=65;
if(m_mode=="QRA65") dec_data.params.nmode=165;
if(m_mode=="QRA65") dec_data.params.ntxmode=165;
if(m_mode=="JT9+JT65") dec_data.params.nmode=9+65; // = 74
if(m_mode=="JT4") {
dec_data.params.nmode=4;
@ -1999,6 +2001,7 @@ void MainWindow::decode() //decode()
}
dec_data.params.ntrperiod=m_TRperiod;
dec_data.params.nsubmode=m_nSubMode;
if(m_mode=="QRA65") dec_data.params.nsubmode=101;
dec_data.params.minw=0;
dec_data.params.nclearave=m_nclearave;
if(m_nclearave!=0) {