Sophie

Sophie

distrib > Mandriva > 2010.2 > i586 > media > contrib-backports > by-pkgid > def0228095a1541e2d3632b6b6da7c38 > files > 573

gnuradio-doc-3.3.0-8mdv2010.1.i586.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.3.0 C++ API: atsci_viterbi_decoder Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="contents">
<h1>atsci_viterbi_decoder Class Reference</h1><!-- doxytag: class="atsci_viterbi_decoder" -->
<p>fancy, schmancy 12-way interleaved viterbi decoder for ATSC  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="atsci__viterbi__decoder_8h_source.html">atsci_viterbi_decoder.h</a>&gt;</code></p>

<p><a href="classatsci__viterbi__decoder-members.html">List of all members.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classatsci__viterbi__decoder.html#a962f29bb74ff6b2548a7a6b674fdca4f">atsci_viterbi_decoder</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classatsci__viterbi__decoder.html#ae20729b4d2cfb7b405c4928bc19c5e35">~atsci_viterbi_decoder</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classatsci__viterbi__decoder.html#a7862d3e3509e248f8c4cca29cb294c3b">reset</a> ()</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">reset all decoder states  <a href="#a7862d3e3509e248f8c4cca29cb294c3b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classatsci__viterbi__decoder.html#a8e6b3e440c5194313c257c12cf3f7639">decode</a> (<a class="el" href="classatsc__mpeg__packet__rs__encoded.html">atsc_mpeg_packet_rs_encoded</a> out[<a class="el" href="classatsci__viterbi__decoder.html#aee8afa394629528bb147bcda22038565">NCODERS</a>], const <a class="el" href="classatsc__soft__data__segment.html">atsc_soft_data_segment</a> in[<a class="el" href="classatsci__viterbi__decoder.html#aee8afa394629528bb147bcda22038565">NCODERS</a>])</td></tr>
<tr><td colspan="2"><h2>Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classatsci__viterbi__decoder.html#aee8afa394629528bb147bcda22038565">NCODERS</a> = 12</td></tr>
<tr><td colspan="2"><h2>Protected Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classinterleaver__fifo.html">interleaver_fifo</a><br class="typebreak"/>
&lt; unsigned char &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classatsci__viterbi__decoder.html#a5622901db53ec79a2aa69b0bcb79f0df">fifo_t</a></td></tr>
<tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classatsci__viterbi__decoder.html#af6b11c2fc9c6da1b810161107985a1a2">decode_helper</a> (unsigned char out[<a class="el" href="classatsci__viterbi__decoder.html#aa740a2007ead65e24b71755d9955aa57">OUTPUT_SIZE</a>], const float in[<a class="el" href="classatsci__viterbi__decoder.html#a44592424df3368e78a2fe624fc4382f0">INPUT_SIZE</a>])</td></tr>
<tr><td colspan="2"><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classatsci__single__viterbi.html">single_viterbi_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classatsci__viterbi__decoder.html#a39c2fe5681f848febdb0a4e539149b0a">viterbi</a> [<a class="el" href="classatsci__viterbi__decoder.html#aee8afa394629528bb147bcda22038565">NCODERS</a>]</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classinterleaver__fifo.html">fifo_t</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classatsci__viterbi__decoder.html#a6f18e07f0fef8528aae13ca91c95207a">fifo</a> [<a class="el" href="classatsci__viterbi__decoder.html#aee8afa394629528bb147bcda22038565">NCODERS</a>]</td></tr>
<tr><td colspan="2"><h2>Static Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classatsci__viterbi__decoder.html#a04f1755fb13433e0325b03c1e6571014">SEGMENT_SIZE</a> = <a class="el" href="atsc__consts_8h.html#a7c0eb90bde7d56f842375f332247c0a5">ATSC_MPEG_RS_ENCODED_LENGTH</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classatsci__viterbi__decoder.html#aa740a2007ead65e24b71755d9955aa57">OUTPUT_SIZE</a> = (<a class="el" href="classatsci__viterbi__decoder.html#a04f1755fb13433e0325b03c1e6571014">SEGMENT_SIZE</a> * 12)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classatsci__viterbi__decoder.html#a44592424df3368e78a2fe624fc4382f0">INPUT_SIZE</a> = (<a class="el" href="atsc__consts_8h.html#a06eb585fe7990a888ac9accd568c5230">ATSC_DATA_SEGMENT_LENGTH</a> * 12)</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>fancy, schmancy 12-way interleaved viterbi decoder for ATSC </p>
<hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="a5622901db53ec79a2aa69b0bcb79f0df"></a><!-- doxytag: member="atsci_viterbi_decoder::fifo_t" ref="a5622901db53ec79a2aa69b0bcb79f0df" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="classinterleaver__fifo.html">interleaver_fifo</a>&lt;unsigned char&gt; <a class="el" href="classinterleaver__fifo.html">atsci_viterbi_decoder::fifo_t</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a962f29bb74ff6b2548a7a6b674fdca4f"></a><!-- doxytag: member="atsci_viterbi_decoder::atsci_viterbi_decoder" ref="a962f29bb74ff6b2548a7a6b674fdca4f" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">atsci_viterbi_decoder::atsci_viterbi_decoder </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="ae20729b4d2cfb7b405c4928bc19c5e35"></a><!-- doxytag: member="atsci_viterbi_decoder::~atsci_viterbi_decoder" ref="ae20729b4d2cfb7b405c4928bc19c5e35" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">atsci_viterbi_decoder::~atsci_viterbi_decoder </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a8e6b3e440c5194313c257c12cf3f7639"></a><!-- doxytag: member="atsci_viterbi_decoder::decode" ref="a8e6b3e440c5194313c257c12cf3f7639" args="(atsc_mpeg_packet_rs_encoded out[NCODERS], const atsc_soft_data_segment in[NCODERS])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void atsci_viterbi_decoder::decode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classatsc__mpeg__packet__rs__encoded.html">atsc_mpeg_packet_rs_encoded</a>&nbsp;</td>
          <td class="paramname"> <em>out</em>[NCODERS], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classatsc__soft__data__segment.html">atsc_soft_data_segment</a>&nbsp;</td>
          <td class="paramname"> <em>in</em>[NCODERS]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Take 12 data segments of soft decisions (floats) and produce 12 RS encoded data segments. We work in groups of 12 because that's the smallest number of segments that composes a single full cycle of the decoder mux. </p>

</div>
</div>
<a class="anchor" id="af6b11c2fc9c6da1b810161107985a1a2"></a><!-- doxytag: member="atsci_viterbi_decoder::decode_helper" ref="af6b11c2fc9c6da1b810161107985a1a2" args="(unsigned char out[OUTPUT_SIZE], const float in[INPUT_SIZE])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void atsci_viterbi_decoder::decode_helper </td>
          <td>(</td>
          <td class="paramtype">unsigned char&nbsp;</td>
          <td class="paramname"> <em>out</em>[OUTPUT_SIZE], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>in</em>[INPUT_SIZE]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a7862d3e3509e248f8c4cca29cb294c3b"></a><!-- doxytag: member="atsci_viterbi_decoder::reset" ref="a7862d3e3509e248f8c4cca29cb294c3b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void atsci_viterbi_decoder::reset </td>
          <td>(</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>reset all decoder states </p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a6f18e07f0fef8528aae13ca91c95207a"></a><!-- doxytag: member="atsci_viterbi_decoder::fifo" ref="a6f18e07f0fef8528aae13ca91c95207a" args="[NCODERS]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classinterleaver__fifo.html">fifo_t</a>* <a class="el" href="classatsci__viterbi__decoder.html#a6f18e07f0fef8528aae13ca91c95207a">atsci_viterbi_decoder::fifo</a>[<a class="el" href="classatsci__viterbi__decoder.html#aee8afa394629528bb147bcda22038565">NCODERS</a>]<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a44592424df3368e78a2fe624fc4382f0"></a><!-- doxytag: member="atsci_viterbi_decoder::INPUT_SIZE" ref="a44592424df3368e78a2fe624fc4382f0" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const int <a class="el" href="classatsci__viterbi__decoder.html#a44592424df3368e78a2fe624fc4382f0">atsci_viterbi_decoder::INPUT_SIZE</a> = (<a class="el" href="atsc__consts_8h.html#a06eb585fe7990a888ac9accd568c5230">ATSC_DATA_SEGMENT_LENGTH</a> * 12)<code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aee8afa394629528bb147bcda22038565"></a><!-- doxytag: member="atsci_viterbi_decoder::NCODERS" ref="aee8afa394629528bb147bcda22038565" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const int <a class="el" href="classatsci__viterbi__decoder.html#aee8afa394629528bb147bcda22038565">atsci_viterbi_decoder::NCODERS</a> = 12<code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="aa740a2007ead65e24b71755d9955aa57"></a><!-- doxytag: member="atsci_viterbi_decoder::OUTPUT_SIZE" ref="aa740a2007ead65e24b71755d9955aa57" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const int <a class="el" href="classatsci__viterbi__decoder.html#aa740a2007ead65e24b71755d9955aa57">atsci_viterbi_decoder::OUTPUT_SIZE</a> = (<a class="el" href="classatsci__viterbi__decoder.html#a04f1755fb13433e0325b03c1e6571014">SEGMENT_SIZE</a> * 12)<code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a04f1755fb13433e0325b03c1e6571014"></a><!-- doxytag: member="atsci_viterbi_decoder::SEGMENT_SIZE" ref="a04f1755fb13433e0325b03c1e6571014" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const int <a class="el" href="classatsci__viterbi__decoder.html#a04f1755fb13433e0325b03c1e6571014">atsci_viterbi_decoder::SEGMENT_SIZE</a> = <a class="el" href="atsc__consts_8h.html#a7c0eb90bde7d56f842375f332247c0a5">ATSC_MPEG_RS_ENCODED_LENGTH</a><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a39c2fe5681f848febdb0a4e539149b0a"></a><!-- doxytag: member="atsci_viterbi_decoder::viterbi" ref="a39c2fe5681f848febdb0a4e539149b0a" args="[NCODERS]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classatsci__single__viterbi.html">single_viterbi_t</a> <a class="el" href="classatsci__viterbi__decoder.html#a39c2fe5681f848febdb0a4e539149b0a">atsci_viterbi_decoder::viterbi</a>[<a class="el" href="classatsci__viterbi__decoder.html#aee8afa394629528bb147bcda22038565">NCODERS</a>]<code> [protected]</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="atsci__viterbi__decoder_8h_source.html">atsci_viterbi_decoder.h</a></li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Wed Dec 29 19:52:31 2010 for GNU Radio 3.3.0 C++ API by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>