Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 6e7a2755bd78c9deedab199b86e675f3 > files > 1510

gnuradio-doc-3.2.2-9.fc14.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>GNU Radio 3.2.2 C++ API: gr_mpsk_receiver_cc Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.3 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">GNU Radio 3.2.2 C++ API</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('classgr__mpsk__receiver__cc.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#friends">Friends</a>  </div>
  <div class="headertitle">
<h1>gr_mpsk_receiver_cc Class Reference<div class="ingroups"><a class="el" href="group__sync__blk.html">Synchronization</a></div></h1>  </div>
</div>
<div class="contents">
<!-- doxytag: class="gr_mpsk_receiver_cc" --><!-- doxytag: inherits="gr_block" -->
<p>This block takes care of receiving M-PSK modulated signals through phase, frequency, and symbol synchronization.This block takes care of receiving M-PSK modulated signals through phase, frequency, and symbol synchronization. It performs carrier frequency and phase locking as well as symbol timing recovery. It works with (D)BPSK, (D)QPSK, and (D)8PSK as tested currently. It should also work for OQPSK and PI/4 DQPSK.  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="gr__mpsk__receiver__cc_8h_source.html">gr_mpsk_receiver_cc.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for gr_mpsk_receiver_cc:</div>
<div class="dyncontent">
<div class="center"><img src="classgr__mpsk__receiver__cc__inherit__graph.png" border="0" usemap="#gr__mpsk__receiver__cc_inherit__map" alt="Inheritance graph"/></div>
<map name="gr__mpsk__receiver__cc_inherit__map" id="gr__mpsk__receiver__cc_inherit__map">
<area shape="rect" id="node2" href="classgr__block.html" title="The abstract base class for all &#39;terminal&#39; processing blocks.A signal processing flow is cons..." alt="" coords="44,83,113,112"/><area shape="rect" id="node4" href="classgr__basic__block.html" title="The abstract base class for all signal processing blocks.Basic blocks are the bare abstraction of an ..." alt="" coords="24,5,133,35"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classgr__mpsk__receiver__cc-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#a10ba226bab77791245135f070662dcf8">~gr_mpsk_receiver_cc</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#acfde40e3149cdf0981b00ec7fd8b6109">forecast</a> (int noutput_items, <a class="el" href="classstd_1_1vector.html">gr_vector_int</a> &amp;ninput_items_required)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Estimate input requirements given output request.  <a href="#acfde40e3149cdf0981b00ec7fd8b6109"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#aaa5dc2c51fc0a558733edfafbf95e4c9">general_work</a> (int noutput_items, <a class="el" href="classstd_1_1vector.html">gr_vector_int</a> &amp;ninput_items, <a class="el" href="classstd_1_1vector.html">gr_vector_const_void_star</a> &amp;input_items, <a class="el" href="classstd_1_1vector.html">gr_vector_void_star</a> &amp;output_items)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">compute output items from input items  <a href="#aaa5dc2c51fc0a558733edfafbf95e4c9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#a5a8d656fed27db70a3b90bf8e5739c58">mu</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">(M&amp;M) Returns current value of mu  <a href="#a5a8d656fed27db70a3b90bf8e5739c58"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#a871efa619b3de0882272c5c8def64250">omega</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">(M&amp;M) Returns current value of omega  <a href="#a871efa619b3de0882272c5c8def64250"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#ab35c94b9fa4206794dede51d2174f26f">gain_mu</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">(M&amp;M) Returns mu gain factor  <a href="#ab35c94b9fa4206794dede51d2174f26f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#a3bf2b3d7f8aa2f03b908ec1dd361ecb8">gain_omega</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">(M&amp;M) Returns omega gain factor  <a href="#a3bf2b3d7f8aa2f03b908ec1dd361ecb8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#a718112e3123378f3e79595c707564aec">set_mu</a> (float mu)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">(M&amp;M) Sets value of mu  <a href="#a718112e3123378f3e79595c707564aec"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#a5858d935798398ed16221641a6e00254">set_omega</a> (float omega)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">(M&amp;M) Sets value of omega and its min and max values  <a href="#a5858d935798398ed16221641a6e00254"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#a0f565a812cdf79bace6c9da16770c551">set_gain_mu</a> (float gain_mu)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">(M&amp;M) Sets value for mu gain factor  <a href="#a0f565a812cdf79bace6c9da16770c551"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#a38e6d044fed315c5b2c02d92aef05a41">set_gain_omega</a> (float gain_omega)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">(M&amp;M) Sets value for omega gain factor  <a href="#a38e6d044fed315c5b2c02d92aef05a41"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#a193dbf8c468eb40b901ea15d17f23837">alpha</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">(CL) Returns the value for alpha (the phase gain term)  <a href="#a193dbf8c468eb40b901ea15d17f23837"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#a2854f1584948a1ae9985c6466dc042bc">beta</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">(CL) Returns the value of beta (the frequency gain term)  <a href="#a2854f1584948a1ae9985c6466dc042bc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#a0e23b688c75c93f803c5e9ddf3635083">freq</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">(CL) Returns the current value of the frequency of the NCO in the Costas loop  <a href="#a0e23b688c75c93f803c5e9ddf3635083"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#a5ddaf419bdaa5e924d2c84e94edd47b2">phase</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">(CL) Returns the current value of the phase of the NCO in the Costal loop  <a href="#a5ddaf419bdaa5e924d2c84e94edd47b2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#a20a85bfa65ce8d48b02079866ad9be5c">set_alpha</a> (float alpha)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">(CL) Sets the value for alpha (the phase gain term)  <a href="#a20a85bfa65ce8d48b02079866ad9be5c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#aaad856bd04d823d99c1e42e050a6297e">set_beta</a> (float beta)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">(CL) Setss the value of beta (the frequency gain term)  <a href="#aaad856bd04d823d99c1e42e050a6297e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#aecbb08bd21f1d9a4b01a828a2177d4ec">set_freq</a> (float freq)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">(CL) Sets the current value of the frequency of the NCO in the Costas loop  <a href="#aecbb08bd21f1d9a4b01a828a2177d4ec"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#a67f26ed1d5099d3ef09b39e389e1e85f">set_phase</a> (float phase)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">(CL) Setss the current value of the phase of the NCO in the Costal loop  <a href="#a67f26ed1d5099d3ef09b39e389e1e85f"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#ad80459b4f33dba47f555263abe617ff2">gr_mpsk_receiver_cc</a> (unsigned int M, float theta, float alpha, float beta, float fmin, float fmax, float mu, float gain_mu, float omega, float gain_omega, float omega_rel)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor to synchronize incoming M-PSK symbols.  <a href="#ad80459b4f33dba47f555263abe617ff2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#a90c62a5f2f292dd19a89f27416abd99f">make_constellation</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#a9b2e8da6e563eaea5403bc7050d96ebc">mm_sampler</a> (const <a class="el" href="gr__complex_8h.html#aec4bfe41433369afae9327f1b0bc9109">gr_complex</a> symbol)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#a179ff1d027fc821ce6c14450bf66c880">mm_error_tracking</a> (<a class="el" href="gr__complex_8h.html#aec4bfe41433369afae9327f1b0bc9109">gr_complex</a> sample)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#af901b02e3430c22a8a61469892408c44">phase_error_tracking</a> (<a class="el" href="gr__complex_8h.html#aec4bfe41433369afae9327f1b0bc9109">gr_complex</a> sample)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#ac20b225f3beb3cc0c62c931cda71797e">phase_error_detector_generic</a> (<a class="el" href="gr__complex_8h.html#aec4bfe41433369afae9327f1b0bc9109">gr_complex</a> sample) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Phase error detector for MPSK modulations.  <a href="#ac20b225f3beb3cc0c62c931cda71797e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#a9dd3762234c6fa83673809e2a94b4bdb">phase_error_detector_bpsk</a> (<a class="el" href="gr__complex_8h.html#aec4bfe41433369afae9327f1b0bc9109">gr_complex</a> sample) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Phase error detector for BPSK modulation.  <a href="#a9dd3762234c6fa83673809e2a94b4bdb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#a53140b9e77b8f4b37cc04996319c3f2c">phase_error_detector_qpsk</a> (<a class="el" href="gr__complex_8h.html#aec4bfe41433369afae9327f1b0bc9109">gr_complex</a> sample) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Phase error detector for QPSK modulation.  <a href="#a53140b9e77b8f4b37cc04996319c3f2c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#a17ce465de930868d0e37017315458fa7">decision_generic</a> (<a class="el" href="gr__complex_8h.html#aec4bfe41433369afae9327f1b0bc9109">gr_complex</a> sample) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Decision maker for a generic MPSK constellation.  <a href="#a17ce465de930868d0e37017315458fa7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#a0233483a35601b8d8aa6cb4629014cf0">decision_bpsk</a> (<a class="el" href="gr__complex_8h.html#aec4bfe41433369afae9327f1b0bc9109">gr_complex</a> sample) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Decision maker for BPSK constellation.  <a href="#a0233483a35601b8d8aa6cb4629014cf0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#a93ebc560d653963f6100c62a81db84be">decision_qpsk</a> (<a class="el" href="gr__complex_8h.html#aec4bfe41433369afae9327f1b0bc9109">gr_complex</a> sample) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Decision maker for QPSK constellation.  <a href="#a93ebc560d653963f6100c62a81db84be"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="friends"></a>
Friends</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classboost_1_1shared__ptr.html">gr_mpsk_receiver_cc_sptr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgr__mpsk__receiver__cc.html#a302053914cb025ad3fe4eb65b9f30bf2">gr_make_mpsk_receiver_cc</a> (unsigned int M, float theta, float alpha, float beta, float fmin, float fmax, float mu, float gain_mu, float omega, float gain_omega, float omega_rel)</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>This block takes care of receiving M-PSK modulated signals through phase, frequency, and symbol synchronization.</p>
<p>This block takes care of receiving M-PSK modulated signals through phase, frequency, and symbol synchronization. It performs carrier frequency and phase locking as well as symbol timing recovery. It works with (D)BPSK, (D)QPSK, and (D)8PSK as tested currently. It should also work for OQPSK and PI/4 DQPSK. </p>
<p>The phase and frequency synchronization are based on a Costas loop that finds the error of the incoming signal point compared to its nearest constellation point. The frequency and phase of the NCO are updated according to this error. There are optimized phase error detectors for BPSK and QPSK, but 8PSK is done using a brute-force computation of the constellation points to find the minimum.</p>
<p>The symbol synchronization is done using a modified Mueller and Muller circuit from the paper:</p>
<p>G. R. Danesfahani, T.G. Jeans, "Optimisation of modified Mueller and Muller 
    algorithm," Electronics Letters, Vol. 31, no. 13, 22 June 1995, pp. 1032 - 1033.</p>
<p>This circuit interpolates the downconverted sample (using the NCO developed by the Costas loop) every mu samples, then it finds the sampling error based on this and the past symbols and the decision made on the samples. Like the phase error detector, there are optimized decision algorithms for BPSK and QPKS, but 8PSK uses another brute force computation against all possible symbols. The modifications to the M&amp;M used here reduce self-noise. </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a10ba226bab77791245135f070662dcf8"></a><!-- doxytag: member="gr_mpsk_receiver_cc::~gr_mpsk_receiver_cc" ref="a10ba226bab77791245135f070662dcf8" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">gr_mpsk_receiver_cc::~gr_mpsk_receiver_cc </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ad80459b4f33dba47f555263abe617ff2"></a><!-- doxytag: member="gr_mpsk_receiver_cc::gr_mpsk_receiver_cc" ref="ad80459b4f33dba47f555263abe617ff2" args="(unsigned int M, float theta, float alpha, float beta, float fmin, float fmax, float mu, float gain_mu, float omega, float gain_omega, float omega_rel)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">gr_mpsk_receiver_cc::gr_mpsk_receiver_cc </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>M</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>theta</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>alpha</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>beta</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>fmin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>fmax</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>mu</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>gain_mu</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>omega</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>gain_omega</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>omega_rel</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor to synchronize incoming M-PSK symbols. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">M</td><td>modulation order of the M-PSK modulation </td></tr>
    <tr><td class="paramname">theta</td><td>any constant phase rotation from the real axis of the constellation </td></tr>
    <tr><td class="paramname">alpha</td><td>gain parameter to adjust the phase in the Costas loop (~0.01) </td></tr>
    <tr><td class="paramname">beta</td><td>gain parameter to adjust the frequency in the Costas loop (~alpha^2/4) </td></tr>
    <tr><td class="paramname">fmin</td><td>minimum normalized frequency value the loop can achieve </td></tr>
    <tr><td class="paramname">fmax</td><td>maximum normalized frequency value the loop can achieve </td></tr>
    <tr><td class="paramname">mu</td><td>initial parameter for the interpolator [0,1] </td></tr>
    <tr><td class="paramname">gain_mu</td><td>gain parameter of the M&amp;M error signal to adjust mu (~0.05) </td></tr>
    <tr><td class="paramname">omega</td><td>initial value for the number of symbols between samples (~number of samples/symbol) </td></tr>
    <tr><td class="paramname">gain_omega</td><td>gain parameter to adjust omega based on the error (~omega^2/4) </td></tr>
    <tr><td class="paramname">omega_rel</td><td>sets the maximum (omega*(1+omega_rel)) and minimum (omega*(1+omega_rel)) omega (~0.005)</td></tr>
  </table>
  </dd>
</dl>
<p>The constructor also chooses which phase detector and decision maker to use in the work loop based on the value of M. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a193dbf8c468eb40b901ea15d17f23837"></a><!-- doxytag: member="gr_mpsk_receiver_cc::alpha" ref="a193dbf8c468eb40b901ea15d17f23837" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float gr_mpsk_receiver_cc::alpha </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>(CL) Returns the value for alpha (the phase gain term) </p>

<p>Referenced by <a class="el" href="classgr__mpsk__receiver__cc.html#a20a85bfa65ce8d48b02079866ad9be5c">set_alpha()</a>.</p>

</div>
</div>
<a class="anchor" id="a2854f1584948a1ae9985c6466dc042bc"></a><!-- doxytag: member="gr_mpsk_receiver_cc::beta" ref="a2854f1584948a1ae9985c6466dc042bc" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float gr_mpsk_receiver_cc::beta </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>(CL) Returns the value of beta (the frequency gain term) </p>

<p>Referenced by <a class="el" href="classgr__mpsk__receiver__cc.html#aaad856bd04d823d99c1e42e050a6297e">set_beta()</a>.</p>

</div>
</div>
<a class="anchor" id="a0233483a35601b8d8aa6cb4629014cf0"></a><!-- doxytag: member="gr_mpsk_receiver_cc::decision_bpsk" ref="a0233483a35601b8d8aa6cb4629014cf0" args="(gr_complex sample) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int gr_mpsk_receiver_cc::decision_bpsk </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="gr__complex_8h.html#aec4bfe41433369afae9327f1b0bc9109">gr_complex</a>&#160;</td>
          <td class="paramname"><em>sample</em></td><td>)</td>
          <td> const<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Decision maker for BPSK constellation. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sample</td><td>the baseband I&amp;Q sample from which to make the decision</td></tr>
  </table>
  </dd>
</dl>
<p>This decision maker is a simple slicer function that makes a decision on the symbol based on its placement on the real axis of greater than 0 or less than 0; the quadrature component is always 0.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the index to d_constellation that minimizes the error/ </dd></dl>

</div>
</div>
<a class="anchor" id="a17ce465de930868d0e37017315458fa7"></a><!-- doxytag: member="gr_mpsk_receiver_cc::decision_generic" ref="a17ce465de930868d0e37017315458fa7" args="(gr_complex sample) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int gr_mpsk_receiver_cc::decision_generic </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="gr__complex_8h.html#aec4bfe41433369afae9327f1b0bc9109">gr_complex</a>&#160;</td>
          <td class="paramname"><em>sample</em></td><td>)</td>
          <td> const<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Decision maker for a generic MPSK constellation. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sample</td><td>the baseband I&amp;Q sample from which to make the decision</td></tr>
  </table>
  </dd>
</dl>
<p>This decision maker is a generic implementation that does a brute-force search for the constellation point that minimizes the error between it and the incoming signal.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the index to d_constellation that minimizes the error/ </dd></dl>

</div>
</div>
<a class="anchor" id="a93ebc560d653963f6100c62a81db84be"></a><!-- doxytag: member="gr_mpsk_receiver_cc::decision_qpsk" ref="a93ebc560d653963f6100c62a81db84be" args="(gr_complex sample) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int gr_mpsk_receiver_cc::decision_qpsk </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="gr__complex_8h.html#aec4bfe41433369afae9327f1b0bc9109">gr_complex</a>&#160;</td>
          <td class="paramname"><em>sample</em></td><td>)</td>
          <td> const<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Decision maker for QPSK constellation. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sample</td><td>the baseband I&amp;Q sample from which to make the decision</td></tr>
  </table>
  </dd>
</dl>
<p>This decision maker is a simple slicer function that makes a decision on the symbol based on its placement versus both axes and returns which quadrant the symbol is in.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the index to d_constellation that minimizes the error/ </dd></dl>

</div>
</div>
<a class="anchor" id="acfde40e3149cdf0981b00ec7fd8b6109"></a><!-- doxytag: member="gr_mpsk_receiver_cc::forecast" ref="acfde40e3149cdf0981b00ec7fd8b6109" args="(int noutput_items, gr_vector_int &amp;ninput_items_required)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gr_mpsk_receiver_cc::forecast </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>noutput_items</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">gr_vector_int</a> &amp;&#160;</td>
          <td class="paramname"><em>ninput_items_required</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Estimate input requirements given output request. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">noutput_items</td><td>number of output items to produce </td></tr>
    <tr><td class="paramname">ninput_items_required</td><td>number of input items required on each input stream</td></tr>
  </table>
  </dd>
</dl>
<p>Given a request to product <code>noutput_items</code>, estimate the number of data items required on each input stream. The estimate doesn't have to be exact, but should be close. </p>

<p>Reimplemented from <a class="el" href="classgr__block.html#aa1f2518b5c97126bb015adb9e2027f4a">gr_block</a>.</p>

</div>
</div>
<a class="anchor" id="a0e23b688c75c93f803c5e9ddf3635083"></a><!-- doxytag: member="gr_mpsk_receiver_cc::freq" ref="a0e23b688c75c93f803c5e9ddf3635083" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float gr_mpsk_receiver_cc::freq </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>(CL) Returns the current value of the frequency of the NCO in the Costas loop </p>

<p>Referenced by <a class="el" href="classgr__mpsk__receiver__cc.html#aecbb08bd21f1d9a4b01a828a2177d4ec">set_freq()</a>.</p>

</div>
</div>
<a class="anchor" id="ab35c94b9fa4206794dede51d2174f26f"></a><!-- doxytag: member="gr_mpsk_receiver_cc::gain_mu" ref="ab35c94b9fa4206794dede51d2174f26f" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float gr_mpsk_receiver_cc::gain_mu </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>(M&amp;M) Returns mu gain factor </p>

<p>Referenced by <a class="el" href="classgr__mpsk__receiver__cc.html#a0f565a812cdf79bace6c9da16770c551">set_gain_mu()</a>.</p>

</div>
</div>
<a class="anchor" id="a3bf2b3d7f8aa2f03b908ec1dd361ecb8"></a><!-- doxytag: member="gr_mpsk_receiver_cc::gain_omega" ref="a3bf2b3d7f8aa2f03b908ec1dd361ecb8" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float gr_mpsk_receiver_cc::gain_omega </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>(M&amp;M) Returns omega gain factor </p>

<p>Referenced by <a class="el" href="classgr__mpsk__receiver__cc.html#a38e6d044fed315c5b2c02d92aef05a41">set_gain_omega()</a>.</p>

</div>
</div>
<a class="anchor" id="aaa5dc2c51fc0a558733edfafbf95e4c9"></a><!-- doxytag: member="gr_mpsk_receiver_cc::general_work" ref="aaa5dc2c51fc0a558733edfafbf95e4c9" args="(int noutput_items, gr_vector_int &amp;ninput_items, gr_vector_const_void_star &amp;input_items, gr_vector_void_star &amp;output_items)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int gr_mpsk_receiver_cc::general_work </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>noutput_items</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">gr_vector_int</a> &amp;&#160;</td>
          <td class="paramname"><em>ninput_items</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">gr_vector_const_void_star</a> &amp;&#160;</td>
          <td class="paramname"><em>input_items</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">gr_vector_void_star</a> &amp;&#160;</td>
          <td class="paramname"><em>output_items</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>compute output items from input items </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">noutput_items</td><td>number of output items to write on each output stream </td></tr>
    <tr><td class="paramname">ninput_items</td><td>number of input items available on each input stream </td></tr>
    <tr><td class="paramname">input_items</td><td>vector of pointers to the input items, one entry per input stream </td></tr>
    <tr><td class="paramname">output_items</td><td>vector of pointers to the output items, one entry per output stream</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of items actually written to each output stream, or -1 on EOF. It is OK to return a value less than noutput_items. -1 &lt;= return value &lt;= noutput_items</dd></dl>
<p>general_work must call consume or consume_each to indicate how many items were consumed on each input stream. </p>

<p>Implements <a class="el" href="classgr__block.html#a137b93d87dc83bbdb6369d33f4ea8197">gr_block</a>.</p>

</div>
</div>
<a class="anchor" id="a90c62a5f2f292dd19a89f27416abd99f"></a><!-- doxytag: member="gr_mpsk_receiver_cc::make_constellation" ref="a90c62a5f2f292dd19a89f27416abd99f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gr_mpsk_receiver_cc::make_constellation </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a179ff1d027fc821ce6c14450bf66c880"></a><!-- doxytag: member="gr_mpsk_receiver_cc::mm_error_tracking" ref="a179ff1d027fc821ce6c14450bf66c880" args="(gr_complex sample)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gr_mpsk_receiver_cc::mm_error_tracking </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="gr__complex_8h.html#aec4bfe41433369afae9327f1b0bc9109">gr_complex</a>&#160;</td>
          <td class="paramname"><em>sample</em></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a9b2e8da6e563eaea5403bc7050d96ebc"></a><!-- doxytag: member="gr_mpsk_receiver_cc::mm_sampler" ref="a9b2e8da6e563eaea5403bc7050d96ebc" args="(const gr_complex symbol)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gr_mpsk_receiver_cc::mm_sampler </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="gr__complex_8h.html#aec4bfe41433369afae9327f1b0bc9109">gr_complex</a>&#160;</td>
          <td class="paramname"><em>symbol</em></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a5a8d656fed27db70a3b90bf8e5739c58"></a><!-- doxytag: member="gr_mpsk_receiver_cc::mu" ref="a5a8d656fed27db70a3b90bf8e5739c58" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float gr_mpsk_receiver_cc::mu </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>(M&amp;M) Returns current value of mu </p>

<p>Referenced by <a class="el" href="classgr__mpsk__receiver__cc.html#a718112e3123378f3e79595c707564aec">set_mu()</a>.</p>

</div>
</div>
<a class="anchor" id="a871efa619b3de0882272c5c8def64250"></a><!-- doxytag: member="gr_mpsk_receiver_cc::omega" ref="a871efa619b3de0882272c5c8def64250" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float gr_mpsk_receiver_cc::omega </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>(M&amp;M) Returns current value of omega </p>

<p>Referenced by <a class="el" href="classgr__mpsk__receiver__cc.html#a5858d935798398ed16221641a6e00254">set_omega()</a>.</p>

</div>
</div>
<a class="anchor" id="a5ddaf419bdaa5e924d2c84e94edd47b2"></a><!-- doxytag: member="gr_mpsk_receiver_cc::phase" ref="a5ddaf419bdaa5e924d2c84e94edd47b2" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float gr_mpsk_receiver_cc::phase </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>(CL) Returns the current value of the phase of the NCO in the Costal loop </p>

<p>Referenced by <a class="el" href="classgr__mpsk__receiver__cc.html#a67f26ed1d5099d3ef09b39e389e1e85f">set_phase()</a>.</p>

</div>
</div>
<a class="anchor" id="a9dd3762234c6fa83673809e2a94b4bdb"></a><!-- doxytag: member="gr_mpsk_receiver_cc::phase_error_detector_bpsk" ref="a9dd3762234c6fa83673809e2a94b4bdb" args="(gr_complex sample) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float gr_mpsk_receiver_cc::phase_error_detector_bpsk </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="gr__complex_8h.html#aec4bfe41433369afae9327f1b0bc9109">gr_complex</a>&#160;</td>
          <td class="paramname"><em>sample</em></td><td>)</td>
          <td> const<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Phase error detector for BPSK modulation. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sample</td><td>the I&amp;Q sample from which to determine the phase error</td></tr>
  </table>
  </dd>
</dl>
<p>This function determines the phase error using a simple BPSK phase error detector by multiplying the real and imaginary (the error signal) components together. As the imaginary part goes to 0, so does this error.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the approximated phase error. </dd></dl>

</div>
</div>
<a class="anchor" id="ac20b225f3beb3cc0c62c931cda71797e"></a><!-- doxytag: member="gr_mpsk_receiver_cc::phase_error_detector_generic" ref="ac20b225f3beb3cc0c62c931cda71797e" args="(gr_complex sample) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float gr_mpsk_receiver_cc::phase_error_detector_generic </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="gr__complex_8h.html#aec4bfe41433369afae9327f1b0bc9109">gr_complex</a>&#160;</td>
          <td class="paramname"><em>sample</em></td><td>)</td>
          <td> const<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Phase error detector for MPSK modulations. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sample</td><td>the I&amp;Q sample from which to determine the phase error</td></tr>
  </table>
  </dd>
</dl>
<p>This function determines the phase error for any MPSK signal by creating a set of PSK constellation points and doing a brute-force search to see which point minimizes the Euclidean distance. This point is then used to derotate the sample to the real-axis and a atan (using the fast approximation function) to determine the phase difference between the incoming sample and the real constellation point</p>
<p>This should be cleaned up and made more efficient.</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the approximated phase error. </dd></dl>

</div>
</div>
<a class="anchor" id="a53140b9e77b8f4b37cc04996319c3f2c"></a><!-- doxytag: member="gr_mpsk_receiver_cc::phase_error_detector_qpsk" ref="a53140b9e77b8f4b37cc04996319c3f2c" args="(gr_complex sample) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float gr_mpsk_receiver_cc::phase_error_detector_qpsk </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="gr__complex_8h.html#aec4bfe41433369afae9327f1b0bc9109">gr_complex</a>&#160;</td>
          <td class="paramname"><em>sample</em></td><td>)</td>
          <td> const<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Phase error detector for QPSK modulation. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">sample</td><td>the I&amp;Q sample from which to determine the phase error</td></tr>
  </table>
  </dd>
</dl>
<p>This function determines the phase error using the limiter approach in a standard 4th order Costas loop</p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the approximated phase error. </dd></dl>

</div>
</div>
<a class="anchor" id="af901b02e3430c22a8a61469892408c44"></a><!-- doxytag: member="gr_mpsk_receiver_cc::phase_error_tracking" ref="af901b02e3430c22a8a61469892408c44" args="(gr_complex sample)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gr_mpsk_receiver_cc::phase_error_tracking </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="gr__complex_8h.html#aec4bfe41433369afae9327f1b0bc9109">gr_complex</a>&#160;</td>
          <td class="paramname"><em>sample</em></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a20a85bfa65ce8d48b02079866ad9be5c"></a><!-- doxytag: member="gr_mpsk_receiver_cc::set_alpha" ref="a20a85bfa65ce8d48b02079866ad9be5c" args="(float alpha)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gr_mpsk_receiver_cc::set_alpha </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>alpha</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>(CL) Sets the value for alpha (the phase gain term) </p>

<p>References <a class="el" href="classgr__mpsk__receiver__cc.html#a193dbf8c468eb40b901ea15d17f23837">alpha()</a>.</p>

</div>
</div>
<a class="anchor" id="aaad856bd04d823d99c1e42e050a6297e"></a><!-- doxytag: member="gr_mpsk_receiver_cc::set_beta" ref="aaad856bd04d823d99c1e42e050a6297e" args="(float beta)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gr_mpsk_receiver_cc::set_beta </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>beta</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>(CL) Setss the value of beta (the frequency gain term) </p>

<p>References <a class="el" href="classgr__mpsk__receiver__cc.html#a2854f1584948a1ae9985c6466dc042bc">beta()</a>.</p>

</div>
</div>
<a class="anchor" id="aecbb08bd21f1d9a4b01a828a2177d4ec"></a><!-- doxytag: member="gr_mpsk_receiver_cc::set_freq" ref="aecbb08bd21f1d9a4b01a828a2177d4ec" args="(float freq)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gr_mpsk_receiver_cc::set_freq </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>freq</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>(CL) Sets the current value of the frequency of the NCO in the Costas loop </p>

<p>References <a class="el" href="classgr__mpsk__receiver__cc.html#a0e23b688c75c93f803c5e9ddf3635083">freq()</a>.</p>

</div>
</div>
<a class="anchor" id="a0f565a812cdf79bace6c9da16770c551"></a><!-- doxytag: member="gr_mpsk_receiver_cc::set_gain_mu" ref="a0f565a812cdf79bace6c9da16770c551" args="(float gain_mu)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gr_mpsk_receiver_cc::set_gain_mu </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>gain_mu</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>(M&amp;M) Sets value for mu gain factor </p>

<p>References <a class="el" href="classgr__mpsk__receiver__cc.html#ab35c94b9fa4206794dede51d2174f26f">gain_mu()</a>.</p>

</div>
</div>
<a class="anchor" id="a38e6d044fed315c5b2c02d92aef05a41"></a><!-- doxytag: member="gr_mpsk_receiver_cc::set_gain_omega" ref="a38e6d044fed315c5b2c02d92aef05a41" args="(float gain_omega)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gr_mpsk_receiver_cc::set_gain_omega </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>gain_omega</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>(M&amp;M) Sets value for omega gain factor </p>

<p>References <a class="el" href="classgr__mpsk__receiver__cc.html#a3bf2b3d7f8aa2f03b908ec1dd361ecb8">gain_omega()</a>.</p>

</div>
</div>
<a class="anchor" id="a718112e3123378f3e79595c707564aec"></a><!-- doxytag: member="gr_mpsk_receiver_cc::set_mu" ref="a718112e3123378f3e79595c707564aec" args="(float mu)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gr_mpsk_receiver_cc::set_mu </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>mu</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>(M&amp;M) Sets value of mu </p>

<p>References <a class="el" href="classgr__mpsk__receiver__cc.html#a5a8d656fed27db70a3b90bf8e5739c58">mu()</a>.</p>

</div>
</div>
<a class="anchor" id="a5858d935798398ed16221641a6e00254"></a><!-- doxytag: member="gr_mpsk_receiver_cc::set_omega" ref="a5858d935798398ed16221641a6e00254" args="(float omega)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gr_mpsk_receiver_cc::set_omega </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>omega</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>(M&amp;M) Sets value of omega and its min and max values </p>

<p>References <a class="el" href="classgr__mpsk__receiver__cc.html#a871efa619b3de0882272c5c8def64250">omega()</a>.</p>

</div>
</div>
<a class="anchor" id="a67f26ed1d5099d3ef09b39e389e1e85f"></a><!-- doxytag: member="gr_mpsk_receiver_cc::set_phase" ref="a67f26ed1d5099d3ef09b39e389e1e85f" args="(float phase)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void gr_mpsk_receiver_cc::set_phase </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>phase</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>(CL) Setss the current value of the phase of the NCO in the Costal loop </p>

<p>References <a class="el" href="classgr__mpsk__receiver__cc.html#a5ddaf419bdaa5e924d2c84e94edd47b2">phase()</a>.</p>

</div>
</div>
<hr/><h2>Friends And Related Function Documentation</h2>
<a class="anchor" id="a302053914cb025ad3fe4eb65b9f30bf2"></a><!-- doxytag: member="gr_mpsk_receiver_cc::gr_make_mpsk_receiver_cc" ref="a302053914cb025ad3fe4eb65b9f30bf2" args="(unsigned int M, float theta, float alpha, float beta, float fmin, float fmax, float mu, float gain_mu, float omega, float gain_omega, float omega_rel)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classboost_1_1shared__ptr.html">gr_mpsk_receiver_cc_sptr</a> gr_make_mpsk_receiver_cc </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>M</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>theta</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>alpha</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>beta</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>fmin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>fmax</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>mu</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>gain_mu</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>omega</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>gain_omega</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>omega_rel</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [friend]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="gr__mpsk__receiver__cc_8h_source.html">gr_mpsk_receiver_cc.h</a></li>
</ul>
</div>
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="classgr__mpsk__receiver__cc.html">gr_mpsk_receiver_cc</a>      </li>
      <li class="footer">Generated on Thu Feb 17 2011 for GNU Radio 3.2.2 C++ API by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
    </ul>
  </div>

</body>
</html>