Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Open sidebar
lscsoft
GstLAL
Commits
2f57d31a
Commit
2f57d31a
authored
Aug 01, 2019
by
Aaron Viets
1
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
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
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
16 additions
and
16 deletions
+16
-16
gstlal-calibration/bin/gstlal_compute_strain
gstlal-calibration/bin/gstlal_compute_strain
+16
-16
No files found.
gstlal-calibration/bin/gstlal_compute_strain
View file @
2f57d31a
...
...
@@ -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
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment