37 lines
		
	
	
		
			512 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			512 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
subroutine sh65snr(x,nz,snr)
 | 
						|
 | 
						|
  real x(nz)
 | 
						|
 | 
						|
  ipk=0 !Shut up compiler warnings. -db
 | 
						|
  smax=-1.e30
 | 
						|
  do i=1,nz
 | 
						|
     if(x(i).gt.smax) then
 | 
						|
        ipk=i
 | 
						|
        smax=x(i)
 | 
						|
     endif
 | 
						|
     s=s+x(i)
 | 
						|
  enddo
 | 
						|
 | 
						|
  s=0.
 | 
						|
  ns=0
 | 
						|
  do i=1,nz
 | 
						|
     if(abs(i-ipk).ge.3) then
 | 
						|
        s=s+x(i)
 | 
						|
        ns=ns+1
 | 
						|
     endif
 | 
						|
  enddo
 | 
						|
  ave=s/ns
 | 
						|
 | 
						|
  sq=0.
 | 
						|
  do i=1,nz
 | 
						|
     if(abs(i-ipk).ge.3) then
 | 
						|
        sq=sq+(x(i)-ave)**2
 | 
						|
        ns=ns+1
 | 
						|
     endif
 | 
						|
  enddo
 | 
						|
  rms=sqrt(sq/(nz-2))
 | 
						|
  snr=(smax-ave)/rms
 | 
						|
 | 
						|
  return
 | 
						|
end subroutine sh65snr
 |