Implements a PLL which locks to the input frequency and outputs the input signal mixed with that carrier.
More...
|
| virtual bool | lock_detector (void)=0 |
| |
| virtual bool | squelch_enable (bool)=0 |
| |
| virtual float | set_lock_threshold (float)=0 |
| |
| void | set_loop_bandwidth (float bw) override=0 |
| | Set the loop bandwidth. More...
|
| |
| virtual void | set_damping_factor (float df)=0 |
| |
| virtual void | set_alpha (float alpha)=0 |
| |
| virtual void | set_beta (float beta)=0 |
| |
| virtual void | set_frequency (float freq)=0 |
| |
| virtual void | set_phase (float phase)=0 |
| |
| virtual void | set_min_freq (float freq)=0 |
| |
| virtual void | set_max_freq (float freq)=0 |
| |
| virtual float | get_loop_bandwidth () const =0 |
| |
| virtual float | get_damping_factor () const =0 |
| |
| virtual float | get_alpha () const =0 |
| |
| virtual float | get_beta () const =0 |
| |
| virtual float | get_frequency () const =0 |
| |
| virtual float | get_phase () const =0 |
| |
| virtual float | get_min_freq () const =0 |
| |
| virtual float | get_max_freq () const =0 |
| |
| virtual int | work (int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)=0 |
| | just like gr::block::general_work, only this arranges to call consume_each for you More...
|
| |
| void | forecast (int noutput_items, gr_vector_int &ninput_items_required) override |
| | Estimate input requirements given output request. More...
|
| |
| int | general_work (int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) override |
| | compute output items from input items More...
|
| |
| int | fixed_rate_ninput_to_noutput (int ninput) override |
| | Given ninput samples, return number of output samples that will be produced. N.B. this is only defined if fixed_rate returns true. Generally speaking, you don't need to override this. More...
|
| |
| int | fixed_rate_noutput_to_ninput (int noutput) override |
| | Given noutput samples, return number of input samples required to produce noutput. N.B. this is only defined if fixed_rate returns true. Generally speaking, you don't need to override this. More...
|
| |
| | ~block () override |
| |
| unsigned | history () const |
| |
| void | set_history (unsigned history) |
| |
| void | declare_sample_delay (int which, unsigned delay) |
| |
| void | declare_sample_delay (unsigned delay) |
| |
| unsigned | sample_delay (int which) const |
| |
| bool | fixed_rate () const |
| | Return true if this block has a fixed input to output rate. More...
|
| |
| virtual bool | start () |
| | Called to enable drivers, etc for i/o devices. More...
|
| |
| virtual bool | stop () |
| | Called to disable drivers, etc for i/o devices. More...
|
| |
| void | set_output_multiple (int multiple) |
| | Constrain the noutput_items argument passed to forecast and general_work. More...
|
| |
| int | output_multiple () const |
| |
| bool | output_multiple_set () const |
| |
| void | set_alignment (int multiple) |
| | Constrains buffers to work on a set item alignment (for SIMD) More...
|
| |
| int | alignment () const |
| |
| void | set_unaligned (int na) |
| |
| int | unaligned () const |
| |
| void | set_is_unaligned (bool u) |
| |
| bool | is_unaligned () const |
| |
| void | consume (int which_input, int how_many_items) |
| | Tell the scheduler how_many_items of input stream which_input were consumed. More...
|
| |
| void | consume_each (int how_many_items) |
| | Tell the scheduler how_many_items were consumed on each input stream. More...
|
| |
| void | produce (int which_output, int how_many_items) |
| | Tell the scheduler how_many_items were produced on output stream which_output. More...
|
| |
| void | set_relative_rate (double relative_rate) |
| | Set the approximate output rate / input rate. More...
|
| |
| void | set_inverse_relative_rate (double inverse_relative_rate) |
| | Set the approximate output rate / input rate using its reciprocal. More...
|
| |
| void | set_relative_rate (uint64_t interpolation, uint64_t decimation) |
| | Set the approximate output rate / input rate as an integer ratio. More...
|
| |
| double | relative_rate () const |
| | return the approximate output rate / input rate More...
|
| |
| uint64_t | relative_rate_i () const |
| | return the numerator, or interpolation rate, of the approximate output rate / input rate More...
|
| |
| uint64_t | relative_rate_d () const |
| | return the denominator, or decimation rate, of the approximate output rate / input rate More...
|
| |
| mpq_class & | mp_relative_rate () |
| | return a reference to the multiple precision rational representation of the approximate output rate / input rate More...
|
| |
| uint64_t | nitems_read (unsigned int which_input) |
| | Return the number of items read on input stream which_input. More...
|
| |
| uint64_t | nitems_written (unsigned int which_output) |
| | Return the number of items written on output stream which_output. More...
|
| |
| tag_propagation_policy_t | tag_propagation_policy () |
| | Asks for the policy used by the scheduler to moved tags downstream. More...
|
| |
| void | set_tag_propagation_policy (tag_propagation_policy_t p) |
| | Set the policy by the scheduler to determine how tags are moved downstream. More...
|
| |
| int | min_noutput_items () const |
| | Return the minimum number of output items this block can produce during a call to work. More...
|
| |
| void | set_min_noutput_items (int m) |
| | Set the minimum number of output items this block can produce during a call to work. More...
|
| |
| int | max_noutput_items () |
| | Return the maximum number of output items this block will handle during a call to work. More...
|
| |
| void | set_max_noutput_items (int m) |
| | Set the maximum number of output items this block will handle during a call to work. More...
|
| |
| void | unset_max_noutput_items () |
| | Clear the switch for using the max_noutput_items value of this block. More...
|
| |
| bool | is_set_max_noutput_items () |
| | Ask the block if the flag is or is not set to use the internal value of max_noutput_items during a call to work. More...
|
| |
| void | expand_minmax_buffer (int port) |
| |
| long | max_output_buffer (size_t i) |
| | Returns max buffer size on output port i. More...
|
| |
| void | set_max_output_buffer (long max_output_buffer) |
| | Request limit on max buffer size on all output ports. More...
|
| |
| void | set_max_output_buffer (int port, long max_output_buffer) |
| | Request limit on max buffer size on output port port. More...
|
| |
| long | min_output_buffer (size_t i) |
| | Returns min buffer size on output port i. More...
|
| |
| void | set_min_output_buffer (long min_output_buffer) |
| | Request limit on the minimum buffer size on all output ports. More...
|
| |
| void | set_min_output_buffer (int port, long min_output_buffer) |
| | Request limit on min buffer size on output port port. More...
|
| |
| float | pc_noutput_items () |
| | Gets instantaneous noutput_items performance counter. More...
|
| |
| float | pc_noutput_items_avg () |
| | Gets average noutput_items performance counter. More...
|
| |
| float | pc_noutput_items_var () |
| | Gets variance of noutput_items performance counter. More...
|
| |
| float | pc_nproduced () |
| | Gets instantaneous num items produced performance counter. More...
|
| |
| float | pc_nproduced_avg () |
| | Gets average num items produced performance counter. More...
|
| |
| float | pc_nproduced_var () |
| | Gets variance of num items produced performance counter. More...
|
| |
| float | pc_input_buffers_full (int which) |
| | Gets instantaneous fullness of which input buffer. More...
|
| |
| float | pc_input_buffers_full_avg (int which) |
| | Gets average fullness of which input buffer. More...
|
| |
| float | pc_input_buffers_full_var (int which) |
| | Gets variance of fullness of which input buffer. More...
|
| |
| std::vector< float > | pc_input_buffers_full () |
| | Gets instantaneous fullness of all input buffers. More...
|
| |
| std::vector< float > | pc_input_buffers_full_avg () |
| | Gets average fullness of all input buffers. More...
|
| |
| std::vector< float > | pc_input_buffers_full_var () |
| | Gets variance of fullness of all input buffers. More...
|
| |
| float | pc_output_buffers_full (int which) |
| | Gets instantaneous fullness of which output buffer. More...
|
| |
| float | pc_output_buffers_full_avg (int which) |
| | Gets average fullness of which output buffer. More...
|
| |
| float | pc_output_buffers_full_var (int which) |
| | Gets variance of fullness of which output buffer. More...
|
| |
| std::vector< float > | pc_output_buffers_full () |
| | Gets instantaneous fullness of all output buffers. More...
|
| |
| std::vector< float > | pc_output_buffers_full_avg () |
| | Gets average fullness of all output buffers. More...
|
| |
| std::vector< float > | pc_output_buffers_full_var () |
| | Gets variance of fullness of all output buffers. More...
|
| |
| float | pc_work_time () |
| | Gets instantaneous clock cycles spent in work. More...
|
| |
| float | pc_work_time_avg () |
| | Gets average clock cycles spent in work. More...
|
| |
| float | pc_work_time_var () |
| | Gets average clock cycles spent in work. More...
|
| |
| float | pc_work_time_total () |
| | Gets total clock cycles spent in work. More...
|
| |
| float | pc_throughput_avg () |
| | Gets average throughput. More...
|
| |
| void | reset_perf_counters () |
| | Resets the performance counters. More...
|
| |
| void | setup_pc_rpc () |
| | Sets up export of perf. counters to ControlPort. Only called by the scheduler. More...
|
| |
| bool | is_pc_rpc_set () |
| | Checks if this block is already exporting perf. counters to ControlPort. More...
|
| |
| void | no_pc_rpc () |
| | If the block calls this in its constructor, it's perf. counters will not be exported. More...
|
| |
| void | set_processor_affinity (const std::vector< int > &mask) override |
| | Set the thread's affinity to processor core n. More...
|
| |
| void | unset_processor_affinity () override |
| | Remove processor affinity to a specific core. More...
|
| |
| std::vector< int > | processor_affinity () override |
| | Get the current processor affinity. More...
|
| |
| int | active_thread_priority () |
| | Get the current thread priority in use. More...
|
| |
| int | thread_priority () |
| | Get the current thread priority stored. More...
|
| |
| int | set_thread_priority (int priority) |
| | Set the current thread priority. More...
|
| |
| bool | update_rate () const |
| |
| void | system_handler (pmt::pmt_t msg) |
| | the system message handler More...
|
| |
| void | set_log_level (std::string level) override |
| | Set the logger's output level. More...
|
| |
| std::string | log_level () override |
| | Get the logger's output level. More...
|
| |
| bool | finished () |
| | returns true when execution has completed due to a message connection More...
|
| |
| block_detail_sptr | detail () const |
| |
| void | set_detail (block_detail_sptr detail) |
| |
| void | notify_msg_neighbors () |
| | Tell msg neighbors we are finished. More...
|
| |
| void | clear_finished () |
| | Make sure we don't think we are finished. More...
|
| |
| std::string | identifier () const |
| |
| pmt::pmt_t | message_subscribers (pmt::pmt_t port) |
| |
| | ~basic_block () override |
| |
| long | unique_id () const |
| |
| long | symbolic_id () const |
| |
| std::string | name () const |
| |
| std::string | symbol_name () const |
| |
| std::string | identifier () const |
| |
| gr::io_signature::sptr | input_signature () const |
| |
| gr::io_signature::sptr | output_signature () const |
| |
| basic_block_sptr | to_basic_block () |
| |
| bool | alias_set () const |
| |
| std::string | alias () const |
| |
| pmt::pmt_t | alias_pmt () const |
| |
| void | set_block_alias (std::string name) |
| |
| void | message_port_register_in (pmt::pmt_t port_id) |
| |
| void | message_port_register_out (pmt::pmt_t port_id) |
| |
| void | message_port_pub (pmt::pmt_t port_id, pmt::pmt_t msg) |
| |
| void | message_port_sub (pmt::pmt_t port_id, pmt::pmt_t target) |
| |
| void | message_port_unsub (pmt::pmt_t port_id, pmt::pmt_t target) |
| |
| 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...
|
| |
| void | _post (pmt::pmt_t which_port, pmt::pmt_t msg) |
| |
| bool | empty_p (pmt::pmt_t which_port) |
| | is the queue empty? More...
|
| |
| bool | empty_p () |
| |
| bool | empty_handled_p (pmt::pmt_t which_port) |
| | are all msg ports with handlers empty? More...
|
| |
| bool | empty_handled_p () |
| |
| size_t | nmsgs (pmt::pmt_t which_port) |
| | How many messages in the queue? More...
|
| |
| void | insert_tail (pmt::pmt_t which_port, pmt::pmt_t msg) |
| |
| pmt::pmt_t | delete_head_nowait (pmt::pmt_t which_port) |
| |
| 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) |
| |
| const msg_queue_map_t & | get_msg_map (void) const |
| |
| virtual void | setup_rpc () |
| | Set up the RPC registered variables. More...
|
| |
| bool | is_rpc_set () |
| | Ask if this block has been registered to the RPC. More...
|
| |
| void | rpc_set () |
| | When the block is registered with the RPC, set this. More...
|
| |
| virtual bool | check_topology (int ninputs, int noutputs) |
| | Confirm that ninputs and noutputs is an acceptable combination. More...
|
| |
| template<typename T > |
| void | set_msg_handler (pmt::pmt_t which_port, T msg_handler) |
| | Set the callback that is fired when messages are available. More...
|
| |
| | msg_accepter () |
| |
| | ~msg_accepter () override |
| |
| void | post (pmt::pmt_t which_port, pmt::pmt_t msg) override |
| | send msg to msg_accepter on port which_port More...
|
| |
| | msg_accepter () |
| |
| | control_loop (void) |
| |
| | control_loop (float loop_bw, float max_freq, float min_freq) |
| |
| virtual | ~control_loop () |
| |
| void | update_gains () |
| | Update the system gains from the loop bandwidth and damping factor. More...
|
| |
| void | advance_loop (float error) |
| | Advance the control loop based on the current gain settings and the inputted error signal. 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_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...
|
| |
Implements a PLL which locks to the input frequency and outputs the input signal mixed with that carrier.
Input stream 0: complex Output stream 0: complex
This PLL locks onto a [possibly noisy] reference carrier on the input and outputs that signal, downconverted to DC
All settings max_freq and min_freq are in terms of radians per sample, NOT HERTZ. The loop bandwidth determines the lock range and should be set around pi/200 – 2pi/100.
- See also
- pll_freqdet_cf, pll_carriertracking_cc