EchoMap 2026-07-25 6d3977c
An experimental cross-platform digital signal processing application for sound-source localisation.
Loading...
Searching...
No Matches
echomap::FrequencySpectrum Class Reference

A Signal sampled in the frequency domain. More...

#include <FrequencySpectrum.hpp>

Inheritance diagram for echomap::FrequencySpectrum:
[legend]

Classes

struct  Bin
 A bin within the spectrum, denoting the magnitude (and optionally, complex phase) of a Signal at a given frequency. More...

Public Member Functions

decltype(bins) ::const_iterator begin () const
decltype(bins) ::const_iterator end () const
decltype(bins) ::const_iterator cbegin () const noexcept
decltype(bins) ::const_iterator cend () const noexcept
std::size_t get_bin_count () const noexcept
float get_minimum_frequency () const noexcept
float get_maximum_frequency () const noexcept
float get_minimum_magnitude () const noexcept
float get_maximum_magnitude () const noexcept
const WindowFunctions::AllFunctions & observe_preprocessor () const noexcept
Public Member Functions inherited from echomap::Object< FrequencySpectrum >
 ~Object ()=default
 Non-virtual base destructor.
id_type get_id () const noexcept
bool is_valid () const noexcept
void set_name (const std::string_view new_name)
std::string_view get_name () const noexcept
const char * get_imgui_name () const noexcept
 Object (const Object &)=delete
Object & operator= (const Object &)=delete
bool operator== (const Object &other) const noexcept
 Determine shallow equality between two Object instances.

Private Member Functions

 FrequencySpectrum (WindowFunctions::AllFunctions preprocessor, std::string_view name)
void reserve_bins (std::size_t bin_count)
void emplace_bin (float frequency, float magnitude, float phase)

Private Attributes

std::vector< Binbins
friend FrequencySpectrumFactory
WindowFunctions::AllFunctions preprocessor
float minimum_frequency = std::numeric_limits<float>::max()
float maximum_frequency = std::numeric_limits<float>::min()
float minimum_magnitude = std::numeric_limits<float>::max()
float maximum_magnitude = std::numeric_limits<float>::min()

Additional Inherited Members

Static Public Member Functions inherited from echomap::Object< FrequencySpectrum >
static std::string_view get_class_name () noexcept
Protected Member Functions inherited from echomap::Object< FrequencySpectrum >
void move_identity_from (Object &&other) noexcept
 Helper for derived classes to provide move-assignment operations.

Detailed Description

A Signal sampled in the frequency domain.

Definition at line 26 of file FrequencySpectrum.hpp.

Constructor & Destructor Documentation

◆ FrequencySpectrum()

echomap::FrequencySpectrum::FrequencySpectrum ( WindowFunctions::AllFunctions preprocessor,
std::string_view name )
explicitprivate

Definition at line 67 of file FrequencySpectrum.cpp.

70 :
71 Object(name),
72 preprocessor(preprocessor)
73{
74}

Member Function Documentation

◆ begin()

decltype(FrequencySpectrum::bins) const_iterator echomap::FrequencySpectrum::begin ( ) const
nodiscard

Definition at line 17 of file FrequencySpectrum.cpp.

18{
19 return bins.begin();
20}

◆ cbegin()

decltype(FrequencySpectrum::bins) const_iterator echomap::FrequencySpectrum::cbegin ( ) const
nodiscardnoexcept

Definition at line 27 of file FrequencySpectrum.cpp.

28{
29 return bins.cbegin();
30}

◆ cend()

decltype(FrequencySpectrum::bins) const_iterator echomap::FrequencySpectrum::cend ( ) const
nodiscardnoexcept

Definition at line 32 of file FrequencySpectrum.cpp.

33{
34 return bins.cend();
35}

◆ emplace_bin()

void echomap::FrequencySpectrum::emplace_bin ( float frequency,
float magnitude,
float phase )
private

Definition at line 83 of file FrequencySpectrum.cpp.

88{
89 bins.emplace_back(frequency, magnitude, phase);
90
91 minimum_frequency = std::min(frequency, minimum_frequency);
92 maximum_frequency = std::max(frequency, maximum_frequency);
93
94 minimum_magnitude = std::min(magnitude, minimum_magnitude);
95 maximum_magnitude = std::max(magnitude, maximum_magnitude);
96}
T max(T... args)
T min(T... args)

◆ end()

decltype(FrequencySpectrum::bins) const_iterator echomap::FrequencySpectrum::end ( ) const
nodiscard

Definition at line 22 of file FrequencySpectrum.cpp.

23{
24 return bins.end();
25}

◆ get_bin_count()

std::size_t echomap::FrequencySpectrum::get_bin_count ( ) const
nodiscardnoexcept

Definition at line 37 of file FrequencySpectrum.cpp.

38{
39 return bins.size();
40}

◆ get_maximum_frequency()

float echomap::FrequencySpectrum::get_maximum_frequency ( ) const
nodiscardnoexcept

Definition at line 47 of file FrequencySpectrum.cpp.

48{
49 return maximum_frequency;
50}

◆ get_maximum_magnitude()

float echomap::FrequencySpectrum::get_maximum_magnitude ( ) const
nodiscardnoexcept

Definition at line 57 of file FrequencySpectrum.cpp.

58{
59 return maximum_magnitude;
60}

◆ get_minimum_frequency()

float echomap::FrequencySpectrum::get_minimum_frequency ( ) const
nodiscardnoexcept

Definition at line 42 of file FrequencySpectrum.cpp.

43{
44 return minimum_frequency;
45}

◆ get_minimum_magnitude()

float echomap::FrequencySpectrum::get_minimum_magnitude ( ) const
nodiscardnoexcept

Definition at line 52 of file FrequencySpectrum.cpp.

53{
54 return minimum_magnitude;
55}

◆ observe_preprocessor()

const WindowFunctions::AllFunctions & echomap::FrequencySpectrum::observe_preprocessor ( ) const
noexcept

Definition at line 62 of file FrequencySpectrum.cpp.

63{
64 return preprocessor;
65}

◆ reserve_bins()

void echomap::FrequencySpectrum::reserve_bins ( std::size_t bin_count)
private

Definition at line 76 of file FrequencySpectrum.cpp.

79{
80 bins.reserve(bin_count);
81}

Member Data Documentation

◆ bins

std::vector<Bin> echomap::FrequencySpectrum::bins
private

Definition at line 41 of file FrequencySpectrum.hpp.

◆ FrequencySpectrumFactory

friend echomap::FrequencySpectrum::FrequencySpectrumFactory
private

Definition at line 59 of file FrequencySpectrum.hpp.

◆ maximum_frequency

float echomap::FrequencySpectrum::maximum_frequency = std::numeric_limits<float>::min()
private

Definition at line 77 of file FrequencySpectrum.hpp.

◆ maximum_magnitude

float echomap::FrequencySpectrum::maximum_magnitude = std::numeric_limits<float>::min()
private

Definition at line 79 of file FrequencySpectrum.hpp.

◆ minimum_frequency

float echomap::FrequencySpectrum::minimum_frequency = std::numeric_limits<float>::max()
private

Definition at line 76 of file FrequencySpectrum.hpp.

◆ minimum_magnitude

float echomap::FrequencySpectrum::minimum_magnitude = std::numeric_limits<float>::max()
private

Definition at line 78 of file FrequencySpectrum.hpp.

◆ preprocessor

WindowFunctions::AllFunctions echomap::FrequencySpectrum::preprocessor
private

Definition at line 74 of file FrequencySpectrum.hpp.


The documentation for this class was generated from the following files: