mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-22 04:11:16 -05:00
More work on Q65 message averaging.
This commit is contained in:
parent
844930fe75
commit
171e466389
@ -11,7 +11,7 @@ JT9+JT65 111010000001111000010000000000001000
|
||||
JT65 111010000000111000010000000000001000
|
||||
JT65/VHF 111110010000110110101100010000000000
|
||||
QRA64 111110010110110110000000001000000000
|
||||
Q65 111111010110110100011000001100000000
|
||||
Q65 111111010110110100111000001100000000
|
||||
ISCAT 100111000000000110000000000000000000
|
||||
MSK144 101111110100000000010001000000000000
|
||||
WSPR 000000000000000001010000000000000000
|
||||
|
@ -204,8 +204,8 @@ subroutine multimode_decoder(ss,id2,params,nfsample)
|
||||
call timer('dec_q65 ',0)
|
||||
call my_q65%decode(q65_decoded,id2,params%nutc,params%ntr, &
|
||||
params%nsubmode,params%nfqso,params%ntol,params%ndepth, &
|
||||
params%emedelay,mycall,hiscall,hisgrid,params%nQSOProgress, &
|
||||
ncontest,logical(params%lapcqonly))
|
||||
logical(params%nclearave),params%emedelay,mycall,hiscall, &
|
||||
hisgrid,params%nQSOProgress,ncontest,logical(params%lapcqonly))
|
||||
call timer('dec_q65 ',1)
|
||||
go to 800
|
||||
endif
|
||||
@ -523,8 +523,7 @@ contains
|
||||
write(13,1012) params%nutc,nint(sync),snr,dt,float(freq),drift, &
|
||||
decoded,ft,nsum,nsmo
|
||||
1012 format(i4.4,i4,i5,f6.2,f8.0,i4,3x,a22,' JT65',3i3)
|
||||
|
||||
100 call flush(6)
|
||||
call flush(6)
|
||||
|
||||
!$omp end critical(decode_results)
|
||||
select type(this)
|
||||
|
@ -25,8 +25,9 @@ module q65_decode
|
||||
|
||||
contains
|
||||
|
||||
subroutine decode(this,callback,iwave,nutc,ntrperiod,nsubmode,nfqso, &
|
||||
ntol,ndepth,emedelay,mycall,hiscall,hisgrid,nQSOprogress,ncontest,lapcqonly)
|
||||
subroutine decode(this,callback,iwave,nutc,ntrperiod,nsubmode,nfqso, &
|
||||
ntol,ndepth,lclearave,emedelay,mycall,hiscall,hisgrid,nQSOprogress, &
|
||||
ncontest,lapcqonly)
|
||||
|
||||
! Decodes Q65 signals
|
||||
! Input: iwave Raw data, i*2
|
||||
@ -57,7 +58,7 @@ contains
|
||||
integer apmask(13),apsymbols(13)
|
||||
integer dgen(13)
|
||||
integer codewords(63,206)
|
||||
logical lapcqonly,unpk77_success
|
||||
logical lclearave,lapcqonly,unpk77_success
|
||||
complex, allocatable :: c00(:) !Analytic signal, 6000 Sa/s
|
||||
complex, allocatable :: c0(:) !Analytic signal, 6000 Sa/s
|
||||
|
||||
@ -94,7 +95,7 @@ contains
|
||||
call q65_enc(dgen,codewords) !Initialize Q65
|
||||
call timer('sync_q65',0)
|
||||
call q65_sync(nutc,iwave,ntrperiod*12000,mode65,codewords,ncw,nsps, &
|
||||
nfqso,ntol,emedelay,xdt,f0,snr1,width,dat4,snr2,id1)
|
||||
nfqso,ntol,ndepth,lclearave,emedelay,xdt,f0,snr1,width,dat4,snr2,id1)
|
||||
call timer('sync_q65',1)
|
||||
if(id1.eq.1 .or. id1.ge.12) then
|
||||
xdt1=xdt
|
||||
|
@ -1,5 +1,5 @@
|
||||
subroutine q65_sync(nutc,iwave,nmax,mode_q65,codewords,ncw,nsps,nfqso,ntol, &
|
||||
emedelay,xdt,f0,snr1,width,dat4,snr2,id1)
|
||||
ndepth,lclearave,emedelay,xdt,f0,snr1,width,dat4,snr2,id1)
|
||||
|
||||
! Detect and align with the Q65 sync vector, returning time and frequency
|
||||
! offsets and SNR estimate.
|
||||
@ -24,7 +24,7 @@ subroutine q65_sync(nutc,iwave,nmax,mode_q65,codewords,ncw,nsps,nfqso,ntol, &
|
||||
integer dat4(13)
|
||||
integer ijpk(2)
|
||||
logical unpk77_success
|
||||
logical lavg
|
||||
logical lavg,lclearave
|
||||
character*77 c77,decoded*37
|
||||
real, allocatable :: s1(:,:) !Symbol spectra, 1/8-symbol steps
|
||||
real, allocatable :: s3(:,:) !Data-symbol energies s3(LL,63)
|
||||
@ -66,13 +66,16 @@ subroutine q65_sync(nutc,iwave,nmax,mode_q65,codewords,ncw,nsps,nfqso,ntol, &
|
||||
allocate(ccf(-ia2:ia2,-53:214))
|
||||
allocate(ccf1(-ia2:ia2))
|
||||
|
||||
if(lclearave) then
|
||||
s3avg=0.
|
||||
navg=0
|
||||
endif
|
||||
|
||||
if(sync(1).eq.99.0) then !Generate the sync vector
|
||||
sync=-22.0/63.0 !Sync tone OFF
|
||||
do k=1,22
|
||||
sync(isync(k))=1.0 !Sync tone ON
|
||||
enddo
|
||||
s3avg=0.
|
||||
navg=0
|
||||
endif
|
||||
|
||||
fac=1/32767.0
|
||||
@ -270,7 +273,7 @@ subroutine q65_sync(nutc,iwave,nmax,mode_q65,codewords,ncw,nsps,nfqso,ntol, &
|
||||
navg=0
|
||||
s3avg=0.
|
||||
if(lavg) go to 900
|
||||
elseif(snr1.ge.0.0) then
|
||||
elseif(iand(ndepth,16).eq.16) then
|
||||
s3avg=s3avg+s3
|
||||
navg=navg+1
|
||||
write(71,3071) nutc,navg,xdt,f0,snr1
|
||||
|
@ -6388,7 +6388,7 @@ void MainWindow::on_actionQ65_triggered()
|
||||
m_wideGraph->setTxFreq(ui->TxFreqSpinBox->value());
|
||||
switch_mode (Modes::Q65);
|
||||
// 012345678901234567890123456789012345
|
||||
displayWidgets(nWidgets("111111010110110100011000000100000000"));
|
||||
displayWidgets(nWidgets("111111010110110100111000000100000000"));
|
||||
statusChanged();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user