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 | <!-- |
---|
10 | function 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 | } |
---|
22 | function 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 | } |
---|
46 | window.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 Page</span></a></li> |
---|
53 | <li><a href="pages.html"><span>Related 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 List</span></a></li> |
---|
62 | <li><a href="globals.html"><span>File 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 <<a class="code" href="vec_8h.html" title="Templated Vector Class Definitions.">itpp/base/vec.h</a>></span> |
---|
70 | <a name="l00033"></a>00033 <span class="preprocessor">#include <<a class="code" href="mat_8h.html" title="Matrix Class Definitions.">itpp/base/mat.h</a>></span> |
---|
71 | <a name="l00034"></a>00034 <span class="preprocessor">#include <<a class="code" href="array_8h.html" title="Definition of Array class (container).">itpp/base/array.h</a>></span> |
---|
72 | <a name="l00035"></a>00035 <span class="preprocessor">#include <<a class="code" href="convcode_8h.html" title="Definition of a binary convolutional encoder class.">itpp/comm/convcode.h</a>></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 &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> &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 &input, bvec &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 &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 &input, bvec &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 &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 &input, bvec &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 &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 &input, bvec &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 &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 &received_signal, bvec &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 &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 &coded_bits, bvec &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 &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 &received_signal, bvec &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 &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 &received_signal, bvec &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 &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 &received_signal, bvec &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 &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 &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 &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<ivec></a> &<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<ivec></a> &<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&#39;s fast algorithm.">fast</a>(<a class="code" href="classitpp_1_1Array.html">Array<ivec></a> &<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> &w0, <span class="keywordtype">int</span> &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> &w0, <span class="keywordtype">int</span> &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 &quot;1&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 |
---|
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> |
---|