mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 04:50:34 -04: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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user