23 #include <lal/LALStdlib.h>
24 #include <lal/LALConstants.h>
25 #include <lal/Calibration.h>
26 #include <lal/LALDatatypes.h>
27 #include <lal/LALStdlib.h>
28 #include <lal/LALStdio.h>
29 #include <lal/AVFactories.h>
30 #include <lal/Window.h>
31 #include <lal/BandPassTimeSeries.h>
32 #include <lal/TimeFreqFFT.h>
33 #include <lal/RealFFT.h>
34 #include <lal/AVFactories.h>
35 #include <lal/FrequencySeries.h>
36 #include <lal/TimeSeries.h>
38 #include <gsl/gsl_interp.h>
39 #include <gsl/gsl_spline.h>
41 #define MAXALPHAS 10000
43 #define N_FIR_LP_ALPHAS 8192
44 #define fhigh_FIRLP_ALPHAS 0.00001220703125
47 #define fhigh_FIRLP .9
50 #define fhigh_FIRHP 0.00244140625
61 int p, NWingsR,NWingsC;
65 REAL8IIRFilter *CinvWings=NULL, *DWings=NULL, *AAWings=NULL, *AXWings=NULL, *AYWings=NULL;
90 for (
p=0;
p<(int)
output->hR.data->length;
p++)
96 for (
p=0;
p<(int)
output->hC.data->length;
p++)
104 for (
p=0;
p<(int)
output->hR.data->length;
p++)
114 for (
p=0;
p<(int)
output->hC.data->length;
p++)
154 for(k = NWingsR/2; k < (int)uphR.
data->
length-3*NWingsR/2; k++){
184 for (
p=0;
p<(int)
output->hR.data->length;
p++) {
237 for (
p=0;
p<(int)
output->hR.data->length;
p++) {
285 for(
p = 0;
p < input->
ND;
p++){
287 for(k = NWingsC/2; k < (int)
output->hC.data->length-3*NWingsC/2; k++){
295 for(
p = 0;
p < input->
ND;
p++){
297 for(k =
output->hC.data->length-3*NWingsC/2; k < (
int)
output->hC.data->length-NWingsC/2; k++){
311 for(k = 0; k < (int)
output->hC.data->length; k++){
317 fprintf(stdout,
"Warning: Not adding calibration lines to control signal.\n");
325 for(
p = 0;
p < input->
NAA;
p++){
327 for(k = NWingsC/2; k < (int)
output->hC.data->length-3*NWingsC/2; k++){
335 for(
p = 0;
p < input->
NAA;
p++){
337 for(k =
output->hC.data->length-3*NWingsC/2; k < (
int)
output->hC.data->length-NWingsC/2; k++){
347 for (
p=0;
p < (int)
output->hC.data->length;
p++){
356 for(
p = 0;
p < input->
NAX;
p++){
358 for(k = NWingsC/2; k < (int)hCX.
data->
length-3*NWingsC/2; k++){
366 for(
p = 0;
p < input->
NAX;
p++){
382 for(
p = 0;
p < input->
NAY;
p++){
384 for(k = NWingsC/2; k < (int)hCY.
data->
length-3*NWingsC/2; k++){
392 for(
p = 0;
p < input->
NAY;
p++){
412 for (
p=0;
p< (int)
output->h.data->length;
p++){
451 for(n=0;n<ORDER;n++){
477 for(n = 0; n < ORDER; n++)
491 for(l=0;l<(int)F1[n].directCoef->length;l++)
493 for(l=0;l<(int)F1[n].recursCoef->length;l++)
495 for(l=0;l<(int)F1[n].history->length;l++)
void LALMakeFIRLP(LALStatus *status, REAL8IIRFilter *G, int USF)
void LALMakeFIRHP(LALStatus *status, REAL8IIRFilter *G)
int XLALUpsample(REAL8TimeSeries *uphR, REAL8TimeSeries *hR, int up_factor)
void LALGetFactors(LALStatus *status, StrainOut *output, StrainIn *input)
void LALMakeFIRLPALPHAS(LALStatus *status, REAL8IIRFilter *G)
int XLALUpsampleLinear(REAL8TimeSeries *uphR, REAL8TimeSeries *hR, int up_factor)
int XLALDivideTimeSeries(REAL8TimeSeries *hR, REAL8TimeSeries *ALPHAS)
void LALFFTFIRFilter(LALStatus *status, REAL8TimeSeries *tseries, REAL8IIRFilter *FIR)
void LALCopyFilter(LALStatus *status, REAL8IIRFilter **F2, REAL8IIRFilter *F1, int ORDER)
void LALFreeFilter(LALStatus *status, REAL8IIRFilter *F2, int ORDER)
void LALComputeStrainDMT(LALStatus *status, StrainOut *output, StrainIn *input)
#define LALDIIRFilter(x, f)
#define ABORT(statusptr, code, mesg)
#define CHECKSTATUSPTR(statusptr)
#define ATTATCHSTATUSPTR(statusptr)
#define DETATCHSTATUSPTR(statusptr)
#define INITSTATUS(statusptr)
#define RETURN(statusptr)
void LALIIRFilterREAL8Vector(LALStatus *status, REAL8Vector *vector, REAL8IIRFilter *filter)
WARNING: THIS FUNCTION IS OBSOLETE.
int32_t INT4
Four-byte signed integer.
void LALDCreateVector(LALStatus *, REAL8Vector **, UINT4)
void LALDDestroyVector(LALStatus *, REAL8Vector **)
LAL status structure, see The LALStatus structure for more details.
REAL4Sequence * data
The sequence of sampled data.
REAL8 deltaT
The time step between samples of the time series in seconds.
REAL4 * data
Pointer to the data array.
UINT4 length
Number of elements in array.
This structure stores the direct and recursive REAL8 filter coefficients, as well as the history of t...
REAL8Vector * history
The previous values of w.
REAL8Vector * recursCoef
The recursive filter coefficients.
REAL8Vector * directCoef
The direct filter coefficients.
Time series of REAL8 data, see DATATYPE-TimeSeries types for more details.
REAL8Sequence * data
The sequence of sampled data.
REAL8 deltaT
The time step between samples of the time series in seconds.
REAL8 * data
Pointer to the data array.
UINT4 length
Number of elements in array.
REAL4TimeSeries EXC
timeseries containing the excitation
REAL8IIRFilter * Cinv
Filters for inverse of sensing function.
INT4 usefactors
UNDOCUMENTED.
REAL8IIRFilter * D
Filters for analog actuation function.
INT4 fftconv
UNDOCUMENTED.
INT4 outalphas
UNDOCUMENTED.
REAL8IIRFilter * AY
Digital filters for y arm actuation function.
REAL4TimeSeries AS_Q
timeseries containing ASQ
INT4 AADelay
Overall analog actuation function delay.
INT4 wings
size of wings in seconds
INT4 NCinv
Numbers of filters of each type.
INT4 CinvUSF
Upsampling factor for sensing function.
REAL8IIRFilter * AX
Digital filters for x arm actuation function.
REAL8IIRFilter * AA
Filters for analog actuation function.
INT4 CinvDelay
Overall inverse sensing function delay.
REAL4TimeSeries DARM_ERR
timeseries containing DARM_ERR
void output(int gps_sec, int output_type)