mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 21:40:52 -05:00 
			
		
		
		
	
		
			
	
	
		
			36 lines
		
	
	
		
			576 B
		
	
	
	
		
			FortranFixed
		
	
	
	
	
	
		
		
			
		
	
	
			36 lines
		
	
	
		
			576 B
		
	
	
	
		
			FortranFixed
		
	
	
	
	
	
| 
								 | 
							
								      subroutine getsnr(x,nz,snr)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      real x(nz)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      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
							 |