root/doc/html/punct__convcode_8h-source.html @ 353

Revision 353, 27.2 kB (checked in by smidl, 16 years ago)

doc

Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3<title>mixpp: punct_convcode.h Source File</title>
4<link href="tabs.css" rel="stylesheet" type="text/css">
5<link href="doxygen.css" rel="stylesheet" type="text/css">
6</head><body>
7<!-- Generated by Doxygen 1.5.8 -->
8<script type="text/javascript">
9<!--
10function changeDisplayState (e){
11  var num=this.id.replace(/[^[0-9]/g,'');
12  var button=this.firstChild;
13  var sectionDiv=document.getElementById('dynsection'+num);
14  if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){
15    sectionDiv.style.display='block';
16    button.src='open.gif';
17  }else{
18    sectionDiv.style.display='none';
19    button.src='closed.gif';
20  }
21}
22function initDynSections(){
23  var divs=document.getElementsByTagName('div');
24  var sectionCounter=1;
25  for(var i=0;i<divs.length-1;i++){
26    if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){
27      var header=divs[i];
28      var section=divs[i+1];
29      var button=header.firstChild;
30      if (button!='IMG'){
31        divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild);
32        button=document.createElement('img');
33        divs[i].insertBefore(button,divs[i].firstChild);
34      }
35      header.style.cursor='pointer';
36      header.onclick=changeDisplayState;
37      header.id='dynheader'+sectionCounter;
38      button.src='closed.gif';
39      section.id='dynsection'+sectionCounter;
40      section.style.display='none';
41      section.style.marginLeft='14px';
42      sectionCounter++;
43    }
44  }
45}
46window.onload = initDynSections;
47-->
48</script>
49<div class="navigation" id="top">
50  <div class="tabs">
51    <ul>
52      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
53      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
54      <li><a href="modules.html"><span>Modules</span></a></li>
55      <li><a href="annotated.html"><span>Classes</span></a></li>
56      <li class="current"><a href="files.html"><span>Files</span></a></li>
57    </ul>
58  </div>
59  <div class="tabs">
60    <ul>
61      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
62      <li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
63    </ul>
64  </div>
65<h1>punct_convcode.h</h1><a href="punct__convcode_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
66<a name="l00029"></a>00029 <span class="preprocessor">#ifndef PUNCT_CONVCODE_H</span>
67<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#define PUNCT_CONVCODE_H</span>
68<a name="l00031"></a>00031 <span class="preprocessor"></span>
69<a name="l00032"></a>00032 <span class="preprocessor">#include &lt;<a class="code" href="vec_8h.html" title="Templated Vector Class Definitions.">itpp/base/vec.h</a>&gt;</span>
70<a name="l00033"></a>00033 <span class="preprocessor">#include &lt;<a class="code" href="mat_8h.html" title="Matrix Class Definitions.">itpp/base/mat.h</a>&gt;</span>
71<a name="l00034"></a>00034 <span class="preprocessor">#include &lt;<a class="code" href="array_8h.html" title="Definition of Array class (container).">itpp/base/array.h</a>&gt;</span>
72<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;<a class="code" href="convcode_8h.html" title="Definition of a binary convolutional encoder class.">itpp/comm/convcode.h</a>&gt;</span>
73<a name="l00036"></a>00036
74<a name="l00037"></a>00037
75<a name="l00038"></a>00038 <span class="keyword">namespace </span>itpp
76<a name="l00039"></a>00039 {
77<a name="l00040"></a>00040
78<a name="l00080"></a><a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html">00080</a> <span class="keyword">class </span><a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html" title="Binary Punctured Convolutional Code Class.">Punctured_Convolutional_Code</a> : <span class="keyword">public</span> <a class="code" href="classitpp_1_1Convolutional__Code.html" title="Binary Convolutional rate 1/n class.">Convolutional_Code</a>
79<a name="l00081"></a>00081 {
80<a name="l00082"></a>00082 <span class="keyword">public</span>:
81<a name="l00084"></a><a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#8f73e4bcd82e98ace9e52003483755e6">00084</a>   <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#8f73e4bcd82e98ace9e52003483755e6" title="Constructor.">Punctured_Convolutional_Code</a>(<span class="keywordtype">void</span>) : <a class="code" href="classitpp_1_1Convolutional__Code.html" title="Binary Convolutional rate 1/n class.">Convolutional_Code</a>() {}
82<a name="l00086"></a><a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#4917b5626e01e3566eb183be1e1db709">00086</a>   <span class="keyword">virtual</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#4917b5626e01e3566eb183be1e1db709" title="Destructor.">~Punctured_Convolutional_Code</a>(<span class="keywordtype">void</span>) {}
83<a name="l00087"></a>00087
84<a name="l00094"></a><a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#3b8b66d056a2cde7ad92a8b6ce0c19ba">00094</a>   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#3b8b66d056a2cde7ad92a8b6ce0c19ba" title="Set the code according to built-in tables.">set_code</a>(<span class="keyword">const</span> <a class="code" href="group__fec.html#ge9651aa649deec69310af24cd89b8729" title="Type of Convolutional Code.">CONVOLUTIONAL_CODE_TYPE</a> type_of_code, <span class="keywordtype">int</span> inverse_rate, <span class="keywordtype">int</span> constraint_length)
85<a name="l00095"></a>00095   { <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#3b8b66d056a2cde7ad92a8b6ce0c19ba" title="Set the code according to built-in tables.">Convolutional_Code::set_code</a>(type_of_code, inverse_rate, constraint_length); }
86<a name="l00097"></a><a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#19de0087797a6b4da4d9e32523c49701">00097</a>   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#19de0087797a6b4da4d9e32523c49701" title="Set generator polynomials. Given in Proakis integer form.">set_generator_polynomials</a>(<span class="keyword">const</span> ivec &amp;gen, <span class="keywordtype">int</span> constraint_length)
87<a name="l00098"></a>00098   { <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#19de0087797a6b4da4d9e32523c49701" title="Set generator polynomials. Given in Proakis integer form.">Convolutional_Code::set_generator_polynomials</a>(gen, constraint_length); }
88<a name="l00100"></a><a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#2e17fee30caf169e009ff6fba671b5fb">00100</a>   ivec <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#2e17fee30caf169e009ff6fba671b5fb" title="Get generator polynomials.">get_generator_polynomials</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1Convolutional__Code.html#e5b54f1bab039f8480c7ae0013f3f5fe" title="Generator polynomials.">gen_pol</a>; }
89<a name="l00101"></a>00101
90<a name="l00103"></a><a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#26441c092c8ab4b4e4bf480479a74232">00103</a>   <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#26441c092c8ab4b4e4bf480479a74232" title="Return rate of code.">get_rate</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1Convolutional__Code.html#0e92407956851a04cffa5f89f2fd39a5" title="The rate of the code.">rate</a>; }
91<a name="l00104"></a>00104
92<a name="l00106"></a><a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#086f61a5c99ca542520c28174c45023d">00106</a>   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#086f61a5c99ca542520c28174c45023d" title="Set encoding and decoding method (Trunc, Tail, or Tailbite).">set_method</a>(<span class="keyword">const</span> <a class="code" href="group__fec.html#ge22fe2744a6f00b512ee75e304d72a82" title="Encoding and decoding methods for Convolutional codes.">CONVOLUTIONAL_CODE_METHOD</a> method) { <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#086f61a5c99ca542520c28174c45023d" title="Set encoding and decoding method (Trunc, Tail, or Tailbite).">Convolutional_Code::set_method</a>(method); }
93<a name="l00107"></a>00107
94<a name="l00109"></a>00109   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#f85e15222896c0392b13e6d7a2e13751" title="Set puncture matrix (size n*Period).">set_puncture_matrix</a>(<span class="keyword">const</span> <a class="code" href="mat_8h.html#f90acd1af41bf2d1d8a4bb23662fff69" title="bin matrix">bmat</a> &amp;pmatrix); <span class="comment">// add test of matrix size</span>
95<a name="l00111"></a><a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#cf55657458143ec0501780b7aa7439e2">00111</a> <span class="comment"></span>  <a class="code" href="mat_8h.html#f90acd1af41bf2d1d8a4bb23662fff69" title="bin matrix">bmat</a> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#cf55657458143ec0501780b7aa7439e2" title="Get puncture matrix.">get_puncture_matrix</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#533bca591da4abe1478bd11cf3aa82eb" title="The puncture matrix (n rows and Period columns).">puncture_matrix</a>; }
96<a name="l00113"></a><a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#a47e9275c102b6ce2b3baeb9c0131305">00113</a>   <span class="keywordtype">int</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#a47e9275c102b6ce2b3baeb9c0131305" title="Get puncturing period.">get_puncture_period</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#ede590a005351b224cad750e9f8bb3a6" title="The puncture period (i.e. the number of columns in the puncture matrix).">Period</a>; }
97<a name="l00114"></a>00114
98<a name="l00116"></a><a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#e71898980b935887287e9980f075efb0">00116</a>   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#e71898980b935887287e9980f075efb0" title="Set the encoder internal state in start_state (set by set_start_state()).">init_encoder</a>() { <a class="code" href="classitpp_1_1Convolutional__Code.html#04a91848197a2624c5dbdbcd5224166a" title="The current encoder state.">encoder_state</a> = <a class="code" href="classitpp_1_1Convolutional__Code.html#7bfc69c7f70316fe051e2802c9f09ee3" title="The encoder start state.">start_state</a>; }
99<a name="l00117"></a>00117
100<a name="l00119"></a>00119   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#52a8335d94b8e4b0777a09afcb47445c" title="Encode a binary vector of inputs using specified method.">encode</a>(<span class="keyword">const</span> bvec &amp;input, bvec &amp;output);
101<a name="l00121"></a><a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#aae281080e4a74ea7094c4fe777cac54">00121</a>   bvec <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#aae281080e4a74ea7094c4fe777cac54" title="Encode a binary vector of inputs using specified method.">encode</a>(<span class="keyword">const</span> bvec &amp;input) { bvec output; <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#aae281080e4a74ea7094c4fe777cac54" title="Encode a binary vector of inputs using specified method.">encode</a>(input, output); <span class="keywordflow">return</span> output; }
102<a name="l00122"></a>00122
103<a name="l00124"></a>00124   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#49dbb58e8a99c89502140e8f2d527503" title="Encode a binary vector of inputs starting from state set by the set_state function...">encode_trunc</a>(<span class="keyword">const</span> bvec &amp;input, bvec &amp;output);
104<a name="l00126"></a><a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#95c4c6d4cd1e0d2b1b7164b9405d7d33">00126</a>   bvec <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#95c4c6d4cd1e0d2b1b7164b9405d7d33" title="Encode a binary vector of inputs starting from state set by the set_state function...">encode_trunc</a>(<span class="keyword">const</span> bvec &amp;input) { bvec output; <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#95c4c6d4cd1e0d2b1b7164b9405d7d33" title="Encode a binary vector of inputs starting from state set by the set_state function...">encode_trunc</a>(input, output); <span class="keywordflow">return</span> output; }
105<a name="l00127"></a>00127
106<a name="l00135"></a>00135   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#eda7709de1cff7c6211884f9acfae470" title="Encoding that begins and ends in the zero state.">encode_tail</a>(<span class="keyword">const</span> bvec &amp;input, bvec &amp;output);
107<a name="l00143"></a><a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#550a724cf0a14e96dd572063c5d862d6">00143</a>   bvec <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#550a724cf0a14e96dd572063c5d862d6" title="Encoding that begins and ends in the zero state.">encode_tail</a>(<span class="keyword">const</span> bvec &amp;input) { bvec output; <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#550a724cf0a14e96dd572063c5d862d6" title="Encoding that begins and ends in the zero state.">encode_tail</a>(input, output); <span class="keywordflow">return</span> output; }
108<a name="l00144"></a>00144
109<a name="l00146"></a>00146   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#60feaefdc4f8b62884268f7cc0ea8296" title="Encode a binary vector of inputs using tailbiting.">encode_tailbite</a>(<span class="keyword">const</span> bvec &amp;input, bvec &amp;output);
110<a name="l00148"></a><a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#6fbdfbea0ba4a31686740dbfe9ca3ac5">00148</a>   bvec <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#60feaefdc4f8b62884268f7cc0ea8296" title="Encode a binary vector of inputs using tailbiting.">encode_tailbite</a>(<span class="keyword">const</span> bvec &amp;input)
111<a name="l00149"></a>00149   { bvec output; <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#6fbdfbea0ba4a31686740dbfe9ca3ac5" title="Encode a binary vector of inputs using tailbiting.">encode_tailbite</a>(input, output); <span class="keywordflow">return</span> output; }
112<a name="l00150"></a>00150
113<a name="l00151"></a>00151
114<a name="l00153"></a>00153   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#f6f6621fc90d8d3774e5228846eafcd5" title="Viterbi decoding using specified method.">decode</a>(<span class="keyword">const</span> vec &amp;received_signal, bvec &amp;output);
115<a name="l00155"></a><a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#b63ed0bc93b14bcf4db7004132b38bfc">00155</a>   <span class="keyword">virtual</span> bvec <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#b63ed0bc93b14bcf4db7004132b38bfc" title="Viterbi decoding using specified method.">decode</a>(<span class="keyword">const</span> vec &amp;received_signal) { bvec output; <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#b63ed0bc93b14bcf4db7004132b38bfc" title="Viterbi decoding using specified method.">decode</a>(received_signal, output); <span class="keywordflow">return</span> output; }
116<a name="l00156"></a>00156
117<a name="l00157"></a>00157   <span class="comment">// ------------ Hard-decision decoding is not implemented -------------------</span>
118<a name="l00158"></a>00158   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#f6f6621fc90d8d3774e5228846eafcd5" title="Viterbi decoding using specified method.">decode</a>(<span class="keyword">const</span> bvec &amp;coded_bits, bvec &amp;decoded_bits);
119<a name="l00159"></a>00159   <span class="keyword">virtual</span> bvec <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#f6f6621fc90d8d3774e5228846eafcd5" title="Viterbi decoding using specified method.">decode</a>(<span class="keyword">const</span> bvec &amp;coded_bits);
120<a name="l00160"></a>00160
121<a name="l00162"></a>00162   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#13be31ca6bcd770cad2a7120315bc6dd" title="Viterbi decoding using truncation of memory (default = 5*K).">decode_trunc</a>(<span class="keyword">const</span> vec &amp;received_signal, bvec &amp;output);
122<a name="l00164"></a><a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#c0e1f2f26a7dd2368139ae40bdc9d042">00164</a>   bvec <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#c0e1f2f26a7dd2368139ae40bdc9d042" title="Viterbi decoding using truncation of memory (default = 5*K).">decode_trunc</a>(<span class="keyword">const</span> vec &amp;received_signal) { bvec output; <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#c0e1f2f26a7dd2368139ae40bdc9d042" title="Viterbi decoding using truncation of memory (default = 5*K).">decode_trunc</a>(received_signal, output); <span class="keywordflow">return</span> output; }
123<a name="l00165"></a>00165
124<a name="l00172"></a>00172   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#8c706434a618852db7304b6e699c0194" title="Decode a block of encoded data where encode_tail has been used.">decode_tail</a>(<span class="keyword">const</span> vec &amp;received_signal, bvec &amp;output);
125<a name="l00179"></a><a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#7842a78c7a0abb4a7a5695452448c6e6">00179</a>   bvec <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#7842a78c7a0abb4a7a5695452448c6e6" title="Decode a block of encoded data where encode_tail has been used.">decode_tail</a>(<span class="keyword">const</span> vec &amp;received_signal) { bvec output; <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#7842a78c7a0abb4a7a5695452448c6e6" title="Decode a block of encoded data where encode_tail has been used.">decode_tail</a>(received_signal, output); <span class="keywordflow">return</span> output; }
126<a name="l00180"></a>00180
127<a name="l00182"></a>00182   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#841c9437974ffa14ff10385e9729f59d" title="Decode a block of encoded data where encode_tailbite has been used. Tries all start...">decode_tailbite</a>(<span class="keyword">const</span> vec &amp;received_signal, bvec &amp;output);
128<a name="l00184"></a><a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#a1e75ceaa37751af19c7028c6239ed45">00184</a>   bvec <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#841c9437974ffa14ff10385e9729f59d" title="Decode a block of encoded data where encode_tailbite has been used. Tries all start...">decode_tailbite</a>(<span class="keyword">const</span> vec &amp;received_signal)
129<a name="l00185"></a>00185   { bvec output; <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#a1e75ceaa37751af19c7028c6239ed45" title="Decode a block of encoded data where encode_tailbite has been used. Tries all start...">decode_tailbite</a>(received_signal, output); <span class="keywordflow">return</span> output; }
130<a name="l00186"></a>00186
131<a name="l00187"></a>00187   <span class="comment">/*</span>
132<a name="l00188"></a>00188 <span class="comment">    \brief Calculate the inverse sequence</span>
133<a name="l00189"></a>00189 <span class="comment"></span>
134<a name="l00190"></a>00190 <span class="comment">    Assumes that encode_tail is used in the encoding process. Returns false if there is an error in the coded sequence</span>
135<a name="l00191"></a>00191 <span class="comment">    (not a valid codeword).</span>
136<a name="l00192"></a>00192 <span class="comment">  */</span>
137<a name="l00193"></a>00193   <span class="keywordtype">bool</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#b9fa55cd0b92e4d0db5debcd198184b1" title="Calculate the inverse sequence.">inverse_tail</a>(<span class="keyword">const</span> bvec coded_sequence, bvec &amp;input);
138<a name="l00194"></a>00194
139<a name="l00196"></a>00196   <span class="keywordtype">bool</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#8e66d820e304baed62f2750a8139c7df" title="Check if the code is catastrophic. Returns true if catastrophic.">catastrophic</a>(<span class="keywordtype">void</span>);
140<a name="l00197"></a>00197
141<a name="l00199"></a>00199   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#86534f4a85b09bb3340edcbbfb825b2a" title="Calculate distance profile. If reverse = true calculate for the reverse code instead...">distance_profile</a>(ivec &amp;dist_prof, <span class="keywordtype">int</span> time, <span class="keywordtype">int</span> dmax = 100000, <span class="keywordtype">bool</span> <a class="code" href="group__reshaping.html#ge53eb5ba319eb6a25649576deeb9bca8" title="Reverse the input vector.">reverse</a> = <span class="keyword">false</span>);
142<a name="l00200"></a>00200
143<a name="l00217"></a>00217   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#5b03f1aa26a5521cdcab6298d94926c9" title="Calculate spectrum.">calculate_spectrum</a>(<a class="code" href="classitpp_1_1Array.html">Array&lt;ivec&gt;</a> &amp;<a class="code" href="group__sigproc.html#g24804e1227fb135d6117652a417b44c0" title="Power spectrum calculation.">spectrum</a>, <span class="keywordtype">int</span> dmax, <span class="keywordtype">int</span> no_terms);
144<a name="l00218"></a>00218
145<a name="l00229"></a>00229   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#5b03f1aa26a5521cdcab6298d94926c9" title="Calculate spectrum.">calculate_spectrum</a>(<a class="code" href="classitpp_1_1Array.html">Array&lt;ivec&gt;</a> &amp;<a class="code" href="group__sigproc.html#g24804e1227fb135d6117652a417b44c0" title="Power spectrum calculation.">spectrum</a>, <span class="keywordtype">int</span> time, <span class="keywordtype">int</span> dmax, <span class="keywordtype">int</span> no_terms, <span class="keywordtype">int</span> block_length = 0);
146<a name="l00230"></a>00230
147<a name="l00247"></a>00247   <span class="keywordtype">int</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#120a1f328f3d51597b8258901ad285de" title="Cederwall&amp;#39;s fast algorithm.">fast</a>(<a class="code" href="classitpp_1_1Array.html">Array&lt;ivec&gt;</a> &amp;<a class="code" href="group__sigproc.html#g24804e1227fb135d6117652a417b44c0" title="Power spectrum calculation.">spectrum</a>, <span class="keywordtype">int</span> time, <span class="keywordtype">int</span> dfree, <span class="keywordtype">int</span> no_terms, <span class="keywordtype">int</span> d_best_so_far = 0, <span class="keywordtype">bool</span> test_catastrophic = <span class="keyword">false</span>);
148<a name="l00248"></a>00248
149<a name="l00249"></a>00249 <span class="keyword">protected</span>:
150<a name="l00251"></a>00251   <span class="keywordtype">int</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#8bfca66093ff6a6c3a431c5e8fc585c0" title="The weight of path from state with input (0 or 1) at transition time.">weight</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> state, <span class="keyword">const</span> <span class="keywordtype">int</span> input, <span class="keywordtype">int</span> time);
151<a name="l00253"></a>00253   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#8bfca66093ff6a6c3a431c5e8fc585c0" title="The weight of path from state with input (0 or 1) at transition time.">weight</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> state, <span class="keywordtype">int</span> &amp;w0, <span class="keywordtype">int</span> &amp;w1, <span class="keywordtype">int</span> time);
152<a name="l00255"></a>00255   <span class="keywordtype">int</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#45c0bb8e2e8e8aa2807aa77b1ed39904" title="Weight of the reverse code from state with input (0 or 1) at transition time.">weight_reverse</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> state, <span class="keyword">const</span> <span class="keywordtype">int</span> input, <span class="keywordtype">int</span> time);
153<a name="l00257"></a>00257   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#45c0bb8e2e8e8aa2807aa77b1ed39904" title="Weight of the reverse code from state with input (0 or 1) at transition time.">weight_reverse</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> state, <span class="keywordtype">int</span> &amp;w0, <span class="keywordtype">int</span> &amp;w1, <span class="keywordtype">int</span> time);
154<a name="l00258"></a>00258
155<a name="l00260"></a><a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#ede590a005351b224cad750e9f8bb3a6">00260</a>   <span class="keywordtype">int</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#ede590a005351b224cad750e9f8bb3a6" title="The puncture period (i.e. the number of columns in the puncture matrix).">Period</a>;
156<a name="l00262"></a><a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#7728ad6a3c0389c00d005002a0dd45e7">00262</a>   <span class="keywordtype">int</span> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#7728ad6a3c0389c00d005002a0dd45e7" title="The number of &amp;quot;1&amp;quot; in the puncture matrix.">total</a>;
157<a name="l00264"></a><a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#533bca591da4abe1478bd11cf3aa82eb">00264</a>   <a class="code" href="mat_8h.html#f90acd1af41bf2d1d8a4bb23662fff69" title="bin matrix">bmat</a> <a class="code" href="classitpp_1_1Punctured__Convolutional__Code.html#533bca591da4abe1478bd11cf3aa82eb" title="The puncture matrix (n rows and Period columns).">puncture_matrix</a>;
158<a name="l00265"></a>00265 };
159<a name="l00266"></a>00266
160<a name="l00267"></a>00267 } <span class="comment">// namespace itpp</span>
161<a name="l00268"></a>00268
162<a name="l00269"></a>00269 <span class="preprocessor">#endif // #ifndef PUNCT_CONVCODE_H</span>
163</pre></div></div>
164<hr size="1"><address style="text-align: right;"><small>Generated on Tue Jun 2 10:02:12 2009 for mixpp by&nbsp;
165<a href="http://www.doxygen.org/index.html">
166<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
167</body>
168</html>
Note: See TracBrowser for help on using the browser.