function ampcorrect,arr,index=index,limit=limit,dx=dx
if n_elements(limit) eq 0 then lim=5 else lim=limit(0)
lim=lim>1.1
if n_elements(dx) eq 0 then kk=10 else kk=dx(0)
kk=kk>3
index= -1
xarr=arr
i=where(arr eq 0)
if i(0) ne (-1) then xarr(i)=1.
d=xarr/shift(xarr,1)
i=where(d lt 1)
if i(0) ne (-1) then d(i)=1./d(i)
jj=where(d gt lim)
if jj(0) eq (-1) then return,arr
index=lonarr(1000)
index(*)= -1
nn=n_elements(jj)
mm=n_elements(xarr) -kk-2
xx=findgen(kk)
for i=0,nn-1 do if (jj(i) gt kk) and (jj(i) lt mm) then begin
	j=jj(i)
	k1=poly_fit(xx,xarr(j-kk:j-1),1)
	k1=k1(0)+kk*k1(1)
	k2=poly_fit(xx,xarr(j+1:j+kk),1)
	k2=k2(0)-k2(1)
	if k2 ne 0 then begin
		index(i)=j
		k2=k1/k2
		xarr(j:*)=xarr(j:*)*k2
	end
end

i=where(index ne (-1))
if i(0) ne (-1) then index=index(i) else index=-1
return,xarr
end
