<?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.9.3" xml:lang="en-US">
  <compounddef id="classgr_1_1ais_1_1corr__est__cc" kind="class" language="C++" prot="public" abstract="yes">
    <compoundname>gr::ais::corr_est_cc</compoundname>
    <basecompoundref prot="public" virt="virtual">sync_block</basecompoundref>
    <derivedcompoundref refid="classgr_1_1ais_1_1corr__est__cc__impl" prot="public" virt="non-virtual">gr::ais::corr_est_cc_impl</derivedcompoundref>
    <includes refid="corr__est__cc_8h" local="no">corr_est_cc.h</includes>
      <sectiondef kind="public-type">
      <memberdef kind="typedef" id="classgr_1_1ais_1_1corr__est__cc_1a1397efc8780f8a0d3ca4afde7a60f5ad" prot="public" static="no">
        <type>boost::shared_ptr&lt; <ref refid="classgr_1_1ais_1_1corr__est__cc" kindref="compound">corr_est_cc</ref> &gt;</type>
        <definition>typedef boost::shared_ptr&lt;corr_est_cc&gt; gr::ais::corr_est_cc::sptr</definition>
        <argsstring></argsstring>
        <name>sptr</name>
        <qualifiedname>gr::ais::corr_est_cc::sptr</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_science_gr-ais/gr37-ais/work/bistromath-gr-ais-1863d1b/include/ais/corr_est_cc.h" line="88" column="33" bodyfile="/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_science_gr-ais/gr37-ais/work/bistromath-gr-ais-1863d1b/include/ais/corr_est_cc.h" bodystart="88" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-static-func">
      <memberdef kind="function" id="classgr_1_1ais_1_1corr__est__cc_1a4a68fd8d7e90c5f11a21a267e032f2a5" prot="public" static="yes" const="no" explicit="no" inline="no" virt="non-virtual">
        <type><ref refid="classgr_1_1ais_1_1corr__est__cc_1a1397efc8780f8a0d3ca4afde7a60f5ad" kindref="member">sptr</ref></type>
        <definition>static sptr gr::ais::corr_est_cc::make</definition>
        <argsstring>(const std::vector&lt; gr_complex &gt; &amp;symbols, float sps, unsigned int mark_delay, float threshold=0.9)</argsstring>
        <name>make</name>
        <qualifiedname>gr::ais::corr_est_cc::make</qualifiedname>
        <param>
          <type>const std::vector&lt; gr_complex &gt; &amp;</type>
          <declname>symbols</declname>
        </param>
        <param>
          <type>float</type>
          <declname>sps</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>mark_delay</declname>
        </param>
        <param>
          <type>float</type>
          <declname>threshold</declname>
          <defval>0.9</defval>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Make a block that correlates against the <computeroutput>symbols</computeroutput> vector and outputs a phase and symbol timing estimate.</para>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>symbols</parametername>
</parameternamelist>
<parameterdescription>
<para>Set of symbols to correlate against (e.g., a sync word). </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sps</parametername>
</parameternamelist>
<parameterdescription>
<para>Samples per symbol </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>mark_delay</parametername>
</parameternamelist>
<parameterdescription>
<para>tag marking delay in samples after the corr_start tag </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>threshold</parametername>
</parameternamelist>
<parameterdescription>
<para>Threshold of correlator, relative to a 100% correlation (1.0). Default is 0.9. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_science_gr-ais/gr37-ais/work/bistromath-gr-ais-1863d1b/include/ais/corr_est_cc.h" line="102" column="19"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-func">
      <memberdef kind="function" id="classgr_1_1ais_1_1corr__est__cc_1ae5a13ca7414de21f73018fe726f9f00b" prot="public" static="no" const="yes" explicit="no" inline="no" virt="pure-virtual">
        <type>std::vector&lt; gr_complex &gt;</type>
        <definition>virtual std::vector&lt; gr_complex &gt; gr::ais::corr_est_cc::symbols</definition>
        <argsstring>() const =0</argsstring>
        <name>symbols</name>
        <qualifiedname>gr::ais::corr_est_cc::symbols</qualifiedname>
        <reimplementedby refid="classgr_1_1ais_1_1corr__est__cc__impl_1a78e427b45042c7f3b863f1c291dac2de">symbols</reimplementedby>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_science_gr-ais/gr37-ais/work/bistromath-gr-ais-1863d1b/include/ais/corr_est_cc.h" line="105" column="27"/>
      </memberdef>
      <memberdef kind="function" id="classgr_1_1ais_1_1corr__est__cc_1af4824705e291d383676e5317d7271f22" prot="public" static="no" const="no" explicit="no" inline="no" virt="pure-virtual">
        <type>void</type>
        <definition>virtual void gr::ais::corr_est_cc::set_symbols</definition>
        <argsstring>(const std::vector&lt; gr_complex &gt; &amp;symbols)=0</argsstring>
        <name>set_symbols</name>
        <qualifiedname>gr::ais::corr_est_cc::set_symbols</qualifiedname>
        <reimplementedby refid="classgr_1_1ais_1_1corr__est__cc__impl_1a9f536d205f693052fe14891d1bf1dc24">set_symbols</reimplementedby>
        <param>
          <type>const std::vector&lt; gr_complex &gt; &amp;</type>
          <declname>symbols</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_science_gr-ais/gr37-ais/work/bistromath-gr-ais-1863d1b/include/ais/corr_est_cc.h" line="106" column="20"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>Correlate stream with a pre-defined sequence and estimate peak. </para>
    </briefdescription>
    <detaileddescription>
<para>Input: <itemizedlist>
<listitem><para>Stream of complex samples.</para>
</listitem>
</itemizedlist>
Output: <itemizedlist>
<listitem><para>Output stream that just passes the input complex samples </para>
</listitem>
<listitem><para>tag &apos;phase_est&apos;: estimate of phase offset </para>
</listitem>
<listitem><para>tag &apos;time_est&apos;: estimate of symbol timing offset </para>
</listitem>
<listitem><para>tag &apos;corr_est&apos;: the correlation value of the estimates </para>
</listitem>
<listitem><para>tag &apos;corr_start&apos;: the start sample of the correlation and the value</para>
</listitem>
</itemizedlist>
<itemizedlist>
<listitem><para>Optional 2nd output stream providing the advanced correlator output</para>
</listitem>
</itemizedlist>
This block is designed to search for a sync word by correlation and uses the results of the correlation to get a time and phase offset estimate. These estimates are passed downstream as stream tags for use by follow-on synchronization blocks.</para>
<para>The sync word is provided as a set of symbols along with a baseband matched filter which we use to create the filtered and upsampled symbols that we will receive over-the-air.</para>
<para>The phase_est tag can be used by downstream blocks to adjust their phase estimatopm/correction loops, and is currently implemented by the gr::digital::costas_loop_cc block.</para>
<para>The time_est tag can be used to adjust the sampling timing estimate of any downstream synchronization blocks and is currently implemented by the gr::digital::pfb_clock_sync_ccf block.</para>
<para>The caller must provide a &quot;time_est&quot; and &quot;phase_est&quot; tag marking delay from the start of the correlated signal segment, in order to mark the proper point in the sync word for downstream synchronization blocks. Generally this block cannot know where the actual sync word symbols are located relative to &quot;corr_start&quot;, given that some modulations have pulses with intentional ISI. The user should manually examine the primary output and the &quot;corr_start&quot; tag postition to determine the required tag delay settings for the particular modulation, sync word, and downstream blocks used.</para>
<para>For a discussion of the properties of complex correlations, with respect to signal processing, see: Marple, Jr., S. L., "Estimating Group Delay and Phase Delay via Discrete-Time &apos;Analytic&apos; Cross-Correlation, <emphasis>IEEE_Transcations</emphasis> <emphasis>on_Signal_Processing</emphasis>, Volume 47, No. 9, September 1999 </para>
    </detaileddescription>
    <inheritancegraph>
      <node id="1">
        <label>gr::ais::corr_est_cc</label>
        <link refid="classgr_1_1ais_1_1corr__est__cc"/>
        <childnode refid="2" relation="public-inheritance">
        </childnode>
      </node>
      <node id="3">
        <label>gr::ais::corr_est_cc_impl</label>
        <link refid="classgr_1_1ais_1_1corr__est__cc__impl"/>
        <childnode refid="1" relation="public-inheritance">
        </childnode>
      </node>
      <node id="2">
        <label>sync_block</label>
      </node>
    </inheritancegraph>
    <collaborationgraph>
      <node id="1">
        <label>gr::ais::corr_est_cc</label>
        <link refid="classgr_1_1ais_1_1corr__est__cc"/>
        <childnode refid="2" relation="public-inheritance">
        </childnode>
      </node>
      <node id="2">
        <label>sync_block</label>
      </node>
    </collaborationgraph>
    <location file="/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_science_gr-ais/gr37-ais/work/bistromath-gr-ais-1863d1b/include/ais/corr_est_cc.h" line="85" column="5" bodyfile="/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_science_gr-ais/gr37-ais/work/bistromath-gr-ais-1863d1b/include/ais/corr_est_cc.h" bodystart="86" bodyend="107"/>
    <listofallmembers>
      <member refid="classgr_1_1ais_1_1corr__est__cc_1a4a68fd8d7e90c5f11a21a267e032f2a5" prot="public" virt="non-virtual"><scope>gr::ais::corr_est_cc</scope><name>make</name></member>
      <member refid="classgr_1_1ais_1_1corr__est__cc_1af4824705e291d383676e5317d7271f22" prot="public" virt="pure-virtual"><scope>gr::ais::corr_est_cc</scope><name>set_symbols</name></member>
      <member refid="classgr_1_1ais_1_1corr__est__cc_1a1397efc8780f8a0d3ca4afde7a60f5ad" prot="public" virt="non-virtual"><scope>gr::ais::corr_est_cc</scope><name>sptr</name></member>
      <member refid="classgr_1_1ais_1_1corr__est__cc_1ae5a13ca7414de21f73018fe726f9f00b" prot="public" virt="pure-virtual"><scope>gr::ais::corr_est_cc</scope><name>symbols</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
