Документ взят из кэша поисковой машины. Адрес оригинального документа : http://star.arm.ac.uk/~csj/idl/DIPSO/qqsm.pro
Дата изменения: Wed Aug 22 19:06:24 2007
Дата индексирования: Tue Oct 2 07:39:41 2012
Кодировка:
FUNCTION QQSM, X,YIN,SIGMA

;!+
;!
;! Program:
;! QQSM
;!
;! Purpose:
;! Apply a box ca Gauusianr smoothing function to
;! function YIN(X),
;! where the FWHM of the box is 2.354*SIGMA. Output is YOUT.
;! Data assumed to be equally distributed in X.
;!
;! Accuracy:
;! Preserves integrated equivalent widths of lines in smoothed spectra
;! to 0.04 %
;!
;! Language:
;! IDL - adapted from Fortran 77
;!
;! Authors:
;! C.S.Jeffery (CSJ) (Armagh Observatory)
;!
;! History:
;! 03-FEB-2000: CSJ
;! original version based on qsm function in DIPSO
;! 07-OCT-2003: CSJ
;! IDL version (includes truncation to keep local mean valid near ends of data)
;! 08-OCT-2003: CSJ
;! Adapted from QSMOOTH -- much much faster !!!
;! 09-OCT-2003: CSJ
;! Converted to a function
;!-


SIGMA2 = 2.0*SIGMA*SIGMA
THRSIG = 4.242640687*SIGMA

NP = N_ELEMENTS(X)
YOUT = FLTARR(NP)

DX = (X(NP-1)-X(0)) / (NP-1)
NG = FIX ( THRSIG / DX )

XWIN = (FINDGEN(2L*NG+1L)*DX) - THRSIG
GWIN = EXP ( -0.5 * (XWIN/SIGMA)^2 ) / SQRT (2*!PI)

FOR I = 0L, NP-1 DO BEGIN

KL = MAX ( [0L, I-1L - NG ] )
KU = MIN ( [NP-1L, MAX( [I-1L + NG,0L] ) ] )
JL = MAX ( [0L, NG - (I-0L) ] )
JU = MIN ( [2L*NG,NG + (NP-1L-I) ] )

YOUT(I) = TOTAL ( GWIN(JL:JU) * YIN(KL:KU) ) / TOTAL ( GWIN(JL:JU) )

ENDFOR

RETURN,YOUT

END