diff --git a/gstlal-calibration/gst/lal/gstlal_transferfunction.c b/gstlal-calibration/gst/lal/gstlal_transferfunction.c index 3deae37174e74cc97f3dfcc36aae7340697f3b2c..474306812cbc20e697cccf7615a05e3dfccedd00 100644 --- a/gstlal-calibration/gst/lal/gstlal_transferfunction.c +++ b/gstlal-calibration/gst/lal/gstlal_transferfunction.c @@ -388,10 +388,10 @@ static gboolean update_transfer_functions_ ## DTYPE(complex DTYPE *autocorrelati for(j = 0; j < num_tfs; j++) { \ gslz = gsl_vector_complex_get(transfer_functions_solved_at_f, j); \ if(isnormal(GSL_REAL(gslz)) || GSL_REAL(gslz) == 0.0) \ - transfer_functions[j * fd_fft_length + i] = GSL_REAL(gslz) + I * GSL_IMAG(gslz); \ + transfer_functions[j * fd_tf_length + i] = GSL_REAL(gslz) + I * GSL_IMAG(gslz); \ else { \ success = FALSE; \ - transfer_functions[j * fd_fft_length + i] = 0.0; \ + transfer_functions[j * fd_tf_length + i] = 0.0; \ } \ } \ } \ diff --git a/gstlal-calibration/gst/lal/gstlal_transferfunction.h b/gstlal-calibration/gst/lal/gstlal_transferfunction.h index e827215a8cd2fb499887f93a088955348c9afe5a..7fff5ddf10122f1be49fe1f48887495afb420b29 100644 --- a/gstlal-calibration/gst/lal/gstlal_transferfunction.h +++ b/gstlal-calibration/gst/lal/gstlal_transferfunction.h @@ -141,9 +141,10 @@ struct _GSTLALTransferFunction { double frequency_resolution; int high_pass; int low_pass; + double notch_frequencies; + int num_notches; complex double *transfer_functions; double *fir_filters; - gboolean input_may_be_zero; }; diff --git a/gstlal-calibration/tests/lal_transferfunction_test.py b/gstlal-calibration/tests/lal_transferfunction_test.py index 07e01d60acf0b64eb99cc476355af66f64caee59..43b7672910b947cca7e2d4732f61af7f072387f2 100755 --- a/gstlal-calibration/tests/lal_transferfunction_test.py +++ b/gstlal-calibration/tests/lal_transferfunction_test.py @@ -1,5 +1,5 @@ #!/usr/bin/env python -# Copyright (C) 2017 Aaron Viets +# Copyright (C) 2018 Aaron Viets # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the @@ -140,7 +140,7 @@ def lal_transferfunction_03(pipeline, name): rate = 16384 # Hz buffer_length = 1.0 # seconds - test_duration = 100.0 # seconds + test_duration = 50.0 # seconds width = 64 # bits channels = 1 freq = 512 @@ -151,21 +151,16 @@ def lal_transferfunction_03(pipeline, name): hoft = test_common.test_src(pipeline, buffer_length = buffer_length, wave = 5, volume = 1, freq = freq, channels = channels, rate = rate, test_duration = test_duration, width = width, verbose = False) hoft = pipeparts.mktee(pipeline, hoft) - difference = test_common.test_src(pipeline, buffer_length = buffer_length, wave = 5, volume = 0.001, channels = channels, rate = rate, test_duration = test_duration, width = width, verbose = False) - difference = pipeparts.mktee(pipeline, difference) - difference2 = test_common.test_src(pipeline, buffer_length = buffer_length, wave = 5, volume = 0.001, freq = 4096, channels = channels, rate = rate, test_duration = test_duration, width = width, verbose = False) + noise = [] + for i in range(0, 10): + difference = test_common.test_src(pipeline, buffer_length = buffer_length, wave = 5, volume = 0.001, channels = channels, rate = rate, test_duration = test_duration, width = width, verbose = False) + noisy_hoft = calibration_parts.mkadder(pipeline, calibration_parts.list_srcs(pipeline, hoft, difference)) + noisy_hoft = pipeparts.mkprogressreport(pipeline, noisy_hoft, "noisy_hoft_%d" % i) + noise.append(noisy_hoft) - hoft2 = calibration_parts.mkadder(pipeline, calibration_parts.list_srcs(pipeline, hoft, difference)) - hoft2 = pipeparts.mktee(pipeline, hoft2) - - hoft3 = calibration_parts.mkadder(pipeline, calibration_parts.list_srcs(pipeline, hoft, difference2)) - hoft3 = pipeparts.mktee(pipeline, hoft3) - - clean_data = calibration_parts.clean_data(pipeline, hoft, rate, calibration_parts.list_srcs(pipeline, hoft2, hoft3), rate, rate / 8, rate / 16, 32, rate * 100) + clean_data = calibration_parts.clean_data(pipeline, hoft, rate, noise, rate, 2 * rate, rate, 10, rate * 1000, rate, 4, filename = "tfs.txt") pipeparts.mknxydumpsink(pipeline, hoft, "%s_hoft.txt" % name) - pipeparts.mknxydumpsink(pipeline, hoft2, "%s_hoft2.txt" % name) - pipeparts.mknxydumpsink(pipeline, difference, "%s_difference.txt" % name) pipeparts.mknxydumpsink(pipeline, clean_data, "%s_out.txt" % name) return pipeline @@ -206,8 +201,8 @@ def lal_transferfunction_04(pipeline, name): #test_common.build_and_run(lal_transferfunction_01, "lal_transferfunction_01") #test_common.build_and_run(lal_transferfunction_02, "lal_transferfunction_02") -#test_common.build_and_run(lal_transferfunction_03, "lal_transferfunction_03") -test_common.build_and_run(lal_transferfunction_04, "lal_transferfunction_04") +test_common.build_and_run(lal_transferfunction_03, "lal_transferfunction_03") +#test_common.build_and_run(lal_transferfunction_04, "lal_transferfunction_04")