GNU Radio 3.7.1 C++ API
|
Implements a PLL which locks to the input frequency and outputs an estimate of that frequency. Useful for FM Demod. More...
#include <pll_freqdet_cf.h>
Public Types | |
typedef boost::shared_ptr < pll_freqdet_cf > | sptr |
Public Member Functions | |
virtual void | set_loop_bandwidth (float bw)=0 |
Set the loop bandwidth. | |
virtual void | set_damping_factor (float df)=0 |
Set the loop damping factor. | |
virtual void | set_alpha (float alpha)=0 |
Set the loop gain alpha. | |
virtual void | set_beta (float beta)=0 |
Set the loop gain beta. | |
virtual void | set_frequency (float freq)=0 |
Set the control loop's frequency. | |
virtual void | set_phase (float phase)=0 |
Set the control loop's phase. | |
virtual void | set_min_freq (float freq)=0 |
Set the control loop's minimum frequency. | |
virtual void | set_max_freq (float freq)=0 |
Set the control loop's maximum frequency. | |
virtual float | get_loop_bandwidth () const =0 |
Returns the loop bandwidth. | |
virtual float | get_damping_factor () const =0 |
Returns the loop damping factor. | |
virtual float | get_alpha () const =0 |
Returns the loop gain alpha. | |
virtual float | get_beta () const =0 |
Returns the loop gain beta. | |
virtual float | get_frequency () const =0 |
Get the control loop's frequency estimate. | |
virtual float | get_phase () const =0 |
Get the control loop's phase estimate. | |
virtual float | get_min_freq () const =0 |
Get the control loop's minimum frequency. | |
virtual float | get_max_freq () const =0 |
Get the control loop's maximum frequency. | |
Static Public Member Functions | |
static sptr | make (float loop_bw, float max_freq, float min_freq) |
Implements a PLL which locks to the input frequency and outputs an estimate of that frequency. Useful for FM Demod.
Input stream 0: complex Output stream 0: float
This PLL locks onto a [possibly noisy] reference carrier on the input and outputs an estimate of that frequency in radians per sample. All settings max_freq and min_freq are in terms of radians per sample, NOT HERTZ. The loop bandwidth determins the lock range and should be set around pi/200 -- 2pi/100.
virtual float gr::analog::pll_freqdet_cf::get_alpha | ( | ) | const [pure virtual] |
Returns the loop gain alpha.
Reimplemented from gr::blocks::control_loop.
virtual float gr::analog::pll_freqdet_cf::get_beta | ( | ) | const [pure virtual] |
Returns the loop gain beta.
Reimplemented from gr::blocks::control_loop.
virtual float gr::analog::pll_freqdet_cf::get_damping_factor | ( | ) | const [pure virtual] |
Returns the loop damping factor.
Reimplemented from gr::blocks::control_loop.
virtual float gr::analog::pll_freqdet_cf::get_frequency | ( | ) | const [pure virtual] |
Get the control loop's frequency estimate.
Reimplemented from gr::blocks::control_loop.
virtual float gr::analog::pll_freqdet_cf::get_loop_bandwidth | ( | ) | const [pure virtual] |
Returns the loop bandwidth.
Reimplemented from gr::blocks::control_loop.
virtual float gr::analog::pll_freqdet_cf::get_max_freq | ( | ) | const [pure virtual] |
Get the control loop's maximum frequency.
Reimplemented from gr::blocks::control_loop.
virtual float gr::analog::pll_freqdet_cf::get_min_freq | ( | ) | const [pure virtual] |
Get the control loop's minimum frequency.
Reimplemented from gr::blocks::control_loop.
virtual float gr::analog::pll_freqdet_cf::get_phase | ( | ) | const [pure virtual] |
Get the control loop's phase estimate.
Reimplemented from gr::blocks::control_loop.
static sptr gr::analog::pll_freqdet_cf::make | ( | float | loop_bw, |
float | max_freq, | ||
float | min_freq | ||
) | [static] |
virtual void gr::analog::pll_freqdet_cf::set_alpha | ( | float | alpha | ) | [pure virtual] |
Set the loop gain alpha.
Set's the loop filter's alpha gain parameter.
This value should really only be set by adjusting the loop bandwidth and damping factor.
alpha | (float) new alpha gain |
Reimplemented from gr::blocks::control_loop.
virtual void gr::analog::pll_freqdet_cf::set_beta | ( | float | beta | ) | [pure virtual] |
Set the loop gain beta.
Set's the loop filter's beta gain parameter.
This value should really only be set by adjusting the loop bandwidth and damping factor.
beta | (float) new beta gain |
Reimplemented from gr::blocks::control_loop.
virtual void gr::analog::pll_freqdet_cf::set_damping_factor | ( | float | df | ) | [pure virtual] |
Set the loop damping factor.
Set the loop filter's damping factor to df
. The damping factor should be sqrt(2)/2.0 for critically damped systems. Set it to anything else only if you know what you are doing. It must be a number between 0 and 1.
When a new damping factor is set, the gains, alpha and beta, of the loop are recalculated by a call to update_gains().
df | (float) new damping factor |
Reimplemented from gr::blocks::control_loop.
virtual void gr::analog::pll_freqdet_cf::set_frequency | ( | float | freq | ) | [pure virtual] |
Set the control loop's frequency.
Set's the control loop's frequency. While this is normally updated by the inner loop of the algorithm, it could be useful to manually initialize, set, or reset this under certain circumstances.
freq | (float) new frequency |
Reimplemented from gr::blocks::control_loop.
virtual void gr::analog::pll_freqdet_cf::set_loop_bandwidth | ( | float | bw | ) | [pure virtual] |
Set the loop bandwidth.
Set the loop filter's bandwidth to bw
. This should be between 2*pi/200 and 2*pi/100 (in rads/samp). It must also be a positive number.
When a new damping factor is set, the gains, alpha and beta, of the loop are recalculated by a call to update_gains().
bw | (float) new bandwidth |
Reimplemented from gr::blocks::control_loop.
virtual void gr::analog::pll_freqdet_cf::set_max_freq | ( | float | freq | ) | [pure virtual] |
Set the control loop's maximum frequency.
Set the maximum frequency the control loop can track.
freq | (float) new max frequency |
Reimplemented from gr::blocks::control_loop.
virtual void gr::analog::pll_freqdet_cf::set_min_freq | ( | float | freq | ) | [pure virtual] |
Set the control loop's minimum frequency.
Set the minimum frequency the control loop can track.
freq | (float) new min frequency |
Reimplemented from gr::blocks::control_loop.
virtual void gr::analog::pll_freqdet_cf::set_phase | ( | float | phase | ) | [pure virtual] |
Set the control loop's phase.
Set's the control loop's phase. While this is normally updated by the inner loop of the algorithm, it could be useful to manually initialize, set, or reset this under certain circumstances.
phase | (float) new phase |
Reimplemented from gr::blocks::control_loop.