mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-05-24 10:22:26 -04:00
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:
parent
6a8e4a7d01
commit
529ad6eec9
@ -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
|
! NB: cx has sample rate 12000*77125/672000 = 1378.125 Hz
|
||||||
|
|
||||||
! Check for a shorthand message
|
! 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)
|
call sh65(cx,n5,mode65,ntol,xdf,nspecial,sync2)
|
||||||
if(nspecial.gt.0) then
|
if(nspecial.gt.0) then
|
||||||
a=0.
|
a=0.
|
||||||
@ -96,7 +96,7 @@ subroutine decode65a(dd,npts,newdat,nqd,f0,nflip,mode65,ntrials, &
|
|||||||
qual0=-1.e30
|
qual0=-1.e30
|
||||||
minsmo=0
|
minsmo=0
|
||||||
maxsmo=0
|
maxsmo=0
|
||||||
if(mode65.ge.2) then
|
if(mode65.ge.2 .and. mode65.ne.101) then
|
||||||
minsmo=nint(width/df)
|
minsmo=nint(width/df)
|
||||||
maxsmo=2*minsmo
|
maxsmo=2*minsmo
|
||||||
endif
|
endif
|
||||||
|
@ -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 parallel sections num_threads(2) copyin(/timer_private/) shared(ndecoded) if(.true.) !iif() needed on Mac
|
||||||
|
|
||||||
!$omp section
|
!$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
|
! We're in JT65 mode, or should do JT65 first
|
||||||
if(newdat65) dd(1:npts65)=id2(1:npts65)
|
if(newdat65) dd(1:npts65)=id2(1:npts65)
|
||||||
nf1=params%nfa
|
nf1=params%nfa
|
||||||
@ -274,8 +275,13 @@ contains
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
write(*,1010) params%nutc,snr,dt,freq,csync,decoded,cflags
|
if(ft.ge.100) then
|
||||||
1010 format(i4.4,i4,f5.1,i5,1x,a2,1x,a22,1x,a3)
|
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
|
endif
|
||||||
|
|
||||||
write(13,1012) params%nutc,nint(sync),snr,dt,float(freq),drift, &
|
write(13,1012) params%nutc,nint(sync),snr,dt,float(freq),drift, &
|
||||||
|
@ -61,6 +61,19 @@ subroutine extract(s3,nadd,mode65,ntrials,naggressive,ndepth,nflip, &
|
|||||||
go to 1
|
go to 1
|
||||||
endif
|
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
|
mrs=mrsym
|
||||||
mrs2=mr2sym
|
mrs2=mr2sym
|
||||||
|
|
||||||
|
@ -163,7 +163,9 @@ contains
|
|||||||
nvec=100
|
nvec=100
|
||||||
endif
|
endif
|
||||||
|
|
||||||
mode65=2**nsubmode
|
if(nsubmode.le.8) mode65=2**nsubmode
|
||||||
|
if(nsubmode.eq.101) mode65=101
|
||||||
|
|
||||||
nflip=1
|
nflip=1
|
||||||
nqd=0
|
nqd=0
|
||||||
decoded=' '
|
decoded=' '
|
||||||
|
@ -8,9 +8,9 @@ program QRA65code
|
|||||||
! Return codes from qra65_dec:
|
! Return codes from qra65_dec:
|
||||||
! irc=0 [? ? ?] AP0 (decoding with no a-priori information)
|
! irc=0 [? ? ?] AP0 (decoding with no a-priori information)
|
||||||
! irc=1 [CQ ? ?] AP27
|
! irc=1 [CQ ? ?] AP27
|
||||||
! irc=2 [CQ ? ] AP44
|
! irc=2 [CQ ? ] AP42
|
||||||
! irc=3 [CALL ? ?] AP29
|
! irc=3 [CALL ? ?] AP29
|
||||||
! irc=4 [CALL ? ] AP45
|
! irc=4 [CALL ? ] AP44
|
||||||
! irc=5 [CALL CALL ?] AP57
|
! irc=5 [CALL CALL ?] AP57
|
||||||
|
|
||||||
use packjt
|
use packjt
|
||||||
|
@ -820,7 +820,7 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
|||||||
}
|
}
|
||||||
|
|
||||||
statusChanged();
|
statusChanged();
|
||||||
//###
|
//### The following is temporary ###
|
||||||
{
|
{
|
||||||
QString t=m_config.my_callsign();
|
QString t=m_config.my_callsign();
|
||||||
if(t!="IV3NWV" and t!="K1JT" and t!="K9AN" and t!="G4WJS"
|
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;
|
dec_data.params.ntxmode=9;
|
||||||
if(m_modeTx=="JT65") dec_data.params.ntxmode=65;
|
if(m_modeTx=="JT65") dec_data.params.ntxmode=65;
|
||||||
dec_data.params.nmode=9;
|
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=="JT9+JT65") dec_data.params.nmode=9+65; // = 74
|
||||||
if(m_mode=="JT4") {
|
if(m_mode=="JT4") {
|
||||||
dec_data.params.nmode=4;
|
dec_data.params.nmode=4;
|
||||||
@ -1999,6 +2001,7 @@ void MainWindow::decode() //decode()
|
|||||||
}
|
}
|
||||||
dec_data.params.ntrperiod=m_TRperiod;
|
dec_data.params.ntrperiod=m_TRperiod;
|
||||||
dec_data.params.nsubmode=m_nSubMode;
|
dec_data.params.nsubmode=m_nSubMode;
|
||||||
|
if(m_mode=="QRA65") dec_data.params.nsubmode=101;
|
||||||
dec_data.params.minw=0;
|
dec_data.params.minw=0;
|
||||||
dec_data.params.nclearave=m_nclearave;
|
dec_data.params.nclearave=m_nclearave;
|
||||||
if(m_nclearave!=0) {
|
if(m_nclearave!=0) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user