mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 13:30:52 -05:00 
			
		
		
		
	Correct a flaw in assigning bin numbers for in sync64(), fixing QRA65 submodes B C D E.
This commit is contained in:
		
							parent
							
								
									0ce6556611
								
							
						
					
					
						commit
						b68ccee2fa
					
				@ -50,7 +50,7 @@ subroutine qra_loops(c00,npts2,mode,mode64,nsubmode,nFadingModel,      &
 | 
			
		||||
              jpk=jpk0 + 240*ndt                  !240/6000 = 0.04 s = tsym/32
 | 
			
		||||
              if(jpk.lt.0) jpk=0
 | 
			
		||||
              call timer('spec64  ',0)
 | 
			
		||||
              call spec64(c0,nsps,mode,jpk,s3,LL,NN)
 | 
			
		||||
              call spec64(c0,nsps,mode,mode64,jpk,s3,LL,NN)
 | 
			
		||||
              call timer('spec64  ',1)
 | 
			
		||||
              call pctile(s3,LL*NN,40,base)
 | 
			
		||||
              s3=s3/base
 | 
			
		||||
@ -98,7 +98,7 @@ subroutine qra_loops(c00,npts2,mode,mode64,nsubmode,nFadingModel,      &
 | 
			
		||||
        call twkfreq(c00,c0,npts2,6000.0,a)
 | 
			
		||||
!        jpk=4320
 | 
			
		||||
        jpk=4080
 | 
			
		||||
        call spec64(c0,nsps,mode,jpk,s3,LL,NN)
 | 
			
		||||
        call spec64(c0,nsps,mode,mode64,jpk,s3,LL,NN)
 | 
			
		||||
        call pctile(s3,LL*NN,40,base)
 | 
			
		||||
        s3=s3/base
 | 
			
		||||
        where(s3(1:LL*NN)>s3lim) s3(1:LL*NN)=s3lim
 | 
			
		||||
 | 
			
		||||
@ -1,10 +1,11 @@
 | 
			
		||||
subroutine spec64(c0,nsps,mode,jpk,s3,LL,NN)
 | 
			
		||||
subroutine spec64(c0,nsps,mode,mode64,jpk,s3,LL,NN)
 | 
			
		||||
 | 
			
		||||
  parameter (MAXFFT=3840)
 | 
			
		||||
  complex c0(0:360000)                       !Complex spectrum of dd()
 | 
			
		||||
  complex cs(0:MAXFFT-1)                     !Complex symbol spectrum
 | 
			
		||||
  real s3(LL,NN)                             !Synchronized symbol spectra
 | 
			
		||||
  real xbase0(LL),xbase(LL)
 | 
			
		||||
!  integer ipk1(1)
 | 
			
		||||
  integer isync(22)                          !Indices of sync symbols
 | 
			
		||||
  data isync/1,9,12,13,15,22,23,26,27,33,35,38,46,50,55,60,62,66,69,74,76,85/
 | 
			
		||||
 | 
			
		||||
@ -39,7 +40,7 @@ subroutine spec64(c0,nsps,mode,jpk,s3,LL,NN)
 | 
			
		||||
        cs(0:nfft-1)=fac*c0(ja:jb)
 | 
			
		||||
        call four2a(cs,nsps,1,-1,1)             !c2c FFT to frequency
 | 
			
		||||
        do ii=1,LL
 | 
			
		||||
           i=ii-65
 | 
			
		||||
           i=ii-65+mode64      !mode64 = 1 2 4 8 16 for QRA65 A B C D E
 | 
			
		||||
           if(i.lt.0) i=i+nsps
 | 
			
		||||
           s3(ii,j)=real(cs(i))**2 + aimag(cs(i))**2
 | 
			
		||||
        enddo
 | 
			
		||||
@ -62,16 +63,18 @@ subroutine spec64(c0,nsps,mode,jpk,s3,LL,NN)
 | 
			
		||||
     s3(i,1:NN)=s3(i,1:NN)/(xbase(i)+0.001) !Apply frequency equalization
 | 
			
		||||
  enddo
 | 
			
		||||
 | 
			
		||||
!  print*,'a',LL,NN,jpk
 | 
			
		||||
!  print*,'a',LL,NN,jpk,mode,mode64
 | 
			
		||||
!  df=6000.0/nfft
 | 
			
		||||
!  do i=1,LL
 | 
			
		||||
!     write(71,3071) i,i-65,i*df,(s3(i,j),j=1,4)
 | 
			
		||||
!3071 format(2i8,f10.3,4e12.3)
 | 
			
		||||
!  enddo
 | 
			
		||||
!
 | 
			
		||||
 | 
			
		||||
!  do j=1,NN
 | 
			
		||||
!     write(72,3072) j,maxloc(s3(1:LL,j)),maxloc(s3(1:LL,j))-65
 | 
			
		||||
!3072 format(3i8)
 | 
			
		||||
!     ipk1=maxloc(s3(1:LL,j))
 | 
			
		||||
!     m=ipk1(1)-65
 | 
			
		||||
!     write(72,3072) j,m,m/2,m/4,m/8
 | 
			
		||||
!3072 format(5i8)
 | 
			
		||||
!  enddo
 | 
			
		||||
!  if(nfft.ne.-999) stop
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -107,11 +107,18 @@ subroutine sync_qra65(iwave,nmax,mode65,nsps,nfqso,ntol,xdt,f0,snr1)
 | 
			
		||||
     endif
 | 
			
		||||
  enddo
 | 
			
		||||
  rms=sqrt(sq/nsq)
 | 
			
		||||
  snr1=ccf(ipk,jpk)/rms
 | 
			
		||||
  smax=ccf(ipk,jpk)
 | 
			
		||||
  snr1=smax/rms
 | 
			
		||||
 | 
			
		||||
!  do j=lag1,lag2
 | 
			
		||||
!     write(55,3055) j,j*dtstep,ccf(ipk,j)/rms
 | 
			
		||||
!3055 format(i5,f8.3,f10.3)
 | 
			
		||||
!  enddo
 | 
			
		||||
 | 
			
		||||
!  ncall=ncall+1
 | 
			
		||||
!  do i=-ia,ia
 | 
			
		||||
!     write(56,3056) ncall,i*df,ncall+0.3*ccf(i,0)/rms
 | 
			
		||||
!3056 format(i6,f7.2,f10.3)
 | 
			
		||||
!  enddo
 | 
			
		||||
 | 
			
		||||
  return
 | 
			
		||||
 | 
			
		||||
@ -6403,7 +6403,7 @@ void MainWindow::on_actionQRA65_triggered()
 | 
			
		||||
  m_hsymStop=49;
 | 
			
		||||
  ui->sbTR->values ({15, 30, 60, 120, 300});
 | 
			
		||||
  on_sbTR_valueChanged (ui->sbTR->value());
 | 
			
		||||
  ui->sbSubmode->setMaximum(3);
 | 
			
		||||
  ui->sbSubmode->setMaximum(4);
 | 
			
		||||
  ui->sbSubmode->setValue(m_nSubMode);  m_wideGraph->setMode(m_mode);
 | 
			
		||||
  m_wideGraph->setMode(m_mode);
 | 
			
		||||
  m_wideGraph->setModeTx(m_modeTx);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user