root/doc/html/classitpp_1_1BERC.html @ 354

Revision 353, 15.9 kB (checked in by smidl, 15 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: itpp::BERC Class Reference</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 class="current"><a href="annotated.html"><span>Classes</span></a></li>
56      <li><a href="files.html"><span>Files</span></a></li>
57    </ul>
58  </div>
59  <div class="tabs">
60    <ul>
61      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
62      <li><a href="classes.html"><span>Class&nbsp;Index</span></a></li>
63      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
64      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
65    </ul>
66  </div>
67  <div class="navpath"><b>itpp</b>::<a class="el" href="classitpp_1_1BERC.html">BERC</a>
68  </div>
69</div>
70<div class="contents">
71<h1>itpp::BERC Class Reference</h1><!-- doxytag: class="itpp::BERC" -->Bit Error Rate Counter (<a class="el" href="classitpp_1_1BERC.html" title="Bit Error Rate Counter (BERC) Class.">BERC</a>) Class. 
72<a href="#_details">More...</a>
73<p>
74<code>#include &lt;<a class="el" href="error__counters_8h-source.html">error_counters.h</a>&gt;</code>
75<p>
76
77<p>
78<a href="classitpp_1_1BERC-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
79<tr><td></td></tr>
80<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
81<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitpp_1_1BERC.html#8e5d3f3d0041687d419c4a30af086e0d">BERC</a> (int indelay=0, int inignorefirst=0, int inignorelast=0)</td></tr>
82
83<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constructor for the berc class.  <a href="#8e5d3f3d0041687d419c4a30af086e0d"></a><br></td></tr>
84<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="539b0c989badff3027d97e4693fc9cd7"></a><!-- doxytag: member="itpp::BERC::count" ref="539b0c989badff3027d97e4693fc9cd7" args="(const bvec &amp;in1, const bvec &amp;in2)" -->
85void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitpp_1_1BERC.html#539b0c989badff3027d97e4693fc9cd7">count</a> (const bvec &amp;in1, const bvec &amp;in2)</td></tr>
86
87<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cumulative error counter. <br></td></tr>
88<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitpp_1_1BERC.html#7ccf4100e2b7b26ed8fac21fcf4aa8d6">estimate_delay</a> (const bvec &amp;in1, const bvec &amp;in2, int mindelay=-100, int maxdelay=100)</td></tr>
89
90<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3b575cfbe8dd194c2cd51a6aa52651e5"></a><!-- doxytag: member="itpp::BERC::clear" ref="3b575cfbe8dd194c2cd51a6aa52651e5" args="()" -->
91void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitpp_1_1BERC.html#3b575cfbe8dd194c2cd51a6aa52651e5">clear</a> ()</td></tr>
92
93<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Clears the bit error counter. <br></td></tr>
94<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e997bb87b1ee5eaf3eb892e7ee416a08"></a><!-- doxytag: member="itpp::BERC::report" ref="e997bb87b1ee5eaf3eb892e7ee416a08" args="() const " -->
95void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitpp_1_1BERC.html#e997bb87b1ee5eaf3eb892e7ee416a08">report</a> () const </td></tr>
96
97<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Writes an error report. <br></td></tr>
98<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4d8d81ba3fd9ebdbd4f85ed29ab4079f"></a><!-- doxytag: member="itpp::BERC::get_delay" ref="4d8d81ba3fd9ebdbd4f85ed29ab4079f" args="() const " -->
99int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitpp_1_1BERC.html#4d8d81ba3fd9ebdbd4f85ed29ab4079f">get_delay</a> () const </td></tr>
100
101<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the <em>delay</em>, assumed or estimated, between <em>in1</em> and <em>in2</em>. <br></td></tr>
102<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="02e757f28e87003404ad0d4aec1e44a6"></a><!-- doxytag: member="itpp::BERC::get_errors" ref="02e757f28e87003404ad0d4aec1e44a6" args="() const " -->
103double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitpp_1_1BERC.html#02e757f28e87003404ad0d4aec1e44a6">get_errors</a> () const </td></tr>
104
105<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the counted number of bit errors. <br></td></tr>
106<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0d1b89503b1c260b37171a07ae77c7f4"></a><!-- doxytag: member="itpp::BERC::get_corrects" ref="0d1b89503b1c260b37171a07ae77c7f4" args="() const " -->
107double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitpp_1_1BERC.html#0d1b89503b1c260b37171a07ae77c7f4">get_corrects</a> () const </td></tr>
108
109<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the counted number of corectly received bits. <br></td></tr>
110<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d1c36b23b03c2659179255f5c565a5d0"></a><!-- doxytag: member="itpp::BERC::get_total_bits" ref="d1c36b23b03c2659179255f5c565a5d0" args="() const " -->
111double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitpp_1_1BERC.html#d1c36b23b03c2659179255f5c565a5d0">get_total_bits</a> () const </td></tr>
112
113<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the total number of bits processed. <br></td></tr>
114<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f17d5f534ba34558d3632a98f29f0519"></a><!-- doxytag: member="itpp::BERC::get_errorrate" ref="f17d5f534ba34558d3632a98f29f0519" args="() const " -->
115double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitpp_1_1BERC.html#f17d5f534ba34558d3632a98f29f0519">get_errorrate</a> () const </td></tr>
116
117<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the estimated bit error rate. <br></td></tr>
118<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
119<tr><td class="memItemLeft" nowrap align="right" valign="top">static double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classitpp_1_1BERC.html#8a1a20c186d02af63a30b41660fe480e">count_errors</a> (const bvec &amp;in1, const bvec &amp;in2, int indelay=0, int inignorefirst=0, int inignorelast=0)</td></tr>
120
121<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">static function to allow simple and fast count of bit-errors  <a href="#8a1a20c186d02af63a30b41660fe480e"></a><br></td></tr>
122</table>
123<hr><a name="_details"></a><h2>Detailed Description</h2>
124Bit Error Rate Counter (<a class="el" href="classitpp_1_1BERC.html" title="Bit Error Rate Counter (BERC) Class.">BERC</a>) Class.
125<p>
126Example: <div class="fragment"><pre class="fragment"><span class="preprocessor">  #include &lt;<a class="code" href="itcomm_8h.html" title="Include file for the IT++ communications module.">itpp/itcomm.h</a>&gt;</span>
127
128  <span class="keywordtype">int</span> main() {
129    <span class="comment">//Initiate the Bit Error Counter</span>
130    <a class="code" href="classitpp_1_1BERC.html#8e5d3f3d0041687d419c4a30af086e0d" title="Constructor for the berc class.">BERC</a> berc;
131
132    <span class="comment">//Initiate a Binary Symetric Channel with cross-over probability 0.1</span>
133    BSC binary_symetric_channel(0.1);
134
135    bvec transmitted_bits = <a class="code" href="group__randgen.html#g5aa06887cf1fd3301b040987924068f0" title="Generates a random bit (equally likely 0s and 1s).">randb</a>(100);
136    bvec received_bits = binary_symetric_channel(transmitted_bits);
137
138    <span class="comment">//Count the number of bit errors</span>
139    berc.count(transmitted_bits, received_bits);
140
141    cout &lt;&lt; <span class="stringliteral">"Estimated bit error probability is "</span> &lt;&lt; berc.get_errorrate()
142         &lt;&lt; endl;
143
144    <span class="keywordflow">return</span> 0;
145  }
146</pre></div> <hr><h2>Constructor &amp; Destructor Documentation</h2>
147<a class="anchor" name="8e5d3f3d0041687d419c4a30af086e0d"></a><!-- doxytag: member="itpp::BERC::BERC" ref="8e5d3f3d0041687d419c4a30af086e0d" args="(int indelay=0, int inignorefirst=0, int inignorelast=0)" -->
148<div class="memitem">
149<div class="memproto">
150      <table class="memname">
151        <tr>
152          <td class="memname">itpp::BERC::BERC           </td>
153          <td>(</td>
154          <td class="paramtype">int&nbsp;</td>
155          <td class="paramname"> <em>indelay</em> = <code>0</code>, </td>
156        </tr>
157        <tr>
158          <td class="paramkey"></td>
159          <td></td>
160          <td class="paramtype">int&nbsp;</td>
161          <td class="paramname"> <em>inignorefirst</em> = <code>0</code>, </td>
162        </tr>
163        <tr>
164          <td class="paramkey"></td>
165          <td></td>
166          <td class="paramtype">int&nbsp;</td>
167          <td class="paramname"> <em>inignorelast</em> = <code>0</code></td><td>&nbsp;</td>
168        </tr>
169        <tr>
170          <td></td>
171          <td>)</td>
172          <td></td><td></td><td></td>
173        </tr>
174      </table>
175</div>
176<div class="memdoc">
177
178<p>
179Constructor for the berc class.
180<p>
181<ul>
182<li>
183<em>delay</em> is positive if <em>in2</em> is a delayed replica of <em>in1</em> and negative otherwise.  </li>
184<li>
185<em>ignorefirst</em> and <em>ignorelast</em> may be used if errors in the begining and/or the end is to be ignored. </li>
186</ul>
187
188</div>
189</div><p>
190<hr><h2>Member Function Documentation</h2>
191<a class="anchor" name="8a1a20c186d02af63a30b41660fe480e"></a><!-- doxytag: member="itpp::BERC::count_errors" ref="8a1a20c186d02af63a30b41660fe480e" args="(const bvec &amp;in1, const bvec &amp;in2, int indelay=0, int inignorefirst=0, int inignorelast=0)" -->
192<div class="memitem">
193<div class="memproto">
194      <table class="memname">
195        <tr>
196          <td class="memname">double itpp::BERC::count_errors           </td>
197          <td>(</td>
198          <td class="paramtype">const bvec &amp;&nbsp;</td>
199          <td class="paramname"> <em>in1</em>, </td>
200        </tr>
201        <tr>
202          <td class="paramkey"></td>
203          <td></td>
204          <td class="paramtype">const bvec &amp;&nbsp;</td>
205          <td class="paramname"> <em>in2</em>, </td>
206        </tr>
207        <tr>
208          <td class="paramkey"></td>
209          <td></td>
210          <td class="paramtype">int&nbsp;</td>
211          <td class="paramname"> <em>indelay</em> = <code>0</code>, </td>
212        </tr>
213        <tr>
214          <td class="paramkey"></td>
215          <td></td>
216          <td class="paramtype">int&nbsp;</td>
217          <td class="paramname"> <em>inignorefirst</em> = <code>0</code>, </td>
218        </tr>
219        <tr>
220          <td class="paramkey"></td>
221          <td></td>
222          <td class="paramtype">int&nbsp;</td>
223          <td class="paramname"> <em>inignorelast</em> = <code>0</code></td><td>&nbsp;</td>
224        </tr>
225        <tr>
226          <td></td>
227          <td>)</td>
228          <td></td><td></td><td><code> [static]</code></td>
229        </tr>
230      </table>
231</div>
232<div class="memdoc">
233
234<p>
235static function to allow simple and fast count of bit-errors
236<p>
237Returns the number of errors between in1 and in2. Typical usage: <div class="fragment"><pre class="fragment">    bvec in1 = <a class="code" href="group__randgen.html#g5aa06887cf1fd3301b040987924068f0" title="Generates a random bit (equally likely 0s and 1s).">randb</a>(100);
238    bvec in2 = <a class="code" href="group__randgen.html#g5aa06887cf1fd3301b040987924068f0" title="Generates a random bit (equally likely 0s and 1s).">randb</a>(100);
239    <span class="keywordtype">double</span> errors = <a class="code" href="classitpp_1_1BERC.html#8a1a20c186d02af63a30b41660fe480e" title="static function to allow simple and fast count of bit-errors">BERC::count_errors</a>(in1, in2);
240</pre></div> 
241<p>References <a class="el" href="fix__functions_8cpp-source.html#l00076">itpp::abs()</a>, and <a class="el" href="tcp_8h-source.html#l00115">itpp::min()</a>.</p>
242
243</div>
244</div><p>
245<a class="anchor" name="7ccf4100e2b7b26ed8fac21fcf4aa8d6"></a><!-- doxytag: member="itpp::BERC::estimate_delay" ref="7ccf4100e2b7b26ed8fac21fcf4aa8d6" args="(const bvec &amp;in1, const bvec &amp;in2, int mindelay=&#45;100, int maxdelay=100)" -->
246<div class="memitem">
247<div class="memproto">
248      <table class="memname">
249        <tr>
250          <td class="memname">void itpp::BERC::estimate_delay           </td>
251          <td>(</td>
252          <td class="paramtype">const bvec &amp;&nbsp;</td>
253          <td class="paramname"> <em>in1</em>, </td>
254        </tr>
255        <tr>
256          <td class="paramkey"></td>
257          <td></td>
258          <td class="paramtype">const bvec &amp;&nbsp;</td>
259          <td class="paramname"> <em>in2</em>, </td>
260        </tr>
261        <tr>
262          <td class="paramkey"></td>
263          <td></td>
264          <td class="paramtype">int&nbsp;</td>
265          <td class="paramname"> <em>mindelay</em> = <code>-100</code>, </td>
266        </tr>
267        <tr>
268          <td class="paramkey"></td>
269          <td></td>
270          <td class="paramtype">int&nbsp;</td>
271          <td class="paramname"> <em>maxdelay</em> = <code>100</code></td><td>&nbsp;</td>
272        </tr>
273        <tr>
274          <td></td>
275          <td>)</td>
276          <td></td><td></td><td></td>
277        </tr>
278      </table>
279</div>
280<div class="memdoc">
281
282<p>
283Run this member function if the delay between <em>in1</em> and <em>in2</em> is unknown.
284<p>References <a class="el" href="fix__functions_8cpp-source.html#l00076">itpp::abs()</a>, <a class="el" href="tcp_8h-source.html#l00115">itpp::min()</a>, <a class="el" href="matfunc_8h-source.html#l00077">itpp::sum()</a>, and <a class="el" href="fix__functions_8cpp-source.html#l00036">itpp::to_vec()</a>.</p>
285
286</div>
287</div><p>
288<hr>The documentation for this class was generated from the following files:<ul>
289<li><a class="el" href="error__counters_8h-source.html">error_counters.h</a><li><a class="el" href="error__counters_8cpp.html">error_counters.cpp</a></ul>
290</div>
291<hr size="1"><address style="text-align: right;"><small>Generated on Tue Jun 2 10:02:19 2009 for mixpp by&nbsp;
292<a href="http://www.doxygen.org/index.html">
293<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
294</body>
295</html>
Note: See TracBrowser for help on using the browser.