next up previous contents
Next: Example: power_spectrumF program Up: GRASP Routines: Reading/using FRAME Previous: Example: print_ssF program   Contents

Function: GRnormalize()

0 void GRnormalize(float *fri, int frinum, int npoint, float srate,float *response)

This routine generates an array of complex numbers $R(f)$ from the swept sine information in a frame, and an overall calibration constant. Multiplying this array of complex numbers by (the FFT of) the raw IFO data yields the (FFT of the) differential displacement of the interferometer arms $\Delta l$, in meters: $\widetilde{\Delta l}(f)
= R(f) \widetilde{C_{\rm IFO}}(f)$. The units of $R(f)$ are meters/ADC-count.

The arguments are:

fri: Input. Pointer to an array containing swept sine data. The format of this data is fri[0]=$f_0$, fri[1]=$r_0$, fri[2]=$i_0$, fri[3]=$f_1$, fri[4]=$r_1$, fri[5]=$i_1$,... and the total length of the array is fri[0..frinum-1].
frinum: Input. The number of entries in the array fri[0..frinum-1]. If this number is not divisible by three, something is wrong!
npoint: Input. The number of points $N$ of IFO output which will be used to calculate an FFT for normalization. Must be an integer power of 2.
srate: Input. The sample rate in Hz of the IFO output.
response: Output. Pointer to an array response[0..s] with $s=N+1$ in which $R(f)$ will be returned. By convention, $R(0)=0$ so that response[0]=response[1]=0. Array elements response[$2 i$] and response[$2 i + 1$] contain the real and imaginary parts of $R(f)$ at frequency $f= i{\tt srate}/N$. The response at the Nyquist frequency response[N]=0 and response[N+1]=0 by convention.

The absolute normalization of the interferometer can be obtained from the information in the swept sine file, and one other normalization constant which we denote by $Q$. It is easy to understand how this works. In the calibration process, one of the interferometer end mirrors of mass $m$ is driven by a magnetic coil. The equation of motion of the driven end mass is

m {d^2 \over dt^2} {\Delta l} = F(t)
\end{displaymath} (4.10.22)

where $F(t)$ is the driving force and $\Delta l$ is the differential length of the two interferometer arms, in meters. Since the driving force $d(t)$ is proportional to the coil current and thus to the coil voltage, in frequency space this equation becomes
(- 2 \pi i f)^2 \widetilde{\Delta l} = {\rm constant} \times...
...} =
{\rm constant} \times {{\tilde V}_{\rm IFO} \over S^*(f)}.
\end{displaymath} (4.10.23)

We have substituted in equation ([*]) which relates ${\tilde V}_{\rm IFO}$ and ${\tilde V}_{\rm coil}$. The IFO voltage is directly proportional to the quantity recorded in the IFO output channel: $V_{\rm IFO} = {\rm ADC} \times C_{\rm IFO}$, with the constant ${\rm ADC}$ being the ratio of the analog-to-digital converters input voltage to output count.

Putting together these factors, the properly normalized value of $\Delta l$, in meters, may be obtained from the information in the IFO output channel, the swept sine calibration information, and the quantities given in Table [*] by

\widetilde{\Delta l} = R(f) \times \widetilde{C_{\rm IFO} } ...
...} \quad
R(f) = {Q \times {\rm ADC} \over -4 \pi^2 f^2 S^*(f)},
\end{displaymath} (4.10.24)

where the $\tilde {}$ denotes Fourier transform, and $f$ denotes frequency in Hz. (Note that, apart from the complex conjugate on $S$, the conventions used in the Fourier transform drop out of this equation, provided that identical conventions ([*],[*]) are applied to both $\Delta l$ and to $C_{\rm IFO}$).

Table: Quantities entering into normalization of the IFO output.
Description Name Value Units
Gravity-wave signal (IFO output) $C_{\rm IFO}$ varies ADC counts
A$\rightarrow$D converter sensitivity ADC 10/2048 $ \rm V_{\rm IFO} \left({\rm ADC\ counts}\right)^{-1} $
Swept sine calibration S(f) from file $ \rm V_{\rm IFO} \left( V_{\rm coil}\right) ^{-1} $
Calibration constant $Q$ $1.428\times 10^{-4}$ $ \rm meter\ Hz^2 \left( V_{\rm coil} \right)^{-1} $

The constant quantity $Q$ indicated in the above equations has been calculated and documented in a series of calibration experiments carried out by Robert Spero. In these calibration experiments, the interferometer's servo was left open-loop, and the end mass was driven at a single frequency, hard enough to move the end mass one-half wavelength and shift the interferences fringes pattern over by one fringe. In this way, the coil voltage required to bring about a given length motion at a particular frequency was established, and from this information, the value of $Q$ may be inferred. During the November 1994 runs the value of $Q$ was given by
Q = {\sqrt{9.35 \; \rm Hz} \over k} = 1.428 \times 10^{-4} {...
... where\ } k=21399 {\rm\ V_{\rm coil} \over meter \; Hz^{3/2}}.
\end{displaymath} (4.10.25)

Author: Bruce Allen,
Comments: See comment for calibrate().

next up previous contents
Next: Example: power_spectrumF program Up: GRASP Routines: Reading/using FRAME Previous: Example: print_ssF program   Contents
Bruce Allen 2000-11-19