eDSP  0.0.1
A cross-platform DSP library written in C++.
Public Types | Public Member Functions | List of all members
edsp::oscillators::square_oscillator< T > Class Template Reference

The class square_oscillator generates a square signal. More...

#include <square.hpp>

Inheritance diagram for edsp::oscillators::square_oscillator< T >:
edsp::oscillators::oscillator< T >

Public Types

using value_type = T
 
- Public Types inherited from edsp::oscillators::oscillator< T >
using value_type = T
 

Public Member Functions

constexpr square_oscillator (value_type amplitude, value_type samplerate, value_type frequency, value_type duty) noexcept
 Creates a square oscillator that generates a waveform with the configuration. More...
 
constexpr value_type operator() ()
 Generates one step. More...
 
constexpr void set_duty (value_type duty) noexcept
 Set the duty cycle of the oscillator. More...
 
constexpr value_type duty () const noexcept
 Returns the current duty cycle. More...
 
- Public Member Functions inherited from edsp::oscillators::oscillator< T >
constexpr oscillator (value_type amplitude, value_type samplerate, value_type frequency, value_type phase) noexcept
 Creates an oscillator that generates a waveform with the configuration. More...
 
constexpr value_type frequency () const noexcept
 Returns the fundamental frequency in Hz. More...
 
constexpr void set_frequency (value_type frequency) noexcept
 Sets the fundamental frequency of the periodic signal. More...
 
constexpr value_type phase () const noexcept
 Returns the phase shift in radians. More...
 
constexpr void set_phase (value_type phase) noexcept
 Sets the phase shift of the periodic signal. More...
 
constexpr value_type timestamp () const noexcept
 Returns the current timestamp of the signal in seconds. More...
 
constexpr void set_timestamp (value_type timestamp) noexcept
 Sets the current timestamp of the periodic signal. More...
 
constexpr value_type samplerate () const noexcept
 Returns the sampling frequency in Hz. More...
 
constexpr void set_samplerate (value_type samplerate) noexcept
 Sets the sampling frequency. More...
 
constexpr value_type sampling_period () const noexcept
 Returns the sampling period in secs. More...
 
constexpr value_type amplitude () const noexcept
 Returns the amplitude of the periodic signal. More...
 
constexpr void set_amplitude (value_type amplitude) noexcept
 Set the amplitude of the periodic signal. More...
 
constexpr void reset () noexcept
 Reset the oscillator to the original state. More...
 

Detailed Description

template<typename T>
class edsp::oscillators::square_oscillator< T >

The class square_oscillator generates a square signal.

The square wave can be constructed from straight line segments. The square waves contain a wide range of harmonics. It can be defined as simply the sign function of a sinusoid:

\[ {\displaystyle {\begin{aligned}x(t)&={sgn} \left(\sin {\frac {t}{T}}\right)={sgn}(\sin ft)\\v(t)&={sgn} \left(\cos {\frac {t}{T}}\right)={sgn}(\cos ft),\end{aligned}}} \]

which will be 1 when the sinusoid is positive, −1 when the sinusoid is negative, and 0 at the discontinuities. Here, T is the period of the square wave, or equivalently, f is its frequency, where f = 1/T.

Member Typedef Documentation

◆ value_type

template<typename T>
using edsp::oscillators::square_oscillator< T >::value_type = T

Constructor & Destructor Documentation

◆ square_oscillator()

template<typename T >
constexpr edsp::oscillators::square_oscillator< T >::square_oscillator ( value_type  amplitude,
value_type  samplerate,
value_type  frequency,
value_type  duty 
)
noexcept

Creates a square oscillator that generates a waveform with the configuration.

Parameters
amplitudeAmplitude of the waveform.
samplerateThe sampling frequency in Hz.
frequencyThe fundamental frequency of the signal (also known as pitch).
dutyDuty factor, numeric value from [0,1]

Member Function Documentation

◆ duty()

template<typename T >
constexpr square_oscillator< T >::value_type edsp::oscillators::square_oscillator< T >::duty ( ) const
noexcept

Returns the current duty cycle.

Returns
Numeric value representing the dity cycle.

◆ operator()()

template<typename T >
constexpr square_oscillator< T >::value_type edsp::oscillators::square_oscillator< T >::operator() ( )

Generates one step.

Returns
Returns the value of the current step.

◆ set_duty()

template<typename T >
constexpr void edsp::oscillators::square_oscillator< T >::set_duty ( value_type  duty)
noexcept

Set the duty cycle of the oscillator.

The duty cycle is the fraction of one period in which a signal or system is active. In this case a signal is active when the output is 1.

Parameters
dutyNumeric value representing the duty cycle [0, 1]

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