|
GNU Radio 3.6.4.2 C++ API
|
Implements a PLL which locks to the input frequency and outputs an estimate of that frequency. Useful for FM Demod.input: stream of complex; output: stream of floats. More...
#include <gr_pll_freqdet_cf.h>
Friends | |
| GR_CORE_API gr_pll_freqdet_cf_sptr | gr_make_pll_freqdet_cf (float loop_bw, float max_freq, float min_freq) |
Additional Inherited Members | |
Public Types inherited from gr_block | |
| enum | { WORK_CALLED_PRODUCE = -2, WORK_DONE = -1 } |
| Return options for the work call. More... | |
| enum | tag_propagation_policy_t { TPP_DONT = 0, TPP_ALL_TO_ALL = 1, TPP_ONE_TO_ONE = 2 } |
| typedef std::deque< pmt::pmt_t > | msg_queue_t |
| typedef std::map< pmt::pmt_t, msg_queue_t, pmt::pmt_comperator > | msg_queue_map_t |
| typedef std::map< pmt::pmt_t, msg_queue_t, pmt::pmt_comperator > ::iterator | msg_queue_map_itr |
| typedef boost::function< void(pmt::pmt_t)> | msg_handler_t |
| typedef std::map< pmt::pmt_t, msg_handler_t, pmt::pmt_comperator > | d_msg_handlers_t |
Public Member Functions inherited from gr_sync_block | |
| gr_sync_block (void) | |
| gr_sync_block (const std::string &name, gr_io_signature_sptr input_signature, gr_io_signature_sptr output_signature) | |
| virtual | ~gr_sync_block (void) |
| int | general_work (int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) |
| implements work -> calls work More... | |
Public Member Functions inherited from gr_block | |
| gr_block (void) | |
| gr_block (const std::string &name, gr_io_signature_sptr input_signature, gr_io_signature_sptr output_signature) | |
| long | unique_id (void) const |
| std::string | name (void) const |
| virtual | ~gr_block (void) |
| gr_io_signature_sptr | input_signature (void) const |
| gr_io_signature_sptr | output_signature (void) const |
| void | set_input_signature (gr_io_signature_sptr sig) |
| void | set_output_signature (gr_io_signature_sptr sig) |
| virtual bool | check_topology (int ninputs, int noutputs) |
| virtual void | forecast (int, std::vector< int > &) |
| Overload me! I am the forecast. More... | |
| virtual bool | start (void) |
| virtual bool | stop (void) |
| void | consume_each (const int how_many_items) |
| Call during work to consume items. More... | |
| void | consume (const size_t i, const int how_many_items) |
| void | produce (const size_t o, const int how_many_items) |
| uint64_t | nitems_read (const size_t which_input=0) |
| Get absolute count of all items consumed on the given input port. More... | |
| uint64_t | nitems_written (const size_t which_output=0) |
| Get absolute count of all items produced on the given output port. More... | |
| void | add_item_tag (const size_t which_output, const gr_tag_t &tag) |
| void | add_item_tag (const size_t which_output, uint64_t abs_offset, const pmt::pmt_t &key, const pmt::pmt_t &value, const pmt::pmt_t &srcid=pmt::PMT_F) |
| void | get_tags_in_range (std::vector< gr_tag_t > &tags, const size_t which_input, uint64_t abs_start, uint64_t abs_end, const pmt::pmt_t &key=pmt::pmt_t()) |
| void | set_alignment (const size_t alignment) |
| bool | is_unaligned (void) |
| size_t | fixed_rate_noutput_to_ninput (const size_t noutput_items) |
| size_t | interpolation (void) const |
| void | set_interpolation (const size_t) |
| size_t | decimation (void) const |
| void | set_decimation (const size_t) |
| int | max_noutput_items (void) const |
| void | set_max_noutput_items (int) |
| void | unset_max_noutput_items (void) |
| bool | is_set_max_noutput_items (void) const |
| unsigned | history (void) const |
| void | set_history (unsigned history) |
| void | set_fixed_rate (const bool fixed_rate) |
| bool | fixed_rate (void) const |
| Get the fixed rate setting. More... | |
| void | set_relative_rate (const double relative_rate) |
| double | relative_rate (void) const |
| Get the relative rate setting. More... | |
| void | set_output_multiple (const size_t multiple) |
| size_t | output_multiple (void) const |
| Get the output multiple setting. More... | |
| tag_propagation_policy_t | tag_propagation_policy (void) |
| void | set_tag_propagation_policy (tag_propagation_policy_t p) |
| void | set_max_output_buffer (long) |
| void | set_max_output_buffer (int, long) |
| long | max_output_buffer (size_t) |
| void | set_min_output_buffer (long) |
| void | set_min_output_buffer (int, long) |
| long | min_output_buffer (size_t) |
| std::string | symbol_name () const |
| bool | alias_set () |
| std::string | alias () |
| pmt::pmt_t | alias_pmt () |
| void | set_block_alias (std::string name) |
| template<typename T > | |
| void | set_msg_handler (pmt::pmt_t which_port, T msg_handler) |
| void | message_port_register_in (pmt::pmt_t) |
| void | message_port_register_out (pmt::pmt_t) |
| void | message_port_pub (pmt::pmt_t, pmt::pmt_t) |
| void | message_port_sub (pmt::pmt_t, pmt::pmt_t) |
| void | message_port_unsub (pmt::pmt_t, pmt::pmt_t) |
| virtual bool | message_port_is_hier (pmt::pmt_t port_id) |
| virtual bool | message_port_is_hier_in (pmt::pmt_t port_id) |
| virtual bool | message_port_is_hier_out (pmt::pmt_t port_id) |
| pmt::pmt_t | message_ports_in () |
| Get input message port names. More... | |
| pmt::pmt_t | message_ports_out () |
| Get output message port names. More... | |
| bool | empty_p (pmt::pmt_t which_port) |
| is the queue empty? More... | |
| bool | empty_p () |
| void | insert_tail (pmt::pmt_t, pmt::pmt_t) |
| pmt::pmt_t | delete_head_nowait (pmt::pmt_t) |
| pmt::pmt_t | delete_head_blocking (pmt::pmt_t) |
| msg_queue_t::iterator | get_iterator (pmt::pmt_t which_port) |
| void | erase_msg (pmt::pmt_t which_port, msg_queue_t::iterator it) |
| virtual bool | has_msg_port (pmt::pmt_t which_port) |
| bool | has_msg_handler (pmt::pmt_t which_port) |
Tests if there is a handler attached to port which_port. More... | |
| virtual void | dispatch_msg (pmt::pmt_t which_port, pmt::pmt_t msg) |
| void | set_processor_affinity (const std::vector< int > &mask) |
Set the thread's affinity to processor core n. More... | |
| void | unset_processor_affinity () |
| Remove processor affinity to a specific core. More... | |
| std::vector< int > | processor_affinity () |
| Get the current processor affinity. More... | |
| void | work (const InputItems &, const OutputItems &) |
| implements work -> calls general work More... | |
| void | notify_topology (const size_t, const size_t) |
| notifications of new topological commits More... | |
| void | notify_active (void) |
| start notification More... | |
| void | notify_inactive (void) |
| stop notification More... | |
| virtual void | propagate_tags (const size_t, const gras::TagIter &) |
| implements tag_propagation_policy() More... | |
| void | _update_input_reserve (void) |
| gras::BufferQueueSptr | input_buffer_allocator (const size_t, const gras::SBufferConfig &) |
| gras::BufferQueueSptr | output_buffer_allocator (const size_t, const gras::SBufferConfig &) |
Public Member Functions inherited from gri_control_loop | |
| gri_control_loop (float loop_bw, float max_freq, float min_freq) | |
| virtual | ~gri_control_loop () |
| void | update_gains () |
| update the system gains from the loop bandwidth and damping factor More... | |
| void | advance_loop (float error) |
| update the system gains from the loop bandwidth and damping factor More... | |
| void | phase_wrap () |
| Keep the phase between -2pi and 2pi. More... | |
| void | frequency_limit () |
| Keep the frequency between d_min_freq and d_max_freq. More... | |
| void | set_loop_bandwidth (float bw) |
| Set the loop bandwidth. More... | |
| void | set_damping_factor (float df) |
| Set the loop damping factor. More... | |
| void | set_alpha (float alpha) |
| Set the loop gain alpha. More... | |
| void | set_beta (float beta) |
| Set the loop gain beta. More... | |
| void | set_frequency (float freq) |
| Set the control loop's frequency. More... | |
| void | set_phase (float phase) |
| Set the control loop's phase. More... | |
| void | set_max_freq (float freq) |
| Set the control loop's maximum frequency. More... | |
| void | set_min_freq (float freq) |
| Set the control loop's minimum frequency. More... | |
| float | get_loop_bandwidth () const |
| Returns the loop bandwidth. More... | |
| float | get_damping_factor () const |
| Returns the loop damping factor. More... | |
| float | get_alpha () const |
| Returns the loop gain alpha. More... | |
| float | get_beta () const |
| Returns the loop gain beta. More... | |
| float | get_frequency () const |
| Get the control loop's frequency estimate. More... | |
| float | get_phase () const |
| Get the control loop's phase estimate. More... | |
| float | get_max_freq () const |
| Get the control loop's maximum frequency. More... | |
| float | get_min_freq () const |
| Get the control loop's minimum frequency. More... | |
Public Attributes inherited from gr_block | |
| long | _unique_id |
| std::string | _name |
| std::string | d_symbol_alias |
| std::string | d_symbol_name |
| msg_queue_map_t | msg_queue |
| pmt::pmt_t | message_subscribers |
| d_msg_handlers_t | d_msg_handlers |
| gruel::mutex | d_setlock |
| std::vector< int > | d_affinity |
| gr_vector_int | _work_ninput_items |
| gr_vector_int | _fcast_ninput_items |
| size_t | _num_outputs |
| ptrdiff_t | _work_io_ptr_mask |
| size_t | _output_multiple_items |
| double | _relative_rate |
| bool | _enable_fixed_rate |
| size_t | _input_history_items |
| tag_propagation_policy_t | _tag_prop_policy |
| size_t | _interp |
| size_t | _decim |
| gr_io_signature_sptr | _in_sig |
| gr_io_signature_sptr | _out_sig |
Protected Attributes inherited from gri_control_loop | |
| float | d_phase |
| float | d_freq |
| float | d_max_freq |
| float | d_min_freq |
| float | d_damping |
| float | d_loop_bw |
| float | d_alpha |
| float | d_beta |
Implements a PLL which locks to the input frequency and outputs an estimate of that frequency. Useful for FM Demod.
input: stream of complex; output: stream of floats.
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.
|
friend |