GNU Radio 3.6.5 C++ API
|
A Costas loop carrier recovery module. More...
#include <digital_costas_loop_cc.h>
Public Member Functions | |
int | work (int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) |
just like gr_block::general_work, only this arranges to call consume_each for you | |
Friends | |
DIGITAL_API digital_costas_loop_cc_sptr | digital_make_costas_loop_cc (float loop_bw, int order) throw (std::invalid_argument) |
A Costas loop carrier recovery module.
The Costas loop locks to the center frequency of a signal and downconverts it to baseband. The second (order=2) order loop is used for BPSK where the real part of the output signal is the baseband BPSK signal and the imaginary part is the error signal. When order=4, it can be used for quadrature modulations where both I and Q (real and imaginary) are outputted.
More details can be found online:
J. Feigin, "Practical Costas loop design: Designing a simple and inexpensive BPSK Costas loop carrier recovery circuit," RF signal processing, pp. 20-36, 2002.
int digital_costas_loop_cc::work | ( | int | noutput_items, |
gr_vector_const_void_star & | input_items, | ||
gr_vector_void_star & | output_items | ||
) | [virtual] |
just like gr_block::general_work, only this arranges to call consume_each for you
The user must override work to define the signal processing code
Implements gr_sync_block.
DIGITAL_API digital_costas_loop_cc_sptr digital_make_costas_loop_cc | ( | float | loop_bw, |
int | order | ||
) | throw (std::invalid_argument) [friend] |