Commit 2f57d31a authored by Aaron Viets's avatar Aaron Viets

gstlal_compute_strain: lower resampler quality for lower latency and computational cost.

parent 8520e575
Pipeline #73074 failed with stages
in 1 minute and 5 seconds
......@@ -2022,21 +2022,21 @@ if CalibrationConfigs["calibrationmode"] == "Partial":
# if you need to, dewhiten the TST and PUM/UIM chains
if dewhitening:
tst = calibration_parts.mkresample(pipeline, tsttee, 5, False, "audio/x-raw, format=F64LE, rate=%d" % tstdewhitensr)
tst = calibration_parts.mkresample(pipeline, tsttee, 4, False, "audio/x-raw, format=F64LE, rate=%d" % tstdewhitensr)
tst = pipeparts.mkfirbank(pipeline, tst, latency = int(tstdewhitendelay), fir_matrix = [tstdewhiten[::-1]], time_domain = td)
tst_filter_settle_time += float(len(tstdewhiten)-tstdewhitendelay)/tstdewhitensr
tst_filter_latency += float(tstdewhitendelay)/tstdewhitensr
if apply_kappapum or apply_kappauim or apply_complex_kappapum or apply_complex_kappauim:
pum = calibration_parts.mkresample(pipeline, pum, 5, False, "audio/x-raw, format=F64LE, rate=%d" % pumdewhitensr)
pum = calibration_parts.mkresample(pipeline, pum, 4, False, "audio/x-raw, format=F64LE, rate=%d" % pumdewhitensr)
pum = pipeparts.mkfirbank(pipeline, pum, latency = int(pumdewhitendelay), fir_matrix = [pumdewhiten[::-1]], time_domain = td)
pum_filter_settle_time += float(len(pumdewhiten)-pumdewhitendelay)/pumdewhitensr
pum_filter_latency += float(pumdewhitendelay)/pumdewhitensr
uim = calibration_parts.mkresample(pipeline, uim, 5, False, "audio/x-raw, format=F64LE, rate=%d" % uimdewhitensr)
uim = calibration_parts.mkresample(pipeline, uim, 4, False, "audio/x-raw, format=F64LE, rate=%d" % uimdewhitensr)
uim = pipeparts.mkfirbank(pipeline, uim, latency = int(uimdewhitendelay), fir_matrix = [uimdewhiten[::-1]], time_domain = td)
uim_filter_settle_time += float(len(uimdewhiten)-uimdewhitendelay)/uimdewhitensr
uim_filter_latency += float(uimdewhitendelay)/uimdewhitensr
else:
pumuim = calibration_parts.mkresample(pipeline, pumuim, 5, False, "audio/x-raw, format=F64LE, rate=%d" % pumuimdewhitensr)
pumuim = calibration_parts.mkresample(pipeline, pumuim, 4, False, "audio/x-raw, format=F64LE, rate=%d" % pumuimdewhitensr)
pumuim = pipeparts.mkfirbank(pipeline, pumuim, latency = int(pumuimdewhitendelay), fir_matrix = [pumuimdewhiten[::-1]], time_domain = td)
pumuim_filter_settle_time += float(len(pumuimdewhiten)-pumuimdewhitendelay)/pumuimdewhitensr
pumuim_filter_latency += float(pumuimdewhitendelay)/pumuimdewhitensr
......@@ -2050,7 +2050,7 @@ if CalibrationConfigs["calibrationmode"] == "Full":
if dewhitening:
# dewhiten the DARM_CTRL channel
ctrl = calibration_parts.mkresample(pipeline, darmctrltee, 5, False, "audio/x-raw, format=F64LE, rate=%d" % ctrldewhitensr)
ctrl = calibration_parts.mkresample(pipeline, darmctrltee, 4, False, "audio/x-raw, format=F64LE, rate=%d" % ctrldewhitensr)
ctrl = pipeparts.mkfirbank(pipeline, ctrl, latency = int(ctrldewhitendelay), fir_matrix = [ctrldewhiten[::-1]], time_domain = td)
tst_filter_settle_time += float(len(ctrldewhiten)-ctrldewhitendelay)/ctrldewhitensr
tst_filter_latency += float(ctrldewhitendelay)/ctrldewhitensr
......@@ -2072,7 +2072,7 @@ if CalibrationConfigs["calibrationmode"] == "Full":
pumuim = ctrltee
# resample what will become the TST actuation chain to the TST FIR filter sample rate
tst = calibration_parts.mkresample(pipeline, tst, 5, False, "audio/x-raw, format=F64LE, rate=%d" % tstchainsr)
tst = calibration_parts.mkresample(pipeline, tst, 4, False, "audio/x-raw, format=F64LE, rate=%d" % tstchainsr)
if test_filters:
tst = pipeparts.mktee(pipeline, tst)
tst_before_filters = tst
......@@ -2118,13 +2118,13 @@ if test_filters:
# resample the TST actuation chain if necessary
if tstchainsr < actsr:
tst = calibration_parts.mkresample(pipeline, tst, 5, False, actsr)
tst = calibration_parts.mkresample(pipeline, tst, 4, False, actsr)
# Check whether we need to filter the PUM and UIM stages separately or together
if apply_kappapum or apply_kappauim or apply_complex_kappapum or apply_complex_kappauim:
# resample what will become the PUM and UIM actuation paths to the PUM and UIM FIR filter sample rates
pum = calibration_parts.mkresample(pipeline, pumtee, 5, False, "audio/x-raw, format=F64LE, rate=%d" % pumchainsr)
uim = calibration_parts.mkresample(pipeline, uimtee, 5, False, "audio/x-raw, format=F64LE, rate=%d" % uimchainsr)
pum = calibration_parts.mkresample(pipeline, pumtee, 4, False, "audio/x-raw, format=F64LE, rate=%d" % pumchainsr)
uim = calibration_parts.mkresample(pipeline, uimtee, 4, False, "audio/x-raw, format=F64LE, rate=%d" % uimchainsr)
if test_filters:
pum = pipeparts.mktee(pipeline, pum)
pum_before_filters = pum
......@@ -2205,17 +2205,17 @@ if apply_kappapum or apply_kappauim or apply_complex_kappapum or apply_complex_k
# resample the PUM actuation path if necessary
if pumchainsr < actsr:
pum = calibration_parts.mkresample(pipeline, pum, 5, False, actsr)
pum = calibration_parts.mkresample(pipeline, pum, 4, False, actsr)
# resample the UIM actuation path if necessary
if uimchainsr < actsr:
uim = calibration_parts.mkresample(pipeline, uim, 5, False, actsr)
uim = calibration_parts.mkresample(pipeline, uim, 4, False, actsr)
# Add the TST, PUM, and UIM paths together to form the full actuation path
ctrl = calibration_parts.mkadder(pipeline, calibration_parts.list_srcs(pipeline, tst, pum, uim))
else:
# resample what will become the PUM/UIM actuation chain to the PUM/UIM FIR filter sample rate
pumuim = calibration_parts.mkresample(pipeline, pumuim, 5, False, "audio/x-raw, format=F64LE, rate=%d" % pumuimchainsr)
pumuim = calibration_parts.mkresample(pipeline, pumuim, 4, False, "audio/x-raw, format=F64LE, rate=%d" % pumuimchainsr)
if test_filters:
pumuim = pipeparts.mktee(pipeline, pumuim)
pumuim_before_filters = pumuim
......@@ -2261,14 +2261,14 @@ else:
# resample the PUM/UIM actuation chain if necessary
if pumuimchainsr < actsr:
pumuim = calibration_parts.mkresample(pipeline, pumuim, 5, False, actsr)
pumuim = calibration_parts.mkresample(pipeline, pumuim, 4, False, actsr)
# Add the TST and PUM/UIM chains together to form the full actuation chain
ctrl = calibration_parts.mkadder(pipeline, calibration_parts.list_srcs(pipeline, tst, pumuim))
# Resample \DeltaL_ctrl to the full h(t) sample rate
if actsr != hoft_sr:
ctrl = calibration_parts.mkresample(pipeline, ctrl, 5, False, hoft_caps)
ctrl = calibration_parts.mkresample(pipeline, ctrl, 4, False, hoft_caps)
if test_latency:
ctrl = pipeparts.mklatency(pipeline, ctrl, name = "%s_ctrl" % OutputConfigs["frametype"])
......@@ -2303,13 +2303,13 @@ if any(invsens_highpass):
if invsens_highpass_sr != hoft_sr:
# Magic trick to apply a high-pass filter to the inverse sensing path at a lower sample rate without losing information above the Nyquist frequency.
res = pipeparts.mktee(pipeline, res)
res_lowfreq = calibration_parts.mkresample(pipeline, res, 5, False, invsens_highpass_sr)
res_lowfreq = calibration_parts.mkresample(pipeline, res, 4, False, invsens_highpass_sr)
# Use spectral inversion to make a low-pass filter with a gain of -1.
invsens_highpass[invsens_highpass_delay] = invsens_highpass[invsens_highpass_delay] - 1.0
# Apply this filter to the inverse sensing path at a lower sample rate to get only the low frequency components
res_lowfreq = pipeparts.mkfirbank(pipeline, res_lowfreq, latency = invsens_highpass_delay, fir_matrix = [invsens_highpass[::-1]], time_domain = td)
# Upsample
res_lowfreq = calibration_parts.mkresample(pipeline, res_lowfreq, 5, False, hoft_sr)
res_lowfreq = calibration_parts.mkresample(pipeline, res_lowfreq, 4, False, hoft_sr)
# Add to the inverse sensing path to get rid of the low frequencies
res = calibration_parts.mkadder(pipeline, calibration_parts.list_srcs(pipeline, res, res_lowfreq))
else:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment