subroutine getfc1w(c,fs,fa,fb,fc1,xsnr) include 'wsprlf_params.f90' complex c(0:NZ-1) !Complex waveform complex c2(0:NFFT1-1) !Short spectra real s(-NH1+1:NH1) !Coarse spectrum nspec=NZ/NFFT1 df1=fs/NFFT1 s=0. do k=1,nspec ia=(k-1)*N2 ib=ia+N2-1 c2(0:N2-1)=c(ia:ib) c2(N2:)=0. call four2a(c2,NFFT1,1,-1,1) do i=0,NFFT1-1 j=i if(j.gt.NH1) j=j-NFFT1 s(j)=s(j) + real(c2(i))**2 + aimag(c2(i))**2 enddo enddo ! call smo121(s,NFFT1) smax=0. ipk=0 fc1=0. ia=nint(fa/df1) ib=nint(fb/df1) do i=ia,ib f=i*df1 if(s(i).gt.smax) then smax=s(i) ipk=i fc1=f endif ! write(51,3001) f,s(i),db(s(i)) ! 3001 format(f10.3,e12.3,f10.3) enddo ! The following is for testing SNR calibration: sp3n=(s(ipk-1)+s(ipk)+s(ipk+1)) !Sig + 3*noise base=(sum(s)-sp3n)/(NFFT1-3.0) !Noise per bin psig=sp3n-3*base !Sig only pnoise=(2500.0/df1)*base !Noise in 2500 Hz xsnr=db(psig/pnoise) return end subroutine getfc1w