mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-29 20:10:28 -04:00 
			
		
		
		
	
		
			
	
	
		
			41 lines
		
	
	
		
			730 B
		
	
	
	
		
			Fortran
		
	
	
	
	
	
		
		
			
		
	
	
			41 lines
		
	
	
		
			730 B
		
	
	
	
		
			Fortran
		
	
	
	
	
	
|  | subroutine slope(y,npts,xpk)
 | ||
|  | 
 | ||
|  | ! Remove best-fit slope from data in y(i).  When fitting the straight line,
 | ||
|  | ! ignore the peak around xpk +/- 2.
 | ||
|  | 
 | ||
|  |   real y(npts)
 | ||
|  |   real x(100)
 | ||
|  | 
 | ||
|  |   do i=1,npts
 | ||
|  |      x(i)=i
 | ||
|  |   enddo
 | ||
|  | 
 | ||
|  |   sumw=0.
 | ||
|  |   sumx=0.
 | ||
|  |   sumy=0.
 | ||
|  |   sumx2=0.
 | ||
|  |   sumxy=0.
 | ||
|  |   sumy2=0.
 | ||
|  | 
 | ||
|  |   do i=1,npts
 | ||
|  |      if(abs(i-xpk).gt.2.0) then
 | ||
|  |         sumw=sumw + 1.0
 | ||
|  |         sumx=sumx + x(i)
 | ||
|  |         sumy=sumy + y(i)
 | ||
|  |         sumx2=sumx2 + x(i)**2
 | ||
|  |         sumxy=sumxy + x(i)*y(i)
 | ||
|  |         sumy2=sumy2 + y(i)**2
 | ||
|  |      endif
 | ||
|  |   enddo
 | ||
|  | 
 | ||
|  |   delta=sumw*sumx2 - sumx**2
 | ||
|  |   a=(sumx2*sumy - sumx*sumxy) / delta
 | ||
|  |   b=(sumw*sumxy - sumx*sumy) / delta
 | ||
|  | 
 | ||
|  |   do i=1,npts
 | ||
|  |      y(i)=y(i)-(a + b*x(i))
 | ||
|  |   enddo
 | ||
|  | 
 | ||
|  |   return
 | ||
|  | end subroutine slope
 |