<!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"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.3"/> <title>GNU Radio 3.6.4.1 C++ API: digital_impl_mpsk_snr_est_skew Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="navtree.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="resize.js"></script> <script type="text/javascript" src="navtree.js"></script> <script type="text/javascript"> $(document).ready(initResizable); $(window).load(resizeHeight); </script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <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.6.4.1 C++ API </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.3 --> </div><!-- top --> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> <div id="nav-sync" class="sync"></div> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> $(document).ready(function(){initNavTree('classdigital__impl__mpsk__snr__est__skew.html','');}); </script> <div id="doc-content"> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="classdigital__impl__mpsk__snr__est__skew-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">digital_impl_mpsk_snr_est_skew Class Reference<div class="ingroups"><a class="el" href="group__snr__blk.html">SNR estimators</a></div></div> </div> </div><!--header--> <div class="contents"> <p>SNR Estimator using skewness correction. <a href="classdigital__impl__mpsk__snr__est__skew.html#details">More...</a></p> <p><code>#include <<a class="el" href="digital__impl__mpsk__snr__est_8h_source.html">digital_impl_mpsk_snr_est.h</a>></code></p> <div class="dynheader"> Inheritance diagram for digital_impl_mpsk_snr_est_skew:</div> <div class="dyncontent"> <div class="center"><img src="classdigital__impl__mpsk__snr__est__skew__inherit__graph.png" border="0" usemap="#digital__impl__mpsk__snr__est__skew_inherit__map" alt="Inheritance graph"/></div> <map name="digital__impl__mpsk__snr__est__skew_inherit__map" id="digital__impl__mpsk__snr__est__skew_inherit__map"> <area shape="rect" id="node2" href="classdigital__impl__mpsk__snr__est.html" title="A parent class for SNR estimators, specifically for M-PSK signals in AWGN channels." alt="" coords="5,5,181,32"/></map> <center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr class="memitem:a8b8bd7cfddef10f5185fa18327f91859"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classdigital__impl__mpsk__snr__est__skew.html#a8b8bd7cfddef10f5185fa18327f91859">digital_impl_mpsk_snr_est_skew</a> (double <a class="el" href="classdigital__impl__mpsk__snr__est.html#a5da4c3d305c742ccf1f6d7f8f716fb49">alpha</a>)</td></tr> <tr class="separator:a8b8bd7cfddef10f5185fa18327f91859"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a20d9a03ad0dc6d9b85f631b6cec9c5e6"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classdigital__impl__mpsk__snr__est__skew.html#a20d9a03ad0dc6d9b85f631b6cec9c5e6">~digital_impl_mpsk_snr_est_skew</a> ()</td></tr> <tr class="separator:a20d9a03ad0dc6d9b85f631b6cec9c5e6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a45082450419eb65dd3b3fc032ac872e7"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="classdigital__impl__mpsk__snr__est__skew.html#a45082450419eb65dd3b3fc032ac872e7">update</a> (int noutput_items, const <a class="el" href="gr__complex_8h.html#aec4bfe41433369afae9327f1b0bc9109">gr_complex</a> *in)</td></tr> <tr class="memdesc:a45082450419eb65dd3b3fc032ac872e7"><td class="mdescLeft"> </td><td class="mdescRight">Update the current registers. <a href="#a45082450419eb65dd3b3fc032ac872e7"></a><br/></td></tr> <tr class="separator:a45082450419eb65dd3b3fc032ac872e7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a242dc4c68ec079bce2070721cdb8fa7c"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classdigital__impl__mpsk__snr__est__skew.html#a242dc4c68ec079bce2070721cdb8fa7c">snr</a> ()</td></tr> <tr class="memdesc:a242dc4c68ec079bce2070721cdb8fa7c"><td class="mdescLeft"> </td><td class="mdescRight">Use the register values to compute a new estimate. <a href="#a242dc4c68ec079bce2070721cdb8fa7c"></a><br/></td></tr> <tr class="separator:a242dc4c68ec079bce2070721cdb8fa7c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pub_methods_classdigital__impl__mpsk__snr__est"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classdigital__impl__mpsk__snr__est')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classdigital__impl__mpsk__snr__est.html">digital_impl_mpsk_snr_est</a></td></tr> <tr class="memitem:ad5c23a9988b9799f2043a5b4e941f58d inherit pub_methods_classdigital__impl__mpsk__snr__est"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classdigital__impl__mpsk__snr__est.html#ad5c23a9988b9799f2043a5b4e941f58d">digital_impl_mpsk_snr_est</a> (double <a class="el" href="classdigital__impl__mpsk__snr__est.html#a5da4c3d305c742ccf1f6d7f8f716fb49">alpha</a>)</td></tr> <tr class="separator:ad5c23a9988b9799f2043a5b4e941f58d inherit pub_methods_classdigital__impl__mpsk__snr__est"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aebff9d543a57671bb2b1051594e77a35 inherit pub_methods_classdigital__impl__mpsk__snr__est"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classdigital__impl__mpsk__snr__est.html#aebff9d543a57671bb2b1051594e77a35">~digital_impl_mpsk_snr_est</a> ()</td></tr> <tr class="separator:aebff9d543a57671bb2b1051594e77a35 inherit pub_methods_classdigital__impl__mpsk__snr__est"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5da4c3d305c742ccf1f6d7f8f716fb49 inherit pub_methods_classdigital__impl__mpsk__snr__est"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classdigital__impl__mpsk__snr__est.html#a5da4c3d305c742ccf1f6d7f8f716fb49">alpha</a> () const </td></tr> <tr class="memdesc:a5da4c3d305c742ccf1f6d7f8f716fb49 inherit pub_methods_classdigital__impl__mpsk__snr__est"><td class="mdescLeft"> </td><td class="mdescRight">Get the running-average coefficient. <a href="#a5da4c3d305c742ccf1f6d7f8f716fb49"></a><br/></td></tr> <tr class="separator:a5da4c3d305c742ccf1f6d7f8f716fb49 inherit pub_methods_classdigital__impl__mpsk__snr__est"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac8366c144697e739023787919e30b216 inherit pub_methods_classdigital__impl__mpsk__snr__est"><td class="memItemLeft" align="right" valign="top"><a class="el" href="volk_8tmpl_8h.html#a8dc2b7da310a28e667530ba0e8ca4cc4">void</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classdigital__impl__mpsk__snr__est.html#ac8366c144697e739023787919e30b216">set_alpha</a> (double <a class="el" href="classdigital__impl__mpsk__snr__est.html#a5da4c3d305c742ccf1f6d7f8f716fb49">alpha</a>)</td></tr> <tr class="memdesc:ac8366c144697e739023787919e30b216 inherit pub_methods_classdigital__impl__mpsk__snr__est"><td class="mdescLeft"> </td><td class="mdescRight">Set the running-average coefficient. <a href="#ac8366c144697e739023787919e30b216"></a><br/></td></tr> <tr class="separator:ac8366c144697e739023787919e30b216 inherit pub_methods_classdigital__impl__mpsk__snr__est"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a> Additional Inherited Members</h2></td></tr> <tr class="inherit_header pro_attribs_classdigital__impl__mpsk__snr__est"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classdigital__impl__mpsk__snr__est')"><img src="closed.png" alt="-"/> Protected Attributes inherited from <a class="el" href="classdigital__impl__mpsk__snr__est.html">digital_impl_mpsk_snr_est</a></td></tr> <tr class="memitem:aadd45a1b9e9b751b74750f2eff1fad4e inherit pro_attribs_classdigital__impl__mpsk__snr__est"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classdigital__impl__mpsk__snr__est.html#aadd45a1b9e9b751b74750f2eff1fad4e">d_alpha</a></td></tr> <tr class="separator:aadd45a1b9e9b751b74750f2eff1fad4e inherit pro_attribs_classdigital__impl__mpsk__snr__est"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1fdb4b5cacb6a4f22ba7ecf947eb020b inherit pro_attribs_classdigital__impl__mpsk__snr__est"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="classdigital__impl__mpsk__snr__est.html#a1fdb4b5cacb6a4f22ba7ecf947eb020b">d_beta</a></td></tr> <tr class="separator:a1fdb4b5cacb6a4f22ba7ecf947eb020b inherit pro_attribs_classdigital__impl__mpsk__snr__est"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>SNR Estimator using skewness correction. </p> <p>This is an estimator that came from a discussion between Tom Rondeau and fred harris with no known paper reference. The idea is that at low SNR, the variance estimations will be affected because of fold-over around the decision boundaries, which results in a skewness to the samples. We estimate the skewness and use this as a correcting term. </p> </div><h2 class="groupheader">Constructor & Destructor Documentation</h2> <a class="anchor" id="a8b8bd7cfddef10f5185fa18327f91859"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">digital_impl_mpsk_snr_est_skew::digital_impl_mpsk_snr_est_skew </td> <td>(</td> <td class="paramtype">double </td> <td class="paramname"><em>alpha</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Constructor </p> <pre class="fragment"> Parameters: </pre> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">alpha,:</td><td>the update rate of internal running average calculations. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a20d9a03ad0dc6d9b85f631b6cec9c5e6"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">digital_impl_mpsk_snr_est_skew::~digital_impl_mpsk_snr_est_skew </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a class="anchor" id="a242dc4c68ec079bce2070721cdb8fa7c"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">double digital_impl_mpsk_snr_est_skew::snr </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Use the register values to compute a new estimate. </p> <p>Reimplemented from <a class="el" href="classdigital__impl__mpsk__snr__est.html#a1f7e662d3eb8118bc77cec9b8ff16009">digital_impl_mpsk_snr_est</a>.</p> </div> </div> <a class="anchor" id="a45082450419eb65dd3b3fc032ac872e7"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int digital_impl_mpsk_snr_est_skew::update </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>noutput_items</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="gr__complex_8h.html#aec4bfe41433369afae9327f1b0bc9109">gr_complex</a> * </td> <td class="paramname"><em>in</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Update the current registers. </p> <p>Reimplemented from <a class="el" href="classdigital__impl__mpsk__snr__est.html#a7aa10fcd79810905a81b92b244d702ee">digital_impl_mpsk_snr_est</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="digital__impl__mpsk__snr__est_8h_source.html">digital_impl_mpsk_snr_est.h</a></li> </ul> </div><!-- contents --> </div><!-- doc-content --> <!-- start footer part --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <ul> <li class="navelem"><a class="el" href="classdigital__impl__mpsk__snr__est__skew.html">digital_impl_mpsk_snr_est_skew</a></li> <li class="footer">Generated on Fri Apr 19 2013 16:20:36 for GNU Radio 3.6.4.1 C++ API by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.3 </li> </ul> </div> </body> </html>