31 void upsample(std::span<const ComplexType> in,
unsigned size, std::span<ComplexType> out);
39 std::vector<ComplexType>
downsample(std::span<const ComplexType> in);
65 virtual void filter(std::span<RealType> samples) = 0;
107 void filter(std::span<RealType> samples)
noexcept override;
110 std::vector<RealType> _a;
111 std::vector<RealType> _b;
112 std::vector<RealType> _w;
129 _filter(coeffs.begin(), coeffs.end()), _w(coeffs.size()), _order(coeffs.size())
137 void filter(std::span<RealType> )
noexcept override {}
144 void filter(std::vector<ComplexType>& samples)
const;
147 std::vector<RealType> _filter;
148 std::vector<RealType> _w;
Implements a specialized upsampler with a fixed upsampling factor of 10.
DecadeUpsampler & operator=(const DecadeUpsampler &)=delete
~DecadeUpsampler()=default
DecadeUpsampler(const DecadeUpsampler &)=delete
DecadeUpsampler(DecadeUpsampler &&) noexcept=default
Abstract base class for digital filters.
DspFilter(const DspFilter &)=delete
DspFilter & operator=(const DspFilter &)=delete
virtual ~DspFilter()=default
DspFilter(DspFilter &&) noexcept=default
virtual void filter(std::span< RealType > samples)=0
Filters a block of samples.
virtual RealType filter(RealType sample)=0
Filters a single sample.
Implements a Finite Impulse Response (FIR) filter.
void filter(std::span< RealType >) noexcept override
Filters a block of samples.
~FirFilter() override=default
FirFilter(std::span< const RealType > coeffs)
Constructs an FIR filter with the given coefficients.
RealType filter(RealType) override
Filters a single sample.
Implements an Infinite Impulse Response (IIR) filter.
~IirFilter() override=default
Global configuration file for the project.
double RealType
Type for real numbers.
void upsample(const std::span< const ComplexType > in, const unsigned size, std::span< ComplexType > out)
Upsamples a signal by a given ratio.
std::vector< ComplexType > downsample(std::span< const ComplexType > in)
Downsamples a signal by a given ratio.