Implements a PLL which locks to the input frequency and outputs the input signal mixed with that carrier.input: stream of complex; output: stream of complex.
More...
Public Member Functions |
bool | lock_detector (void) |
bool | squelch_enable (bool) |
float | set_lock_threshold (float) |
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
|
void | forecast (int noutput_items, gr_vector_int &ninput_items_required) |
| Estimate input requirements given output request.
|
int | general_work (int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) |
| compute output items from input items
|
int | fixed_rate_ninput_to_noutput (int ninput) |
| 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.
|
int | fixed_rate_noutput_to_ninput (int noutput) |
| 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.
|
virtual | ~gr_block () |
unsigned | history () const |
void | set_history (unsigned history) |
bool | fixed_rate () const |
| Return true if this block has a fixed input to output rate.
|
virtual bool | start () |
| Called to enable drivers, etc for i/o devices.
|
virtual bool | stop () |
| Called to disable drivers, etc for i/o devices.
|
void | set_output_multiple (int multiple) |
| Constrain the noutput_items argument passed to forecast and general_work.
|
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)
|
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.
|
void | consume_each (int how_many_items) |
| Tell the scheduler how_many_items were consumed on each input stream.
|
void | produce (int which_output, int how_many_items) |
| Tell the scheduler how_many_items were produced on output stream which_output .
|
void | set_relative_rate (double relative_rate) |
| Set the approximate output rate / input rate.
|
double | relative_rate () const |
| return the approximate output rate / input rate
|
uint64_t | nitems_read (unsigned int which_input) |
| Return the number of items read on input stream which_input.
|
uint64_t | nitems_written (unsigned int which_output) |
| Return the number of items written on output stream which_output.
|
tag_propagation_policy_t | tag_propagation_policy () |
| Asks for the policy used by the scheduler to moved tags downstream.
|
void | set_tag_propagation_policy (tag_propagation_policy_t p) |
| Set the policy by the scheduler to determine how tags are moved downstream.
|
gr_block_detail_sptr | detail () const |
void | set_detail (gr_block_detail_sptr detail) |
virtual | ~gr_basic_block () |
long | unique_id () const |
std::string | name () const |
gr_io_signature_sptr | input_signature () const |
gr_io_signature_sptr | output_signature () const |
gr_basic_block_sptr | to_basic_block () |
virtual bool | check_topology (int ninputs, int noutputs) |
| Confirm that ninputs and noutputs is an acceptable combination.
|
template<typename T > |
void | set_msg_handler (T msg_handler) |
| Set the callback that is fired when messages are available.
|
| gr_msg_accepter () |
| ~gr_msg_accepter () |
void | post (pmt::pmt_t msg) |
| send msg to msg_accepter
|
| msg_accepter () |
virtual | ~msg_accepter () |
| 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
|
void | advance_loop (float error) |
| update the system gains from the loop bandwidth and damping factor
|
void | phase_wrap () |
| Keep the phase between -2pi and 2pi.
|
void | frequency_limit () |
| Keep the frequency between d_min_freq and d_max_freq.
|
void | set_loop_bandwidth (float bw) |
| Set the loop bandwidth.
|
void | set_damping_factor (float df) |
| Set the loop damping factor.
|
void | set_alpha (float alpha) |
| Set the loop gain alpha.
|
void | set_beta (float beta) |
| Set the loop gain beta.
|
void | set_frequency (float freq) |
| Set the Costas loop's frequency.
|
void | set_phase (float phase) |
| Set the Costas loop's phase.
|
float | get_loop_bandwidth () const |
| Returns the loop bandwidth.
|
float | get_damping_factor () const |
| Returns the loop damping factor.
|
float | get_alpha () const |
| Returns the loop gain alpha.
|
float | get_beta () const |
| Returns the loop gain beta.
|
float | get_frequency () const |
| Get the Costas loop's frequency estimate.
|
float | get_phase () const |
| Get the Costas loop's phase estimate.
|
Implements a PLL which locks to the input frequency and outputs the input signal mixed with that carrier.
input: stream of complex; output: stream of 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 determins the lock range and should be set around pi/200 – 2pi/100.
- See Also
- gr_pll_freqdet_cf, gr_pll_carriertracking_cc