26 #include <edsp/meta/iterator.hpp> 31 namespace edsp {
namespace statistics {
51 template <
typename InputIt,
typename Allocator = std::allocator<meta::value_type_t<InputIt>>>
52 constexpr meta::value_type_t<InputIt>
snr(InputIt first1, InputIt last1, InputIt first2) {
53 using value_type = meta::value_type_t<InputIt>;
55 std::vector<value_type, Allocator> noise(N);
56 std::transform(first1, last1, first2, std::begin(noise),
57 [](
const value_type left,
const value_type right) {
return left - right; });
constexpr meta::value_type_t< ForwardIt > variance(ForwardIt first, ForwardIt last)
Computes the variance of the range [first, last)
Definition: variance.hpp:44
constexpr meta::value_type_t< InputIt > snr(InputIt first1, InputIt last1, InputIt first2)
Compute the SNR of the signals in the range [first1, last1) and the signal starting in first2...
Definition: snr.hpp:52
constexpr T distance(T x, T y) noexcept
Computes the distance between x and y.
Definition: numeric.hpp:328
Definition: amplifier.hpp:29
constexpr T pow2db(T power) noexcept
Convert power to decibels.
Definition: pow2db.hpp:41