diff --git a/lib/qra_loops.f90 b/lib/qra_loops.f90 index 0679e4d88..d6e2072f1 100644 --- a/lib/qra_loops.f90 +++ b/lib/qra_loops.f90 @@ -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 diff --git a/lib/spec64.f90 b/lib/spec64.f90 index 377e8dfcf..b6cc10c34 100644 --- a/lib/spec64.f90 +++ b/lib/spec64.f90 @@ -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 diff --git a/lib/sync_qra65.f90 b/lib/sync_qra65.f90 index 401efcc3c..c58241dbc 100644 --- a/lib/sync_qra65.f90 +++ b/lib/sync_qra65.f90 @@ -107,12 +107,19 @@ 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 end subroutine sync_qra65 diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index d211cbc1a..cd0152889 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -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);