mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 13:30:52 -05:00 
			
		
		
		
	git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3462 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Fortran
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Fortran
		
	
	
	
	
	
subroutine symspec65(dd,npts,ss,nhsym,savg)
 | 
						|
 | 
						|
! Compute JT65 symbol spectra at half-symbol steps
 | 
						|
 | 
						|
  parameter (NFFT=8192)
 | 
						|
  parameter (NSZ=3413)                         !NFFT*5000/12000
 | 
						|
  parameter (MAXHSYM=322)
 | 
						|
  real*8 hstep
 | 
						|
  real*4 dd(npts)
 | 
						|
  real*4 ss(MAXHSYM,NSZ)
 | 
						|
  real*4 savg(NSZ)
 | 
						|
  real*4 x(NFFT)
 | 
						|
  complex c(0:NFFT/2)
 | 
						|
  common/refspec/dfref,ref(NSZ)
 | 
						|
  equivalence (x,c)
 | 
						|
  save /refspec/
 | 
						|
 | 
						|
  hstep=2048.d0*12000.d0/11025.d0              !half-symbol = 2229.116 samples
 | 
						|
  nsps=nint(2*hstep)
 | 
						|
  df=12000.0/NFFT
 | 
						|
  nhsym=npts/hstep - 1.0
 | 
						|
  savg=0.
 | 
						|
  fac1=1.e-3
 | 
						|
 | 
						|
  do j=1,nhsym
 | 
						|
     i0=(j-1)*hstep
 | 
						|
     x(1:nsps)=fac1*dd(i0+1:i0+nsps)
 | 
						|
     x(nsps+1:)=0.
 | 
						|
     call four2a(c,NFFT,1,-1,0)                !r2c forward FFT
 | 
						|
     do i=1,NSZ
 | 
						|
        s=real(c(i))**2 + aimag(c(i))**2
 | 
						|
        ss(j,i)=s
 | 
						|
        savg(i)=savg(i)+s
 | 
						|
     enddo
 | 
						|
  enddo
 | 
						|
  savg=savg/nhsym
 | 
						|
 | 
						|
  call flat65(ss,nhsym,MAXHSYM,NSZ,ref)  !Flatten the 2d spectrum, saving
 | 
						|
  dfref=df                               ! the reference spectrum ref()
 | 
						|
 | 
						|
  savg=savg/ref
 | 
						|
  do j=1,nhsym
 | 
						|
     ss(j,1:NSZ)=ss(j,1:NSZ)/ref
 | 
						|
  enddo
 | 
						|
 | 
						|
  return
 | 
						|
end subroutine symspec65
 |