#include <gr_sync_block.h>
#include <stdexcept>
#include <fstream>


Go to the source code of this file.
Classes | |
| class | gr_costas_loop_cc |
| Carrier tracking PLL for QPSK
input: complex; output: complex | |
Typedefs | |
| typedef boost::shared_ptr < gr_costas_loop_cc > | gr_costas_loop_cc_sptr |
Functions | |
| gr_costas_loop_cc_sptr | gr_make_costas_loop_cc (float alpha, float beta, float max_freq, float min_freq, int order) throw (std::invalid_argument) |
| A Costas loop carrier recovery module. | |
| gr_costas_loop_cc_sptr gr_make_costas_loop_cc | ( | float | alpha, | |
| float | beta, | |||
| float | max_freq, | |||
| float | min_freq, | |||
| 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.
http://rfdesign.com/images/archive/0102Feigin20.pdf
| alpha | the loop gain used for phase adjustment | |
| beta | the loop gain for frequency adjustments | |
| max_freq | the maximum frequency deviation (normalized frequency) the loop can handle | |
| min_freq | the minimum frequency deviation (normalized frequency) the loop can handle | |
| order | the loop order, either 2 or 4 |
1.5.5