mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-25 21:58:38 -05:00
More tweaks to the Fast/Normal/Deep parameters.
This commit is contained in:
parent
0765a1cc06
commit
94c31572d2
@ -6,10 +6,18 @@ RxFreq: 1000/10
|
|||||||
Commit No_AP MyCall BothCalls
|
Commit No_AP MyCall BothCalls
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
ef4787: 3 10 6 14 30 33
|
ef4787: 3 10 6 14 30 33
|
||||||
|
ef4787: 1 3 8 85
|
||||||
|
ef4787: 3 3 8* 286
|
||||||
ada5a6: 3 6 6 10 29 36
|
ada5a6: 3 6 6 10 29 36
|
||||||
10f574: 2 7 97.6 6 10 95.4 21 33 80.7
|
10f574: 2 7 97.6 6 10 95.4 21 33 80.7
|
||||||
b8ea4c: 2 7 100.5 6 10 96.9 21 33 81.0
|
b8ea4c: 2 7 100.5 6 10 96.9 21 33 81.0
|
||||||
a6779e: 3 1 6 95.2 6 11 90.1 21 33 67.3
|
a6779e: 3 1 6 95.2 6 11 90.1 21 33 67.3
|
||||||
|
767f53: 1 1 5 116 6 10 85 21 32 59
|
||||||
|
767f53: 2 2 7 301 6 10 241 21 33 168
|
||||||
|
767f53: 3 2 7 334 6 10 283 21 33 194
|
||||||
|
0765a1: 1 1 5 61 6 10 56 21 33 39
|
||||||
|
0765a1: 2 2 7 205 6 12 183 21 34 126
|
||||||
|
0765a1: 3 2 7 234 6 12 209 21 34 152
|
||||||
|
|
||||||
Mode: Q65-30A
|
Mode: Q65-30A
|
||||||
Data: 30A_N0AN_6m_Ionoscatter (69 files, 6m ionoscatter)
|
Data: 30A_N0AN_6m_Ionoscatter (69 files, 6m ionoscatter)
|
||||||
|
@ -112,14 +112,17 @@ contains
|
|||||||
baud=12000.0/nsps
|
baud=12000.0/nsps
|
||||||
this%callback => callback
|
this%callback => callback
|
||||||
nFadingModel=1
|
nFadingModel=1
|
||||||
|
maxiters=50
|
||||||
ibwa=max(1,int(1.8*log(baud*mode_q65)) + 1)
|
ibwa=max(1,int(1.8*log(baud*mode_q65)) + 1)
|
||||||
ibwb=min(10,ibwa+3)
|
ibwb=min(10,ibwa+3)
|
||||||
if(iand(ndepth,3).ge.2) then
|
if(iand(ndepth,3).ge.2) then
|
||||||
ibwa=max(1,int(1.8*log(baud*mode_q65)) + 1)
|
ibwa=max(1,int(1.8*log(baud*mode_q65)) + 1)
|
||||||
ibwb=min(10,ibwa+5)
|
ibwb=min(10,ibwa+5)
|
||||||
|
maxiters=75
|
||||||
else if(iand(ndepth,3).eq.3) then
|
else if(iand(ndepth,3).eq.3) then
|
||||||
ibwa=max(1,ibwa-1)
|
ibwa=max(1,ibwa-1)
|
||||||
ibwb=min(10,ibwb+1)
|
ibwb=min(10,ibwb+1)
|
||||||
|
maxiters=100
|
||||||
endif
|
endif
|
||||||
|
|
||||||
! Generate codewords for full-AP list decoding
|
! Generate codewords for full-AP list decoding
|
||||||
@ -241,12 +244,12 @@ contains
|
|||||||
if(c6.eq.' ') c6='<b> '
|
if(c6.eq.' ') c6='<b> '
|
||||||
c4=hisgrid(1:4)
|
c4=hisgrid(1:4)
|
||||||
if(c4.eq.' ') c4='<b> '
|
if(c4.eq.' ') c4='<b> '
|
||||||
fmt='(i6.4,1x,a4,5i2,5i3,f6.2,f7.1,f7.2,f6.1,f6.2,'// &
|
fmt='(i6.4,1x,a4,4i2,6i3,i4,f6.2,f7.1,f6.1,f6.2,'// &
|
||||||
'1x,a6,1x,a6,1x,a4,1x,a)'
|
'1x,a6,1x,a6,1x,a4,1x,a)'
|
||||||
if(ntrperiod.le.30) fmt(5:5)='6'
|
if(ntrperiod.le.30) fmt(5:5)='6'
|
||||||
if(idec.eq.3) nrc=0
|
if(idec.eq.3) nrc=0
|
||||||
write(22,fmt) nutc,cmode,nQSOprogress,idec,ndist,idf,idt,ibw, &
|
write(22,fmt) nutc,cmode,nQSOprogress,idec,idf,idt,ibw,ndist, &
|
||||||
nused,icand,ncand,nrc,xdt,f0,db(snr1),snr2,tdecode, &
|
nused,icand,ncand,nrc,ndepth,xdt,f0,snr2,tdecode, &
|
||||||
mycall(1:6),c6,c4,trim(decoded)
|
mycall(1:6),c6,c4,trim(decoded)
|
||||||
close(22)
|
close(22)
|
||||||
endif
|
endif
|
||||||
@ -323,13 +326,12 @@ contains
|
|||||||
if(c6.eq.' ') c6='<b> '
|
if(c6.eq.' ') c6='<b> '
|
||||||
c4=hisgrid(1:4)
|
c4=hisgrid(1:4)
|
||||||
if(c4.eq.' ') c4='<b> '
|
if(c4.eq.' ') c4='<b> '
|
||||||
fmt='(i6.4,1x,a4,5i2,5i3,f6.2,f7.1,f7.2,f6.1,f6.2,'// &
|
fmt='(i6.4,1x,a4,4i2,6i3,i4,f6.2,f7.1,f6.1,f6.2,'// &
|
||||||
'1x,a6,1x,a6,1x,a4,1x,a)'
|
'1x,a6,1x,a6,1x,a4,1x,a)'
|
||||||
|
|
||||||
if(ntrperiod.le.30) fmt(5:5)='6'
|
if(ntrperiod.le.30) fmt(5:5)='6'
|
||||||
if(idec.eq.3) nrc=0
|
if(idec.eq.3) nrc=0
|
||||||
write(22,fmt) nutc,cmode,nQSOprogress,idec,ndist,idf,idt,ibw, &
|
write(22,fmt) nutc,cmode,nQSOprogress,idec,idf,idt,ibw,ndist, &
|
||||||
nused,icand,ncand,nrc,xdt,f0,db(snr1),snr2,tdecode, &
|
nused,icand,ncand,nrc,ndepth,xdt,f0,snr2,tdecode, &
|
||||||
mycall(1:6),c6,c4,trim(decoded)
|
mycall(1:6),c6,c4,trim(decoded)
|
||||||
close(22)
|
close(22)
|
||||||
endif
|
endif
|
||||||
|
@ -522,7 +522,9 @@ int q65_esnodb_fastfading(
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int q65_decode(q65_codec_ds *pCodec, int* pDecodedCodeword, int *pDecodedMsg, const float *pIntrinsics, const int *pAPMask, const int *pAPSymbols)
|
int q65_decode(q65_codec_ds *pCodec, int* pDecodedCodeword, int *pDecodedMsg,
|
||||||
|
const float *pIntrinsics, const int *pAPMask,
|
||||||
|
const int *pAPSymbols, const int maxiters)
|
||||||
{
|
{
|
||||||
const qracode *pQraCode;
|
const qracode *pQraCode;
|
||||||
float *ix, *ex;
|
float *ix, *ex;
|
||||||
@ -579,7 +581,7 @@ int q65_decode(q65_codec_ds *pCodec, int* pDecodedCodeword, int *pDecodedMsg, co
|
|||||||
rc = qra_extrinsic( pQraCode,
|
rc = qra_extrinsic( pQraCode,
|
||||||
ex,
|
ex,
|
||||||
ix,
|
ix,
|
||||||
100,
|
maxiters,
|
||||||
pCodec->qra_v2cmsg,
|
pCodec->qra_v2cmsg,
|
||||||
pCodec->qra_c2vmsg);
|
pCodec->qra_c2vmsg);
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ module q65
|
|||||||
38,46,50,55,60,62,66,69,74,76,85/)
|
38,46,50,55,60,62,66,69,74,76,85/)
|
||||||
integer codewords(63,206)
|
integer codewords(63,206)
|
||||||
integer ibwa,ibwb,ncw,nsps,mode_q65,nfa,nfb
|
integer ibwa,ibwb,ncw,nsps,mode_q65,nfa,nfb
|
||||||
integer idf,idt,ibw,ndist
|
integer idf,idt,ibw,ndist,maxiters
|
||||||
integer istep,nsmo,lag1,lag2,npasses,nused,iseq,ncand,nrc
|
integer istep,nsmo,lag1,lag2,npasses,nused,iseq,ncand,nrc
|
||||||
integer i0,j0
|
integer i0,j0
|
||||||
integer navg(0:1)
|
integer navg(0:1)
|
||||||
@ -516,7 +516,7 @@ subroutine q65_dec2(s3,nsubmode,b90ts,esnodb,irc,dat4,decoded)
|
|||||||
nFadingModel=1
|
nFadingModel=1
|
||||||
decoded=' '
|
decoded=' '
|
||||||
call q65_intrinsics_ff(s3,nsubmode,b90ts,nFadingModel,s3prob)
|
call q65_intrinsics_ff(s3,nsubmode,b90ts,nFadingModel,s3prob)
|
||||||
call q65_dec(s3,s3prob,APmask,APsymbols,esnodb,dat4,irc)
|
call q65_dec(s3,s3prob,APmask,APsymbols,maxiters,esnodb,dat4,irc)
|
||||||
if(sum(dat4).le.0) irc=-2
|
if(sum(dat4).le.0) irc=-2
|
||||||
nrc=irc
|
nrc=irc
|
||||||
if(irc.ge.0) then
|
if(irc.ge.0) then
|
||||||
|
@ -75,11 +75,12 @@ int q65_intrinsics_fastfading(q65_codec_ds *pCodec,
|
|||||||
|
|
||||||
|
|
||||||
int q65_decode(q65_codec_ds *pCodec,
|
int q65_decode(q65_codec_ds *pCodec,
|
||||||
int* pDecodedCodeword,
|
int* pDecodedCodeword,
|
||||||
int *pDecodedMsg,
|
int *pDecodedMsg,
|
||||||
const float *pIntrinsics,
|
const float *pIntrinsics,
|
||||||
const int *pAPMask,
|
const int *pAPMask,
|
||||||
const int *pAPSymbols);
|
const int *pAPSymbols,
|
||||||
|
const int maxiters);
|
||||||
|
|
||||||
int q65_decode_fullaplist(q65_codec_ds *codec,
|
int q65_decode_fullaplist(q65_codec_ds *codec,
|
||||||
int *ydec,
|
int *ydec,
|
||||||
|
@ -26,13 +26,13 @@ subroutine q65_loops(c00,npts2,nsps2,nsubmode,ndepth,jpk0, &
|
|||||||
idfmax=3
|
idfmax=3
|
||||||
idtmax=3
|
idtmax=3
|
||||||
ibw0=(ibwa+ibwb)/2
|
ibw0=(ibwa+ibwb)/2
|
||||||
maxdist=2
|
maxdist=5
|
||||||
if(iand(ndepth,3).ge.2) then
|
if(iand(ndepth,3).ge.2) then
|
||||||
idfmax=5
|
idfmax=5
|
||||||
idtmax=5
|
idtmax=5
|
||||||
maxdist=3
|
maxdist=10
|
||||||
endif
|
endif
|
||||||
if(iand(ndepth,3).eq.3) maxdist=4
|
if(iand(ndepth,3).eq.3) maxdist=15
|
||||||
|
|
||||||
LL=64*(mode_q65+2)
|
LL=64*(mode_q65+2)
|
||||||
napmin=99
|
napmin=99
|
||||||
@ -58,7 +58,7 @@ subroutine q65_loops(c00,npts2,nsps2,nsubmode,ndepth,jpk0, &
|
|||||||
where(s3(1:LL*NN)>s3lim) s3(1:LL*NN)=s3lim
|
where(s3(1:LL*NN)>s3lim) s3(1:LL*NN)=s3lim
|
||||||
call q65_bzap(s3,LL) !Zap birdies
|
call q65_bzap(s3,LL) !Zap birdies
|
||||||
do ibw=ibwa,ibwb
|
do ibw=ibwa,ibwb
|
||||||
ndist=sqrt(float(ndf**2 + ndt**2 + (ibw-ibw0)**2))
|
ndist=ndf**2 + ndt**2 + (ibw-ibw0)**2
|
||||||
if(ndist.gt.maxdist) cycle
|
if(ndist.gt.maxdist) cycle
|
||||||
b90=1.72**ibw
|
b90=1.72**ibw
|
||||||
if(b90.gt.345.0) cycle
|
if(b90.gt.345.0) cycle
|
||||||
|
@ -77,7 +77,7 @@ void q65_intrinsics_ff_(float s3[], int* submode, float* B90Ts,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void q65_dec_(float s3[], float s3prob[], int APmask[], int APsymbols[],
|
void q65_dec_(float s3[], float s3prob[], int APmask[], int APsymbols[],
|
||||||
float* esnodb0, int xdec[], int* rc0)
|
int* maxiters0, float* esnodb0, int xdec[], int* rc0)
|
||||||
{
|
{
|
||||||
|
|
||||||
/* Input: s3[LL,NN] Symbol spectra
|
/* Input: s3[LL,NN] Symbol spectra
|
||||||
@ -93,8 +93,9 @@ void q65_dec_(float s3[], float s3prob[], int APmask[], int APsymbols[],
|
|||||||
int rc;
|
int rc;
|
||||||
int ydec[63];
|
int ydec[63];
|
||||||
float esnodb;
|
float esnodb;
|
||||||
|
int maxiters=*maxiters0;
|
||||||
|
|
||||||
rc = q65_decode(&codec,ydec,xdec,s3prob,APmask,APsymbols);
|
rc = q65_decode(&codec,ydec,xdec,s3prob,APmask,APsymbols,maxiters);
|
||||||
*rc0=rc;
|
*rc0=rc;
|
||||||
// rc = -1: Invalid params
|
// rc = -1: Invalid params
|
||||||
// rc = -2: Decode failed
|
// rc = -2: Decode failed
|
||||||
|
Loading…
Reference in New Issue
Block a user