<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.13.2" xml:lang="en-US">
  <compounddef id="classgr_1_1digital_1_1mpsk__snr__est__svr" kind="class" language="C++" prot="public">
    <compoundname>gr::digital::mpsk_snr_est_svr</compoundname>
    <basecompoundref refid="classgr_1_1digital_1_1mpsk__snr__est" prot="public" virt="non-virtual">gr::digital::mpsk_snr_est</basecompoundref>
    <includes refid="mpsk__snr__est_8h" local="no">gnuradio/digital/mpsk_snr_est.h</includes>
    <sectiondef kind="private-attrib">
      <memberdef kind="variable" id="classgr_1_1digital_1_1mpsk__snr__est__svr_1a3b0c41a952a39bfb17e6dd70ae539d44" prot="private" static="no" mutable="no">
        <type>double</type>
        <definition>double gr::digital::mpsk_snr_est_svr::d_y1</definition>
        <argsstring></argsstring>
        <name>d_y1</name>
        <qualifiedname>gr::digital::mpsk_snr_est_svr::d_y1</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="gr-digital/include/gnuradio/digital/mpsk_snr_est.h" line="257" column="12" bodyfile="gr-digital/include/gnuradio/digital/mpsk_snr_est.h" bodystart="257" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="classgr_1_1digital_1_1mpsk__snr__est__svr_1af73fc2bfafbda46263a7c59ba05ef02c" prot="private" static="no" mutable="no">
        <type>double</type>
        <definition>double gr::digital::mpsk_snr_est_svr::d_y2</definition>
        <argsstring></argsstring>
        <name>d_y2</name>
        <qualifiedname>gr::digital::mpsk_snr_est_svr::d_y2</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="gr-digital/include/gnuradio/digital/mpsk_snr_est.h" line="257" column="17" bodyfile="gr-digital/include/gnuradio/digital/mpsk_snr_est.h" bodystart="257" bodyend="-1"/>
      </memberdef>
    </sectiondef>
    <sectiondef kind="public-func">
      <memberdef kind="function" id="classgr_1_1digital_1_1mpsk__snr__est__svr_1a9e731971dd41b24ec2f0e9e633258603" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>gr::digital::mpsk_snr_est_svr::mpsk_snr_est_svr</definition>
        <argsstring>(double alpha)</argsstring>
        <name>mpsk_snr_est_svr</name>
        <qualifiedname>gr::digital::mpsk_snr_est_svr::mpsk_snr_est_svr</qualifiedname>
        <param>
          <type>double</type>
          <declname>alpha</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Constructor</para>
<para>Parameters: <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>alpha</parametername>
</parameternamelist>
<parameterdescription>
<para>the update rate of internal running average calculations. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="gr-digital/include/gnuradio/digital/mpsk_snr_est.h" line="266" column="5"/>
        <references refid="classgr_1_1digital_1_1mpsk__snr__est_1a98d8ea37c992d5ae8bd2ae9e54198cd8">gr::digital::mpsk_snr_est::alpha</references>
      </memberdef>
      <memberdef kind="function" id="classgr_1_1digital_1_1mpsk__snr__est__svr_1a0dee3f2fab1ee95941958919fd93d0e4" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type></type>
        <definition>gr::digital::mpsk_snr_est_svr::~mpsk_snr_est_svr</definition>
        <argsstring>() override</argsstring>
        <name>~mpsk_snr_est_svr</name>
        <qualifiedname>gr::digital::mpsk_snr_est_svr::~mpsk_snr_est_svr</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="gr-digital/include/gnuradio/digital/mpsk_snr_est.h" line="267" column="5" bodyfile="gr-digital/include/gnuradio/digital/mpsk_snr_est.h" bodystart="267" bodyend="267"/>
      </memberdef>
      <memberdef kind="function" id="classgr_1_1digital_1_1mpsk__snr__est__svr_1a1598b76c1a6af53632dcc23a6456d91f" prot="public" static="no" const="no" explicit="no" inline="no" virt="virtual">
        <type>int</type>
        <definition>int gr::digital::mpsk_snr_est_svr::update</definition>
        <argsstring>(int noutput_items, const gr_complex *input) override</argsstring>
        <name>update</name>
        <qualifiedname>gr::digital::mpsk_snr_est_svr::update</qualifiedname>
        <reimplements refid="classgr_1_1digital_1_1mpsk__snr__est_1ad75ed30973d99d6e0f59793371ec9ab7">update</reimplements>
        <param>
          <type>int</type>
          <declname>noutput_items</declname>
        </param>
        <param>
          <type>const <ref refid="gr__complex_8h_1aec4bfe41433369afae9327f1b0bc9109" kindref="member">gr_complex</ref> *</type>
          <declname>input</declname>
        </param>
        <briefdescription>
<para>Update the current registers. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="gr-digital/include/gnuradio/digital/mpsk_snr_est.h" line="269" column="9"/>
      </memberdef>
      <memberdef kind="function" id="classgr_1_1digital_1_1mpsk__snr__est__svr_1a0c06b0065b5f790e16f75fea95da2f98" prot="public" static="no" const="no" explicit="no" inline="no" virt="virtual">
        <type>double</type>
        <definition>double gr::digital::mpsk_snr_est_svr::snr</definition>
        <argsstring>() override</argsstring>
        <name>snr</name>
        <qualifiedname>gr::digital::mpsk_snr_est_svr::snr</qualifiedname>
        <reimplements refid="classgr_1_1digital_1_1mpsk__snr__est_1ae7794f68fb9d8421bcd3942e15f59b1c">snr</reimplements>
        <briefdescription>
<para>Use the register values to compute a new estimate. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="gr-digital/include/gnuradio/digital/mpsk_snr_est.h" line="270" column="12"/>
      </memberdef>
    </sectiondef>
    <briefdescription>
<para>Signal-to-Variation Ratio SNR Estimator. </para>
    </briefdescription>
    <detaileddescription>
<para>This estimator actually comes from an SNR estimator for M-PSK signals in fading channels, but this implementation is specifically for AWGN channels. The math was simplified to assume a signal and noise kurtosis ( <formula id="38">$k_a$</formula> and <formula id="35">$k_w$</formula>) for M-PSK signals in AWGN. These approximations significantly reduce the complexity of the calculations (and computations) required.</para>
<para>Original paper: A. L. Brandao, L. B. Lopes, and D. C. McLernon, &quot;In-service
monitoring of multipath delay and cochannel interference for
indoor mobile communication systems,&quot; Proc. IEEE Int. Conf. Communications, vol. 3, pp. 1458-1462, May 1994.</para>
<para>Reference: D. R. Pauluzzi and N. C. Beaulieu, &quot;A comparison of SNR
estimation techniques for the AWGN channel,&quot; IEEE Trans. Communications, Vol. 48, No. 10, pp. 1681-1691, 2000. </para>
    </detaileddescription>
    <inheritancegraph>
      <node id="2">
        <label>gr::digital::mpsk_snr_est</label>
        <link refid="classgr_1_1digital_1_1mpsk__snr__est"/>
      </node>
      <node id="1">
        <label>gr::digital::mpsk_snr_est_svr</label>
        <link refid="classgr_1_1digital_1_1mpsk__snr__est__svr"/>
        <childnode refid="2" relation="public-inheritance">
        </childnode>
      </node>
    </inheritancegraph>
    <collaborationgraph>
      <node id="2">
        <label>gr::digital::mpsk_snr_est</label>
        <link refid="classgr_1_1digital_1_1mpsk__snr__est"/>
      </node>
      <node id="1">
        <label>gr::digital::mpsk_snr_est_svr</label>
        <link refid="classgr_1_1digital_1_1mpsk__snr__est__svr"/>
        <childnode refid="2" relation="public-inheritance">
        </childnode>
      </node>
    </collaborationgraph>
    <location file="gr-digital/include/gnuradio/digital/mpsk_snr_est.h" line="254" column="1" bodyfile="gr-digital/include/gnuradio/digital/mpsk_snr_est.h" bodystart="255" bodyend="271"/>
    <listofallmembers>
      <member refid="classgr_1_1digital_1_1mpsk__snr__est_1a98d8ea37c992d5ae8bd2ae9e54198cd8" prot="public" virt="non-virtual"><scope>gr::digital::mpsk_snr_est_svr</scope><name>alpha</name></member>
      <member refid="classgr_1_1digital_1_1mpsk__snr__est_1a540305805f127ec967501c924faa9a02" prot="protected" virt="non-virtual"><scope>gr::digital::mpsk_snr_est_svr</scope><name>d_alpha</name></member>
      <member refid="classgr_1_1digital_1_1mpsk__snr__est_1aa3efc31b0ad1c16ed3cb07c192a04678" prot="protected" virt="non-virtual"><scope>gr::digital::mpsk_snr_est_svr</scope><name>d_beta</name></member>
      <member refid="classgr_1_1digital_1_1mpsk__snr__est_1af4eb6e888c18548217cee861f9e492e1" prot="protected" virt="non-virtual"><scope>gr::digital::mpsk_snr_est_svr</scope><name>d_noise</name></member>
      <member refid="classgr_1_1digital_1_1mpsk__snr__est_1a1ecec8ff9b2f74453caa17bd3c11f93d" prot="protected" virt="non-virtual"><scope>gr::digital::mpsk_snr_est_svr</scope><name>d_signal</name></member>
      <member refid="classgr_1_1digital_1_1mpsk__snr__est__svr_1a3b0c41a952a39bfb17e6dd70ae539d44" prot="private" virt="non-virtual"><scope>gr::digital::mpsk_snr_est_svr</scope><name>d_y1</name></member>
      <member refid="classgr_1_1digital_1_1mpsk__snr__est__svr_1af73fc2bfafbda46263a7c59ba05ef02c" prot="private" virt="non-virtual"><scope>gr::digital::mpsk_snr_est_svr</scope><name>d_y2</name></member>
      <member refid="classgr_1_1digital_1_1mpsk__snr__est_1af5375ee496c18634c5c84687c8014ab4" prot="public" virt="non-virtual"><scope>gr::digital::mpsk_snr_est_svr</scope><name>mpsk_snr_est</name></member>
      <member refid="classgr_1_1digital_1_1mpsk__snr__est__svr_1a9e731971dd41b24ec2f0e9e633258603" prot="public" virt="non-virtual"><scope>gr::digital::mpsk_snr_est_svr</scope><name>mpsk_snr_est_svr</name></member>
      <member refid="classgr_1_1digital_1_1mpsk__snr__est_1a6a3fdc7ab9844d084822bd26aee28d3a" prot="public" virt="virtual"><scope>gr::digital::mpsk_snr_est_svr</scope><name>noise</name></member>
      <member refid="classgr_1_1digital_1_1mpsk__snr__est_1a9bde010a328230fdbe6462298a50fe31" prot="public" virt="non-virtual"><scope>gr::digital::mpsk_snr_est_svr</scope><name>set_alpha</name></member>
      <member refid="classgr_1_1digital_1_1mpsk__snr__est_1acdd0b7b430fb4a2ae627325a2f0a80a7" prot="public" virt="virtual"><scope>gr::digital::mpsk_snr_est_svr</scope><name>signal</name></member>
      <member refid="classgr_1_1digital_1_1mpsk__snr__est__svr_1a0c06b0065b5f790e16f75fea95da2f98" prot="public" virt="virtual"><scope>gr::digital::mpsk_snr_est_svr</scope><name>snr</name></member>
      <member refid="classgr_1_1digital_1_1mpsk__snr__est__svr_1a1598b76c1a6af53632dcc23a6456d91f" prot="public" virt="virtual"><scope>gr::digital::mpsk_snr_est_svr</scope><name>update</name></member>
      <member refid="classgr_1_1digital_1_1mpsk__snr__est_1a4669d27ece725779dac3d54992d57bcd" prot="public" virt="virtual"><scope>gr::digital::mpsk_snr_est_svr</scope><name>~mpsk_snr_est</name></member>
      <member refid="classgr_1_1digital_1_1mpsk__snr__est__svr_1a0dee3f2fab1ee95941958919fd93d0e4" prot="public" virt="non-virtual"><scope>gr::digital::mpsk_snr_est_svr</scope><name>~mpsk_snr_est_svr</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
