WSJT-X/lib/slope.f90
Joe Taylor 4bc4c11b66 Starting the transition from QRA01 to QRA02.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@6824 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2016-06-29 19:10:57 +00:00

41 lines
731 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 bins
real y(npts)
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
x=i
sumx=sumx + x
sumy=sumy + y(i)
sumx2=sumx2 + x*x
sumxy=sumxy + x*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
sq=0.
do i=1,npts
y(i)=y(i)-(a + b*i)
if(abs(i-xpk).gt.2.0) sq=sq + y(i)**2
enddo
rms=sqrt(sq/(sumw-2.0))
y=y/rms
return
end subroutine slope