Applies the configured convolution operation.
Extracts per-channel double spans, calls the corresponding Kinesis::Discrete::Convolution primitive on each channel, then reconstructs the typed output via OperationHelper.
77 {
79
81 const auto ir = get_parameter_or<std::vector<double>>(
82 "impulse_response", std::vector<double> { 1.0 });
85 });
86 }
87
89 const auto tmpl = get_parameter_or<std::vector<double>>(
90 "template_signal", std::vector<double> { 1.0 });
91 const auto norm = get_parameter_or<bool>("normalize", true);
94 });
95 }
96
98 const auto ref = get_parameter_or<std::vector<double>>(
99 "reference_signal", std::vector<double> { 1.0 });
102 });
103 }
104
106 const auto ir = get_parameter_or<std::vector<double>>(
107 "impulse_response", std::vector<double> { 1.0 });
108 const auto reg = get_parameter_or<double>("regularization", 1e-6);
111 });
112 }
113
115 const auto norm = get_parameter_or<bool>("normalize", true);
118 });
119 }
120
121 default:
123 }
124 }
std::vector< double > cross_correlate(std::span< const double > src, std::span< const double > tmpl, bool normalize)
Cross-correlation via FFT.
std::vector< double > deconvolve(std::span< const double > src, std::span< const double > ir, double regularization)
Frequency-domain deconvolution with Tikhonov regularisation.
std::vector< double > auto_correlate(std::span< const double > src, bool normalize)
Auto-correlation via FFT.
std::vector< double > convolve(std::span< const double > src, std::span< const double > ir)
Linear FFT convolution.
std::vector< double > matched_filter(std::span< const double > src, std::span< const double > reference)
Matched filter (normalised cross-correlation)
@ DECONVOLUTION
Deconvolution.
@ DIRECT_CONVOLUTION
Standard convolution.
@ AUTO_CORRELATION
Auto-correlation.
@ CROSS_CORRELATION
Cross-correlation.
@ MATCHED_FILTER
Matched filtering.