return (sample.real()*sample.imag());
}
+void
+gr_costas_loop_cc::set_alpha(float alpha)
+{
+ d_alpha = alpha;
+}
+
+void
+gr_costas_loop_cc::set_beta(float beta)
+{
+ d_beta = beta;
+}
+
int
gr_costas_loop_cc::work (int noutput_items,
gr_vector_const_void_star &input_items,
*/
float phase_detector_4(gr_complex sample) const; // for QPSK
- /*! \breif the phase detector circuit for second-order loops
+ /*! \brief the phase detector circuit for second-order loops
* \param a complex sample
* \return the phase error
*/
public:
+ /*! \brief set the first order gain
+ * \param alpha
+ */
+ void set_alpha(float alpha);
+
+ /*! \brief get the first order gain
+ *
+ */
+ float alpha() const { return d_alpha; }
+
+ /*! \brief set the second order gain
+ * \param beta
+ */
+ void set_beta(float beta);
+
+ /*! \brief get the second order gain
+ *
+ */
+ float beta() const { return d_beta; }
+
int work (int noutput_items,
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items);
private:
gr_costas_loop_cc (float alpha, float beta,
float max_freq, float min_freq, int order);
+
+ public:
+ void set_alpha(float alpha);
+ float alpha();
+ void set_beta(float beta);
+ float beta();
+
};