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

Revision 353, 87.7 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: channel.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>channel.h</h1><a href="channel_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 CHANNEL_H</span>
67<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#define CHANNEL_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="elem__math_8h.html" title="Elementary mathematical functions - header file.">itpp/base/math/elem_math.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="random_8h.html" title="Definition of classes for random number generators.">itpp/base/random.h</a>&gt;</span>
73<a name="l00036"></a>00036 <span class="preprocessor">#include &lt;<a class="code" href="filter_8h.html" title="Definitions of Filter classes and functions.">itpp/signal/filter.h</a>&gt;</span>
74<a name="l00037"></a>00037
75<a name="l00184"></a>00184 <span class="keyword">namespace </span>itpp
76<a name="l00185"></a>00185 {
77<a name="l00186"></a>00186
78<a name="l00188"></a>00188
79<a name="l00189"></a>00189
80<a name="l00191"></a><a class="code" href="group__channels.html#gf1d6629952e915c9afe3913b726836ce">00191</a> <span class="keyword">enum</span> <a class="code" href="group__channels.html#gf1d6629952e915c9afe3913b726836ce" title="Predefined channel profiles. Includes LOS and Doppler spectrum settings.">CHANNEL_PROFILE</a> {
81<a name="l00192"></a>00192   ITU_Vehicular_A, ITU_Vehicular_B, ITU_Pedestrian_A, ITU_Pedestrian_B,
82<a name="l00193"></a>00193   COST207_RA, COST207_RA6,
83<a name="l00194"></a>00194   COST207_TU, COST207_TU6alt, COST207_TU12, COST207_TU12alt,
84<a name="l00195"></a>00195   COST207_BU, COST207_BU6alt, COST207_BU12, COST207_BU12alt,
85<a name="l00196"></a>00196   COST207_HT, COST207_HT6alt, COST207_HT12, COST207_HT12alt,
86<a name="l00197"></a>00197   COST259_TUx, COST259_RAx, COST259_HTx
87<a name="l00198"></a>00198 };
88<a name="l00199"></a>00199
89<a name="l00201"></a><a class="code" href="group__channels.html#gf331f50064dab0a357caba2a0cb02b76">00201</a> <span class="keyword">enum</span> <a class="code" href="group__channels.html#gf331f50064dab0a357caba2a0cb02b76" title="Fading generator type: Independent (default), Static or Correlated.">FADING_TYPE</a> { Independent, Static, Correlated };
90<a name="l00202"></a>00202
91<a name="l00204"></a><a class="code" href="group__channels.html#g0875516a69d533c89b49a43c2b1b987d">00204</a> <span class="keyword">enum</span> <a class="code" href="group__channels.html#g0875516a69d533c89b49a43c2b1b987d" title="Correlated fading generation methods: Rice_MEDS (default), IFFT or FIR.">CORRELATED_METHOD</a> { Rice_MEDS, IFFT, FIR };
92<a name="l00205"></a>00205
93<a name="l00207"></a><a class="code" href="group__channels.html#g5909a344554fcfbc9d5c87dcd206974b">00207</a> <span class="keyword">enum</span> <a class="code" href="group__channels.html#g5909a344554fcfbc9d5c87dcd206974b" title="Rice fading generation methods: MEDS.">RICE_METHOD</a> { MEDS };
94<a name="l00208"></a>00208
95<a name="l00210"></a><a class="code" href="group__channels.html#gfd030225d513c962191cbce565337fd8">00210</a> <span class="keyword">enum</span> <a class="code" href="group__channels.html#gfd030225d513c962191cbce565337fd8" title="Predefined Doppler spectra.">DOPPLER_SPECTRUM</a> {
96<a name="l00211"></a>00211   Jakes = 0, J = 0, Classic = 0, C = 0,
97<a name="l00212"></a>00212   GaussI = 1, Gauss1 = 1, GI = 1, G1 = 1,
98<a name="l00213"></a>00213   GaussII = 2, Gauss2 = 2, GII = 2, G2 = 2
99<a name="l00214"></a>00214 };
100<a name="l00215"></a>00215
101<a name="l00216"></a>00216
102<a name="l00226"></a><a class="code" href="classitpp_1_1Fading__Generator.html">00226</a> <span class="keyword">class </span><a class="code" href="classitpp_1_1Fading__Generator.html" title="Fading generator class.">Fading_Generator</a>
103<a name="l00227"></a>00227 {
104<a name="l00228"></a>00228 <span class="keyword">public</span>:
105<a name="l00230"></a>00230   <a class="code" href="classitpp_1_1Fading__Generator.html#31bdd5c650fdb0d1c9eb42727258959d" title="Default constructor.">Fading_Generator</a>();
106<a name="l00232"></a><a class="code" href="classitpp_1_1Fading__Generator.html#b465ffb0dc7f8dd3862bd63b11ed3e07">00232</a>   <span class="keyword">virtual</span> <a class="code" href="classitpp_1_1Fading__Generator.html#b465ffb0dc7f8dd3862bd63b11ed3e07" title="Destructor.">~Fading_Generator</a>() {}
107<a name="l00233"></a>00233
108<a name="l00235"></a>00235   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Fading__Generator.html#303d2454c55a32ea459b2986bc103d31" title="Set relative LOS power.">set_LOS_power</a>(<span class="keywordtype">double</span> relative_power);
109<a name="l00237"></a>00237   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Fading__Generator.html#8b4e75267789eb8e6ba796ea56457091" title="Set relative Doppler of the LOS component (for correlated fading generators).">set_LOS_doppler</a>(<span class="keywordtype">double</span> relative_doppler);
110<a name="l00239"></a>00239   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Fading__Generator.html#a020f2c970b3c347db7f9db39641b8aa" title="Set time offset in samples (for correlated fading generators).">set_time_offset</a>(<span class="keywordtype">int</span> offset);
111<a name="l00241"></a>00241   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Fading__Generator.html#c61d461f35719366404da7b454578132" title="Set FIR filter length (for FIR fading generator).">set_filter_length</a>(<span class="keywordtype">int</span> filter_length);
112<a name="l00243"></a>00243   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Fading__Generator.html#e0c9e5efe80612659c4293c5086e4939" title="Set normalized Doppler (for correlated fading generators).">set_norm_doppler</a>(<span class="keywordtype">double</span> norm_doppler);
113<a name="l00245"></a>00245   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Fading__Generator.html#e03abc2611e2658ecbfa809a571545dc" title="Set Doppler spectrum (for Rice fading generator).">set_doppler_spectrum</a>(<a class="code" href="group__channels.html#gfd030225d513c962191cbce565337fd8" title="Predefined Doppler spectra.">DOPPLER_SPECTRUM</a> <a class="code" href="group__sigproc.html#g24804e1227fb135d6117652a417b44c0" title="Power spectrum calculation.">spectrum</a>);
114<a name="l00247"></a>00247   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Fading__Generator.html#fb48831a6883828cc2f176e00dacf916" title="Set number of sine frequencies (for Rice fading generator).">set_no_frequencies</a>(<span class="keywordtype">int</span> no_freq);
115<a name="l00249"></a>00249   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Fading__Generator.html#14efae5d9a4b08d00b7952877f3f74ef" title="Set calculation method of Doppler frequencies and amplitudes (for Rice fading generator)...">set_rice_method</a>(<a class="code" href="group__channels.html#g5909a344554fcfbc9d5c87dcd206974b" title="Rice fading generation methods: MEDS.">RICE_METHOD</a> method);
116<a name="l00250"></a>00250
117<a name="l00252"></a><a class="code" href="classitpp_1_1Fading__Generator.html#25a4f2666677dd154219eee76e27a648">00252</a>   <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1Fading__Generator.html#25a4f2666677dd154219eee76e27a648" title="Get relative power of LOS component (Rice factor).">get_LOS_power</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1Fading__Generator.html#d5512a1606e0e89476ff8554081aeafe" title="Relative power of LOS component compared to diffuse component (K factor).">los_power</a>; }
118<a name="l00254"></a>00254   <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1Fading__Generator.html#777a8b3a8d2754421b4dc9de81d2e989" title="Get relative Doppler of the LOS component (for correlated fading generators).">get_LOS_doppler</a>() <span class="keyword">const</span>;
119<a name="l00256"></a>00256   <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1Fading__Generator.html#3e11dc7b0a862e2d86c55097f9551547" title="Get time offset in samples (for correlated fading generators).">get_time_offset</a>() <span class="keyword">const</span>;
120<a name="l00258"></a>00258   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classitpp_1_1Fading__Generator.html#1c5d34d4ca2a06634f8a91394f83fe58" title="Set FIR filter length (for FIR fading generator).">get_filter_length</a>() <span class="keyword">const</span>;
121<a name="l00260"></a>00260   <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1Fading__Generator.html#18431c4491c4d64801b3a2ed63d90795" title="Return normalized Doppler (for correlated fading generators).">get_norm_doppler</a>() <span class="keyword">const</span>;
122<a name="l00262"></a>00262   <span class="keyword">virtual</span> <a class="code" href="group__channels.html#gfd030225d513c962191cbce565337fd8" title="Predefined Doppler spectra.">DOPPLER_SPECTRUM</a> <a class="code" href="classitpp_1_1Fading__Generator.html#dfc80efcd94edf481d0b631b9eabb8ec" title="Return Doppler spectrum (for Rice fading generator).">get_doppler_spectrum</a>() <span class="keyword">const</span>;
123<a name="l00264"></a>00264   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classitpp_1_1Fading__Generator.html#c0463428de18bb3fc78a879ef7d5e6c5" title="Get number of sine frequencies (for Rice fading generator).">get_no_frequencies</a>() <span class="keyword">const</span>;
124<a name="l00266"></a>00266   <span class="keyword">virtual</span> <a class="code" href="group__channels.html#g5909a344554fcfbc9d5c87dcd206974b" title="Rice fading generation methods: MEDS.">RICE_METHOD</a> <a class="code" href="classitpp_1_1Fading__Generator.html#29db45399c53169186ce3bcf66474e68" title="Get calculation method of Doppler frequencies and amplitudes (for Rice fading generator)...">get_rice_method</a>() <span class="keyword">const</span>;
125<a name="l00267"></a>00267
126<a name="l00269"></a>00269   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Fading__Generator.html#56173b73a996d6e87ebe2b43090837c5" title="Shift generator time offset by a number of samples (for correlated fading generators)...">shift_time_offset</a>(<span class="keywordtype">int</span> no_samples);
127<a name="l00270"></a>00270
128<a name="l00272"></a>00272   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Fading__Generator.html#d9f07612e9a8092a3292bfc8306495ca" title="Initialize the generator.">init</a>() = 0;
129<a name="l00273"></a>00273
130<a name="l00275"></a>00275   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Fading__Generator.html#55ae012c93a69bbf7667ecddd8514ea7" title="Generate no_samples values from the fading process.">generate</a>(<span class="keywordtype">int</span> no_samples, cvec &amp;output) = 0;
131<a name="l00277"></a>00277   cvec <a class="code" href="classitpp_1_1Fading__Generator.html#55ae012c93a69bbf7667ecddd8514ea7" title="Generate no_samples values from the fading process.">generate</a>(<span class="keywordtype">int</span> no_samples);
132<a name="l00278"></a>00278
133<a name="l00279"></a>00279 <span class="keyword">protected</span>:
134<a name="l00280"></a><a class="code" href="classitpp_1_1Fading__Generator.html#6fc31470215eda975bbefa15f9638504">00280</a>   <span class="keywordtype">bool</span> <a class="code" href="classitpp_1_1Fading__Generator.html#6fc31470215eda975bbefa15f9638504" title="signals if generator is initialized or not">init_flag</a>;
135<a name="l00281"></a><a class="code" href="classitpp_1_1Fading__Generator.html#d5512a1606e0e89476ff8554081aeafe">00281</a>   <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1Fading__Generator.html#d5512a1606e0e89476ff8554081aeafe" title="Relative power of LOS component compared to diffuse component (K factor).">los_power</a>;
136<a name="l00282"></a><a class="code" href="classitpp_1_1Fading__Generator.html#6b92dcea4661469227e558ece50975c6">00282</a>   <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1Fading__Generator.html#6b92dcea4661469227e558ece50975c6" title="Diffuse component: sqrt(1 / (1 + los_power)).">los_diffuse</a>;
137<a name="l00283"></a><a class="code" href="classitpp_1_1Fading__Generator.html#c8d8f76a8d3965731972137c5d95b8d2">00283</a>   <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1Fading__Generator.html#c8d8f76a8d3965731972137c5d95b8d2" title="Direct component: sqrt(los_power / (1 + los_power)).">los_direct</a>;
138<a name="l00284"></a>00284 };
139<a name="l00285"></a>00285
140<a name="l00286"></a>00286
141<a name="l00295"></a><a class="code" href="classitpp_1_1Independent__Fading__Generator.html">00295</a> <span class="keyword">class </span><a class="code" href="classitpp_1_1Independent__Fading__Generator.html" title="Independent (random) fading generator class.">Independent_Fading_Generator</a> : <span class="keyword">public</span> <a class="code" href="classitpp_1_1Fading__Generator.html" title="Fading generator class.">Fading_Generator</a>
142<a name="l00296"></a>00296 {
143<a name="l00297"></a>00297 <span class="keyword">public</span>:
144<a name="l00299"></a><a class="code" href="classitpp_1_1Independent__Fading__Generator.html#2b8e95e0c8fee28bfa3cac3faae353f9">00299</a>   <a class="code" href="classitpp_1_1Independent__Fading__Generator.html#2b8e95e0c8fee28bfa3cac3faae353f9" title="Default constructor.">Independent_Fading_Generator</a>() : <a class="code" href="classitpp_1_1Fading__Generator.html" title="Fading generator class.">Fading_Generator</a>() {}
145<a name="l00301"></a><a class="code" href="classitpp_1_1Independent__Fading__Generator.html#9c1bfbc57d9ec4696590a8f50bf26f8b">00301</a>   <span class="keyword">virtual</span> <a class="code" href="classitpp_1_1Independent__Fading__Generator.html#9c1bfbc57d9ec4696590a8f50bf26f8b" title="Destructor.">~Independent_Fading_Generator</a>() {}
146<a name="l00302"></a>00302
147<a name="l00304"></a><a class="code" href="classitpp_1_1Independent__Fading__Generator.html#b04c0a33b794a552d2eec75a450f590f">00304</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Independent__Fading__Generator.html#b04c0a33b794a552d2eec75a450f590f" title="Initialize the generator.">init</a>() { <a class="code" href="classitpp_1_1Fading__Generator.html#6fc31470215eda975bbefa15f9638504" title="signals if generator is initialized or not">init_flag</a> = <span class="keyword">true</span>; }
148<a name="l00305"></a>00305
149<a name="l00306"></a>00306   <span class="keyword">using</span> <a class="code" href="classitpp_1_1Fading__Generator.html#55ae012c93a69bbf7667ecddd8514ea7" title="Generate no_samples values from the fading process.">Fading_Generator::generate</a>;
150<a name="l00307"></a>00307
151<a name="l00309"></a>00309   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Independent__Fading__Generator.html#da24fbbe3e132f3d4500d138ae75252d" title="Generate no_samples values from the fading process.">generate</a>(<span class="keywordtype">int</span> no_samples, cvec&amp; output);
152<a name="l00310"></a>00310 };
153<a name="l00311"></a>00311
154<a name="l00312"></a>00312
155<a name="l00322"></a><a class="code" href="classitpp_1_1Static__Fading__Generator.html">00322</a> <span class="keyword">class </span><a class="code" href="classitpp_1_1Static__Fading__Generator.html" title="Static fading generator class.">Static_Fading_Generator</a> : <span class="keyword">public</span> <a class="code" href="classitpp_1_1Fading__Generator.html" title="Fading generator class.">Fading_Generator</a>
156<a name="l00323"></a>00323 {
157<a name="l00324"></a>00324 <span class="keyword">public</span>:
158<a name="l00326"></a><a class="code" href="classitpp_1_1Static__Fading__Generator.html#6a0a33b29aa0b1cbf1127380063614c8">00326</a>   <a class="code" href="classitpp_1_1Static__Fading__Generator.html#6a0a33b29aa0b1cbf1127380063614c8" title="Default constructor.">Static_Fading_Generator</a>() : <a class="code" href="classitpp_1_1Fading__Generator.html" title="Fading generator class.">Fading_Generator</a>() {}
159<a name="l00328"></a><a class="code" href="classitpp_1_1Static__Fading__Generator.html#8c46c2ebb5b9424321fba5d0c06f2a11">00328</a>   <span class="keyword">virtual</span> <a class="code" href="classitpp_1_1Static__Fading__Generator.html#8c46c2ebb5b9424321fba5d0c06f2a11" title="Destructor.">~Static_Fading_Generator</a>() {}
160<a name="l00329"></a>00329
161<a name="l00331"></a>00331   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Static__Fading__Generator.html#c98b49b70e89a5ef3aff5e1dd3fb8e27" title="Initialize the generator.">init</a>();
162<a name="l00332"></a>00332
163<a name="l00333"></a>00333   <span class="keyword">using</span> <a class="code" href="classitpp_1_1Fading__Generator.html#55ae012c93a69bbf7667ecddd8514ea7" title="Generate no_samples values from the fading process.">Fading_Generator::generate</a>;
164<a name="l00334"></a>00334
165<a name="l00336"></a>00336   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Static__Fading__Generator.html#2a20159bff443fc58e1f0d8d356f67fe" title="Generate no_samples values from the fading process.">generate</a>(<span class="keywordtype">int</span> no_samples, cvec&amp; output);
166<a name="l00337"></a>00337
167<a name="l00338"></a>00338 <span class="keyword">protected</span>:
168<a name="l00340"></a><a class="code" href="classitpp_1_1Static__Fading__Generator.html#33f0b3260d64d38b5279203885891f2f">00340</a>   std::complex&lt;double&gt; <a class="code" href="classitpp_1_1Static__Fading__Generator.html#33f0b3260d64d38b5279203885891f2f" title="Static Rayleigh distributed sample.">static_sample</a>;
169<a name="l00341"></a>00341 };
170<a name="l00342"></a>00342
171<a name="l00343"></a>00343
172<a name="l00356"></a><a class="code" href="classitpp_1_1Correlated__Fading__Generator.html">00356</a> <span class="keyword">class </span><a class="code" href="classitpp_1_1Correlated__Fading__Generator.html" title="Correlated (random) fading generator class.">Correlated_Fading_Generator</a> : <span class="keyword">public</span> <a class="code" href="classitpp_1_1Fading__Generator.html" title="Fading generator class.">Fading_Generator</a>
173<a name="l00357"></a>00357 {
174<a name="l00358"></a>00358 <span class="keyword">public</span>:
175<a name="l00360"></a>00360   <a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#ad4cb3da29fc5bd7094cb4bb7b9e7a28" title="Default constructor.">Correlated_Fading_Generator</a>(<span class="keywordtype">double</span> norm_doppler);
176<a name="l00362"></a><a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#7338b16829f3aa65fb7bbc8eb6ed9336">00362</a>   <span class="keyword">virtual</span> <a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#7338b16829f3aa65fb7bbc8eb6ed9336" title="Destructor.">~Correlated_Fading_Generator</a>() {}
177<a name="l00363"></a>00363
178<a name="l00365"></a>00365   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#1ce922b7a4584ff96aad0cb1e804a805" title="Set normalized Doppler.">set_norm_doppler</a>(<span class="keywordtype">double</span> norm_doppler);
179<a name="l00367"></a>00367   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#f25e8ce62c4da500a45da98f9ab6709f" title="Set relative Doppler (compared to the maximum Doppler) for the LOS component.">set_LOS_doppler</a>(<span class="keywordtype">double</span> relative_doppler);
180<a name="l00369"></a>00369   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#b4be548769b72b5b2cf14be1d0deceab" title="Set time offset in samples.">set_time_offset</a>(<span class="keywordtype">int</span> offset);
181<a name="l00370"></a>00370
182<a name="l00372"></a><a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#9557ac876ae32b89d4652f761a4f20b0">00372</a>   <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#9557ac876ae32b89d4652f761a4f20b0" title="Return normalized Doppler.">get_norm_doppler</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#3da170feb1b6985aeb23097e284b292e" title="Normalized maximum Doppler frequency.">n_dopp</a>; }
183<a name="l00374"></a><a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#67f6da3c7ce1d462d09778b913b8c5ee">00374</a>   <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#67f6da3c7ce1d462d09778b913b8c5ee" title="Get relative Doppler (compared to the maximum doppler) for the LOS component.">get_LOS_doppler</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#30a9693666fe55bfdda432a8abb3d2b6" title="Relative Doppler on LOS component (0.7 by default).">los_dopp</a>; }
184<a name="l00376"></a><a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#e8a07728aa2d86124ab4aee8e56fb536">00376</a>   <span class="keyword">virtual</span> <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#e8a07728aa2d86124ab4aee8e56fb536" title="Get time offset in samples.">get_time_offset</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#4da6e42de65ea4580dcc378aaab9f82f" title="Time offset in samples (time state in the generator).">time_offset</a>; }
185<a name="l00377"></a>00377
186<a name="l00379"></a>00379   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#c230a87eec2a53dadd8e8706baa7d51c" title="Shift generator time offset by a number of samples.">shift_time_offset</a>(<span class="keywordtype">int</span> no_samples);
187<a name="l00380"></a>00380
188<a name="l00382"></a>00382   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#99e888fe2b260c77fb8e3654f3368fc8" title="Initialize the generator.">init</a>() = 0;
189<a name="l00383"></a>00383
190<a name="l00384"></a>00384   <span class="keyword">using</span> <a class="code" href="classitpp_1_1Fading__Generator.html#55ae012c93a69bbf7667ecddd8514ea7" title="Generate no_samples values from the fading process.">Fading_Generator::generate</a>;
191<a name="l00385"></a>00385
192<a name="l00387"></a>00387   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#9a8b6c1e3d2686a4d05ca558c9d14b6f" title="Generate no_samples values from the fading process.">generate</a>(<span class="keywordtype">int</span> no_samples, cvec&amp; output) = 0;
193<a name="l00388"></a>00388
194<a name="l00389"></a>00389 <span class="keyword">protected</span>:
195<a name="l00390"></a><a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#3da170feb1b6985aeb23097e284b292e">00390</a>   <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#3da170feb1b6985aeb23097e284b292e" title="Normalized maximum Doppler frequency.">n_dopp</a>;
196<a name="l00391"></a><a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#30a9693666fe55bfdda432a8abb3d2b6">00391</a>   <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#30a9693666fe55bfdda432a8abb3d2b6" title="Relative Doppler on LOS component (0.7 by default).">los_dopp</a>;
197<a name="l00392"></a><a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#4da6e42de65ea4580dcc378aaab9f82f">00392</a>   <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#4da6e42de65ea4580dcc378aaab9f82f" title="Time offset in samples (time state in the generator).">time_offset</a>;
198<a name="l00393"></a>00393
199<a name="l00395"></a>00395   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#c9eee8d72cf7d8fbbb0a646cd5dfbc11" title="add LOS component to the sample with index idx ">add_LOS</a>(<span class="keywordtype">int</span> idx, std::complex&lt;double&gt;&amp; sample);
200<a name="l00396"></a>00396 };
201<a name="l00397"></a>00397
202<a name="l00398"></a>00398
203<a name="l00433"></a><a class="code" href="classitpp_1_1Rice__Fading__Generator.html">00433</a> <span class="keyword">class </span><a class="code" href="classitpp_1_1Rice__Fading__Generator.html" title="Rice type fading generator class.">Rice_Fading_Generator</a> : <span class="keyword">public</span> <a class="code" href="classitpp_1_1Correlated__Fading__Generator.html" title="Correlated (random) fading generator class.">Correlated_Fading_Generator</a>
204<a name="l00434"></a>00434 {
205<a name="l00435"></a>00435 <span class="keyword">public</span>:
206<a name="l00437"></a>00437   <a class="code" href="classitpp_1_1Rice__Fading__Generator.html#4bbe9cfba4de2df07066dea35c8175c9" title="Default constructor.">Rice_Fading_Generator</a>(<span class="keywordtype">double</span> norm_doppler, <a class="code" href="group__channels.html#gfd030225d513c962191cbce565337fd8" title="Predefined Doppler spectra.">DOPPLER_SPECTRUM</a> <a class="code" href="group__sigproc.html#g24804e1227fb135d6117652a417b44c0" title="Power spectrum calculation.">spectrum</a> = Jakes,
207<a name="l00438"></a>00438                         <span class="keywordtype">int</span> no_freq = 16, <a class="code" href="group__channels.html#g5909a344554fcfbc9d5c87dcd206974b" title="Rice fading generation methods: MEDS.">RICE_METHOD</a> method = MEDS);
208<a name="l00440"></a><a class="code" href="classitpp_1_1Rice__Fading__Generator.html#c1fcc109c18b1c0d766c5204363d8c7c">00440</a>   <span class="keyword">virtual</span> <a class="code" href="classitpp_1_1Rice__Fading__Generator.html#c1fcc109c18b1c0d766c5204363d8c7c" title="Destructor.">~Rice_Fading_Generator</a>() {}
209<a name="l00441"></a>00441
210<a name="l00443"></a>00443   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Rice__Fading__Generator.html#01a1c05d516c8cf6056d85abe8e33778" title="Set Doppler spectrum.">set_doppler_spectrum</a>(<a class="code" href="group__channels.html#gfd030225d513c962191cbce565337fd8" title="Predefined Doppler spectra.">DOPPLER_SPECTRUM</a> <a class="code" href="group__sigproc.html#g24804e1227fb135d6117652a417b44c0" title="Power spectrum calculation.">spectrum</a>);
211<a name="l00445"></a>00445   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Rice__Fading__Generator.html#87df5930da6d39bffbc373533156d811" title="Set number of Doppler frequencies.">set_no_frequencies</a>(<span class="keywordtype">int</span> no_freq);
212<a name="l00447"></a>00447   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Rice__Fading__Generator.html#2c3456a0dad7acdd15a8adde01bfa6b1" title="Set calculation method of Doppler frequencies and amplitudes.">set_rice_method</a>(<a class="code" href="group__channels.html#g5909a344554fcfbc9d5c87dcd206974b" title="Rice fading generation methods: MEDS.">RICE_METHOD</a> method);
213<a name="l00448"></a>00448
214<a name="l00450"></a><a class="code" href="classitpp_1_1Rice__Fading__Generator.html#da1f869625203f6010b08e8632c98f07">00450</a>   <span class="keyword">virtual</span> <a class="code" href="group__channels.html#gfd030225d513c962191cbce565337fd8" title="Predefined Doppler spectra.">DOPPLER_SPECTRUM</a> <a class="code" href="classitpp_1_1Rice__Fading__Generator.html#da1f869625203f6010b08e8632c98f07" title="Return Doppler spectrum.">get_doppler_spectrum</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1Rice__Fading__Generator.html#6e171c0814c6b1cfc84bbf11abfb5223">dopp_spectrum</a>; }
215<a name="l00452"></a><a class="code" href="classitpp_1_1Rice__Fading__Generator.html#2cb7d470e58e48297fd0abd3a724b180">00452</a>   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classitpp_1_1Rice__Fading__Generator.html#2cb7d470e58e48297fd0abd3a724b180" title="Get number of Doppler frequencies.">get_no_frequencies</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1Rice__Fading__Generator.html#abc7950ad683d6c38f3256a0e143d7ac" title="Number of sine waves in a Gaussian process.">Ni</a>; }
216<a name="l00454"></a><a class="code" href="classitpp_1_1Rice__Fading__Generator.html#ea6017a11a3ee28b473b7cbf65b2d277">00454</a>   <span class="keyword">virtual</span> <a class="code" href="group__channels.html#g5909a344554fcfbc9d5c87dcd206974b" title="Rice fading generation methods: MEDS.">RICE_METHOD</a> <a class="code" href="classitpp_1_1Rice__Fading__Generator.html#ea6017a11a3ee28b473b7cbf65b2d277" title="Get calculation method of Doppler frequencies and amplitudes.">get_rice_method</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1Rice__Fading__Generator.html#b6865298fa6f8a6b4bd5418e6c597066" title="Rice process generation method.">rice_method</a>; }
217<a name="l00455"></a>00455
218<a name="l00457"></a>00457   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Rice__Fading__Generator.html#3712a57f3728ac6b35ccbdc7e1643f75" title="Initialize the generator.">init</a>();
219<a name="l00458"></a>00458
220<a name="l00459"></a>00459   <span class="keyword">using</span> <a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#9a8b6c1e3d2686a4d05ca558c9d14b6f" title="Generate no_samples values from the fading process.">Correlated_Fading_Generator::generate</a>;
221<a name="l00460"></a>00460
222<a name="l00462"></a>00462   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Rice__Fading__Generator.html#1036e2a3829a0dad528d40f9f5dc79ac" title="Generate no_samples values from the fading process.">generate</a>(<span class="keywordtype">int</span> no_samples, cvec &amp;output);
223<a name="l00463"></a>00463
224<a name="l00464"></a>00464 <span class="keyword">protected</span>:
225<a name="l00465"></a><a class="code" href="classitpp_1_1Rice__Fading__Generator.html#6e171c0814c6b1cfc84bbf11abfb5223">00465</a>   <a class="code" href="group__channels.html#gfd030225d513c962191cbce565337fd8" title="Predefined Doppler spectra.">DOPPLER_SPECTRUM</a> <a class="code" href="classitpp_1_1Rice__Fading__Generator.html#6e171c0814c6b1cfc84bbf11abfb5223">dopp_spectrum</a>;
226<a name="l00466"></a>00466
227<a name="l00467"></a><a class="code" href="classitpp_1_1Rice__Fading__Generator.html#abc7950ad683d6c38f3256a0e143d7ac">00467</a>   <span class="keywordtype">int</span> <a class="code" href="classitpp_1_1Rice__Fading__Generator.html#abc7950ad683d6c38f3256a0e143d7ac" title="Number of sine waves in a Gaussian process.">Ni</a>;
228<a name="l00469"></a><a class="code" href="classitpp_1_1Rice__Fading__Generator.html#b6865298fa6f8a6b4bd5418e6c597066">00469</a>   <a class="code" href="group__channels.html#g5909a344554fcfbc9d5c87dcd206974b" title="Rice fading generation methods: MEDS.">RICE_METHOD</a> <a class="code" href="classitpp_1_1Rice__Fading__Generator.html#b6865298fa6f8a6b4bd5418e6c597066" title="Rice process generation method.">rice_method</a>;
229<a name="l00472"></a><a class="code" href="classitpp_1_1Rice__Fading__Generator.html#57b5caf7ec506dc3e26cb22f62e17428">00472</a>   vec <a class="code" href="classitpp_1_1Rice__Fading__Generator.html#57b5caf7ec506dc3e26cb22f62e17428">f1</a>, f2, c1, c2, th1, th2;
230<a name="l00476"></a><a class="code" href="classitpp_1_1Rice__Fading__Generator.html#b24148fd58d05a69dea192734238481a">00476</a>   <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1Rice__Fading__Generator.html#b24148fd58d05a69dea192734238481a">f01</a>, f02;
231<a name="l00479"></a>00479
232<a name="l00480"></a>00480   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Rice__Fading__Generator.html#0f0dbd0970888b7551b273097d1cf8b5" title="Init function for MEDS method.">init_MEDS</a>();
233<a name="l00481"></a>00481 };
234<a name="l00482"></a>00482
235<a name="l00483"></a>00483
236<a name="l00502"></a><a class="code" href="classitpp_1_1FIR__Fading__Generator.html">00502</a> <span class="keyword">class </span><a class="code" href="classitpp_1_1FIR__Fading__Generator.html" title="FIR type Fading generator class.">FIR_Fading_Generator</a> : <span class="keyword">public</span> <a class="code" href="classitpp_1_1Correlated__Fading__Generator.html" title="Correlated (random) fading generator class.">Correlated_Fading_Generator</a>
237<a name="l00503"></a>00503 {
238<a name="l00504"></a>00504 <span class="keyword">public</span>:
239<a name="l00506"></a>00506   <a class="code" href="classitpp_1_1FIR__Fading__Generator.html#0f30646df5d316a17f0af73b4584d9bf" title="Default constructor.">FIR_Fading_Generator</a>(<span class="keywordtype">double</span> norm_doppler, <span class="keywordtype">int</span> filter_length = 500);
240<a name="l00508"></a><a class="code" href="classitpp_1_1FIR__Fading__Generator.html#12d2a073a37f1fa4e77900d1b4c93e41">00508</a>   <span class="keyword">virtual</span> <a class="code" href="classitpp_1_1FIR__Fading__Generator.html#12d2a073a37f1fa4e77900d1b4c93e41" title="Destructor.">~FIR_Fading_Generator</a>() {}
241<a name="l00509"></a>00509
242<a name="l00511"></a>00511   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1FIR__Fading__Generator.html#367a3544e74251285d08644e0da0b255" title="Set FIR filter length.">set_filter_length</a>(<span class="keywordtype">int</span> filter_length);
243<a name="l00513"></a><a class="code" href="classitpp_1_1FIR__Fading__Generator.html#6682992e50d22a1966b280ac68844f76">00513</a>   <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classitpp_1_1FIR__Fading__Generator.html#6682992e50d22a1966b280ac68844f76" title="Get filter length.">get_filter_length</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1FIR__Fading__Generator.html#3c458ce594b4a8f5ec08ec6398d7e27e" title="Size of FIR filter.">fir_length</a>; }
244<a name="l00514"></a>00514
245<a name="l00516"></a>00516   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1FIR__Fading__Generator.html#02a41d78b0c669468101d1cc19a8db22" title="Initialize the generator.">init</a>();
246<a name="l00517"></a>00517
247<a name="l00518"></a>00518   <span class="keyword">using</span> <a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#9a8b6c1e3d2686a4d05ca558c9d14b6f" title="Generate no_samples values from the fading process.">Correlated_Fading_Generator::generate</a>;
248<a name="l00519"></a>00519
249<a name="l00521"></a>00521   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1FIR__Fading__Generator.html#7e75822c2898663bcabf504ad0d8f3be" title="Generate no_samples values from the fading process.">generate</a>(<span class="keywordtype">int</span> no_samples, cvec &amp;output);
250<a name="l00522"></a>00522
251<a name="l00523"></a>00523 <span class="keyword">protected</span>:
252<a name="l00524"></a><a class="code" href="classitpp_1_1FIR__Fading__Generator.html#3c458ce594b4a8f5ec08ec6398d7e27e">00524</a>   <span class="keywordtype">int</span> <a class="code" href="classitpp_1_1FIR__Fading__Generator.html#3c458ce594b4a8f5ec08ec6398d7e27e" title="Size of FIR filter.">fir_length</a>;
253<a name="l00525"></a><a class="code" href="classitpp_1_1FIR__Fading__Generator.html#472cc85b224b60321166a1ee59f4ed44">00525</a>   <span class="keywordtype">int</span> <a class="code" href="classitpp_1_1FIR__Fading__Generator.html#472cc85b224b60321166a1ee59f4ed44">upsample_rate</a>;
254<a name="l00526"></a>00526
255<a name="l00527"></a><a class="code" href="classitpp_1_1FIR__Fading__Generator.html#18976f1b425e290230d629c48fba7098">00527</a>   <a class="code" href="classitpp_1_1MA__Filter.html" title="Moving Average Filter Base Class.This class implements a moving average (MA) filter...">MA_Filter&lt;std::complex&lt;double&gt;</a>, double, std::complex&lt;double&gt; &gt; <a class="code" href="classitpp_1_1FIR__Fading__Generator.html#18976f1b425e290230d629c48fba7098" title="Filter used for fading generation.">fir_filter</a>;
256<a name="l00528"></a><a class="code" href="classitpp_1_1FIR__Fading__Generator.html#332a0608a1a29362b5d69d9286afdced">00528</a>   cvec <a class="code" href="classitpp_1_1FIR__Fading__Generator.html#332a0608a1a29362b5d69d9286afdced" title="Left-overs from upsampling.">left_overs</a>;
257<a name="l00529"></a>00529
258<a name="l00540"></a>00540   vec <a class="code" href="classitpp_1_1FIR__Fading__Generator.html#4645a615b7e2ad51e5e497124f219769" title="Jakes spectrum filter.">Jakes_filter</a>(<span class="keywordtype">double</span> norm_dopp, <span class="keywordtype">int</span> order = 100);
259<a name="l00541"></a>00541 };
260<a name="l00542"></a>00542
261<a name="l00543"></a>00543
262<a name="l00568"></a><a class="code" href="classitpp_1_1IFFT__Fading__Generator.html">00568</a> <span class="keyword">class </span><a class="code" href="classitpp_1_1IFFT__Fading__Generator.html" title="IFFT type Fading generator class.">IFFT_Fading_Generator</a> : <span class="keyword">public</span> <a class="code" href="classitpp_1_1Correlated__Fading__Generator.html" title="Correlated (random) fading generator class.">Correlated_Fading_Generator</a>
263<a name="l00569"></a>00569 {
264<a name="l00570"></a>00570 <span class="keyword">public</span>:
265<a name="l00572"></a><a class="code" href="classitpp_1_1IFFT__Fading__Generator.html#9679ff0b6fc9bb098ba658f592d395f2">00572</a>   <a class="code" href="classitpp_1_1IFFT__Fading__Generator.html#9679ff0b6fc9bb098ba658f592d395f2" title="Default constructor.">IFFT_Fading_Generator</a>(<span class="keywordtype">double</span> norm_doppler) :
266<a name="l00573"></a>00573       <a class="code" href="classitpp_1_1Correlated__Fading__Generator.html" title="Correlated (random) fading generator class.">Correlated_Fading_Generator</a>(norm_doppler) {}
267<a name="l00575"></a><a class="code" href="classitpp_1_1IFFT__Fading__Generator.html#7c5e7d3f1cb441fcb60f9a1b3db17e57">00575</a>   <span class="keyword">virtual</span> <a class="code" href="classitpp_1_1IFFT__Fading__Generator.html#7c5e7d3f1cb441fcb60f9a1b3db17e57" title="Destructor.">~IFFT_Fading_Generator</a>() {}
268<a name="l00576"></a>00576
269<a name="l00578"></a><a class="code" href="classitpp_1_1IFFT__Fading__Generator.html#5b94a93bdc4ae15994bbf612cc291522">00578</a>   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1IFFT__Fading__Generator.html#5b94a93bdc4ae15994bbf612cc291522" title="Initialize the generator.">init</a>() { <a class="code" href="classitpp_1_1Fading__Generator.html#6fc31470215eda975bbefa15f9638504" title="signals if generator is initialized or not">init_flag</a> = <span class="keyword">true</span>; }
270<a name="l00579"></a>00579
271<a name="l00580"></a>00580   <span class="keyword">using</span> <a class="code" href="classitpp_1_1Correlated__Fading__Generator.html#9a8b6c1e3d2686a4d05ca558c9d14b6f" title="Generate no_samples values from the fading process.">Correlated_Fading_Generator::generate</a>;
272<a name="l00581"></a>00581
273<a name="l00583"></a>00583   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1IFFT__Fading__Generator.html#9bec71e8f32f443cf951e503c80a6dfa" title="Generate no_samples values from the fading process.">generate</a>(<span class="keywordtype">int</span> no_samples, cvec &amp;output);
274<a name="l00584"></a>00584
275<a name="l00585"></a>00585 <span class="keyword">protected</span>:
276<a name="l00587"></a>00587   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1IFFT__Fading__Generator.html#4bbc04863cad356ede14a2efa607f3dc" title="Generator for Jakes spectrum.">generate_Jakes</a>(<span class="keywordtype">int</span> no_samples, cvec &amp;output);
277<a name="l00588"></a>00588 };
278<a name="l00589"></a>00589
279<a name="l00590"></a>00590
280<a name="l00662"></a><a class="code" href="classitpp_1_1Channel__Specification.html">00662</a> <span class="keyword">class </span><a class="code" href="classitpp_1_1Channel__Specification.html" title="General specification of a time-domain multipath channel.">Channel_Specification</a>
281<a name="l00663"></a>00663 {
282<a name="l00664"></a>00664 <span class="keyword">public</span>:
283<a name="l00666"></a>00666   <a class="code" href="classitpp_1_1Channel__Specification.html#b9a5781414efa19966ec0acbfc3d17c5" title="Default constructor (power profile in dB, delay profile in seconds).">Channel_Specification</a>(<span class="keyword">const</span> vec &amp;avg_power_dB = <span class="stringliteral">"0"</span>, <span class="keyword">const</span> vec &amp;delay_prof = <span class="stringliteral">"0"</span>);
284<a name="l00668"></a>00668   <a class="code" href="classitpp_1_1Channel__Specification.html#b9a5781414efa19966ec0acbfc3d17c5" title="Default constructor (power profile in dB, delay profile in seconds).">Channel_Specification</a>(<span class="keyword">const</span> <a class="code" href="group__channels.html#gf1d6629952e915c9afe3913b726836ce" title="Predefined channel profiles. Includes LOS and Doppler spectrum settings.">CHANNEL_PROFILE</a> profile);
285<a name="l00670"></a><a class="code" href="classitpp_1_1Channel__Specification.html#46c6509230285326c0b934a04933baed">00670</a>   <span class="keyword">virtual</span> <a class="code" href="classitpp_1_1Channel__Specification.html#46c6509230285326c0b934a04933baed" title="Destructor.">~Channel_Specification</a>() {}
286<a name="l00671"></a>00671
287<a name="l00673"></a>00673   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Channel__Specification.html#aee129f18501f8e58e9589b71ca8878e" title="Set both average power profile in dB and power delay profile in seconds.">set_channel_profile</a>(<span class="keyword">const</span> vec &amp;avg_power_dB, <span class="keyword">const</span> vec &amp;delay_prof);
288<a name="l00675"></a>00675   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Channel__Specification.html#aee129f18501f8e58e9589b71ca8878e" title="Set both average power profile in dB and power delay profile in seconds.">set_channel_profile</a>(<span class="keyword">const</span> <a class="code" href="group__channels.html#gf1d6629952e915c9afe3913b726836ce" title="Predefined channel profiles. Includes LOS and Doppler spectrum settings.">CHANNEL_PROFILE</a> profile);
289<a name="l00676"></a>00676
290<a name="l00678"></a>00678   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Channel__Specification.html#1b464ccbe023118ef1e06b55c00dbd88" title="Set doppler spectrum for each tap in the channel profile.">set_doppler_spectrum</a>(<a class="code" href="group__channels.html#gfd030225d513c962191cbce565337fd8" title="Predefined Doppler spectra.">DOPPLER_SPECTRUM</a> *tap_spectrum);
291<a name="l00680"></a>00680   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Channel__Specification.html#1b464ccbe023118ef1e06b55c00dbd88" title="Set doppler spectrum for each tap in the channel profile.">set_doppler_spectrum</a>(<span class="keywordtype">int</span> tap_number, <a class="code" href="group__channels.html#gfd030225d513c962191cbce565337fd8" title="Predefined Doppler spectra.">DOPPLER_SPECTRUM</a> tap_spectrum);
292<a name="l00681"></a>00681
293<a name="l00683"></a>00683   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Channel__Specification.html#9c7fa7456186061886307c58212732cd" title="Set LOS (Rice) components for tap tap_number.">set_LOS</a>(<span class="keywordtype">int</span> tap_number, <span class="keywordtype">double</span> relative_power, <span class="keywordtype">double</span> relative_doppler = 0.7);
294<a name="l00685"></a>00685   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Channel__Specification.html#9c7fa7456186061886307c58212732cd" title="Set LOS (Rice) components for tap tap_number.">set_LOS</a>(<span class="keyword">const</span> vec&amp; relative_power, <span class="keyword">const</span> vec&amp; relative_doppler = <span class="stringliteral">""</span>);
295<a name="l00686"></a>00686
296<a name="l00688"></a>00688   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1Channel__Specification.html#7a047931e794c17c1167118e12434783" title="Get both average power profile in dB and power delay profile in seconds.">get_channel_profile</a>(vec &amp;avg_power_dB, vec &amp;delay_prof) <span class="keyword">const</span>;
297<a name="l00690"></a><a class="code" href="classitpp_1_1Channel__Specification.html#75922675e704095af84d5d8eddb962ea">00690</a>   vec <a class="code" href="classitpp_1_1Channel__Specification.html#75922675e704095af84d5d8eddb962ea" title="Return power profile in dB.">get_avg_power_dB</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1Channel__Specification.html#90a11c5b796609f5e9e5d34a472c0670" title="Power profile in dB.">a_prof_dB</a>; }
298<a name="l00692"></a><a class="code" href="classitpp_1_1Channel__Specification.html#1fec5a748ce0abeed134a3ae83d2a093">00692</a>   vec <a class="code" href="classitpp_1_1Channel__Specification.html#1fec5a748ce0abeed134a3ae83d2a093" title="Return delay profile in seconds.">get_delay_prof</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1Channel__Specification.html#e1576e671665a3974e80a9e2d63c9621" title="Delay profile in seconds.">d_prof</a>; }
299<a name="l00694"></a><a class="code" href="classitpp_1_1Channel__Specification.html#2150f702431a1041c9908faad8612875">00694</a>   <a class="code" href="classitpp_1_1Array.html">Array&lt;DOPPLER_SPECTRUM&gt;</a> <a class="code" href="classitpp_1_1Channel__Specification.html#2150f702431a1041c9908faad8612875" title="Get doppler spectrum for tap index.">get_doppler_spectrum</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1Channel__Specification.html#7e3cbffe1805c44fcdc4042408bbc3ad" title="Doppler spectrum for each tap.">tap_doppler_spectrum</a>; }
300<a name="l00696"></a>00696   <a class="code" href="group__channels.html#gfd030225d513c962191cbce565337fd8" title="Predefined Doppler spectra.">DOPPLER_SPECTRUM</a> <a class="code" href="classitpp_1_1Channel__Specification.html#2150f702431a1041c9908faad8612875" title="Get doppler spectrum for tap index.">get_doppler_spectrum</a>(<span class="keywordtype">int</span> index) <span class="keyword">const</span>;
301<a name="l00698"></a><a class="code" href="classitpp_1_1Channel__Specification.html#4bb658fa0670726e9cc54e7e636543b8">00698</a>   vec <a class="code" href="classitpp_1_1Channel__Specification.html#4bb658fa0670726e9cc54e7e636543b8" title="Get relative power (Rice factor) for each tap.">get_LOS_power</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1Channel__Specification.html#712dc19cfab5eff5a18f1eccbf779d96" title="Relative power for each Rice component.">los_power</a>; }
302<a name="l00700"></a><a class="code" href="classitpp_1_1Channel__Specification.html#fd6384d45fe7a53ecda6dc2571f53a31">00700</a>   vec <a class="code" href="classitpp_1_1Channel__Specification.html#fd6384d45fe7a53ecda6dc2571f53a31" title="Get relative Doppler for each tap.">get_LOS_doppler</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1Channel__Specification.html#03786b11712d63f7ad92ee5d1fb889b1" title="Relative Rice Doppler for each Rice component.">los_dopp</a>; }
303<a name="l00702"></a><a class="code" href="classitpp_1_1Channel__Specification.html#3171a93ad05da87853080a6c927225a7">00702</a>   <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1Channel__Specification.html#3171a93ad05da87853080a6c927225a7" title="Get relative power (Rice factor) for tap tap_number.">get_LOS_power</a>(<span class="keywordtype">int</span> tap_number)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1Channel__Specification.html#712dc19cfab5eff5a18f1eccbf779d96" title="Relative power for each Rice component.">los_power</a>(tap_number); }
304<a name="l00704"></a><a class="code" href="classitpp_1_1Channel__Specification.html#26908e0969c61126b8e22bb5e102c10d">00704</a>   <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1Channel__Specification.html#26908e0969c61126b8e22bb5e102c10d" title="Get relative Doppler for tap tap_number.">get_LOS_doppler</a>(<span class="keywordtype">int</span> tap_number)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1Channel__Specification.html#03786b11712d63f7ad92ee5d1fb889b1" title="Relative Rice Doppler for each Rice component.">los_dopp</a>(tap_number); }
305<a name="l00705"></a>00705
306<a name="l00707"></a><a class="code" href="classitpp_1_1Channel__Specification.html#2a00f1a41c30fa6edbc51ca1954bf992">00707</a>   <span class="keywordtype">int</span> <a class="code" href="classitpp_1_1Channel__Specification.html#2a00f1a41c30fa6edbc51ca1954bf992" title="Return the number of channel taps.">taps</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1Channel__Specification.html#236527fdc764d214926b938ef471dcec" title="Number of taps.">N_taps</a>; }
307<a name="l00708"></a>00708
308<a name="l00710"></a>00710   <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1Channel__Specification.html#e5828ad93881889b9c8971af5e84232d" title="Calculate mean excess delay in samples.">calc_mean_excess_delay</a>() <span class="keyword">const</span>;
309<a name="l00712"></a>00712   <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1Channel__Specification.html#c0dca33eaeab1994c8a44e4043912b62" title="Calculate RMS delay spread in samples.">calc_rms_delay_spread</a>() <span class="keyword">const</span>;
310<a name="l00713"></a>00713
311<a name="l00714"></a>00714 <span class="keyword">protected</span>:
312<a name="l00715"></a><a class="code" href="classitpp_1_1Channel__Specification.html#90a11c5b796609f5e9e5d34a472c0670">00715</a>   vec <a class="code" href="classitpp_1_1Channel__Specification.html#90a11c5b796609f5e9e5d34a472c0670" title="Power profile in dB.">a_prof_dB</a>;
313<a name="l00716"></a><a class="code" href="classitpp_1_1Channel__Specification.html#e1576e671665a3974e80a9e2d63c9621">00716</a>   vec <a class="code" href="classitpp_1_1Channel__Specification.html#e1576e671665a3974e80a9e2d63c9621" title="Delay profile in seconds.">d_prof</a>;
314<a name="l00717"></a><a class="code" href="classitpp_1_1Channel__Specification.html#7e3cbffe1805c44fcdc4042408bbc3ad">00717</a>   <a class="code" href="classitpp_1_1Array.html">Array&lt;DOPPLER_SPECTRUM&gt;</a> <a class="code" href="classitpp_1_1Channel__Specification.html#7e3cbffe1805c44fcdc4042408bbc3ad" title="Doppler spectrum for each tap.">tap_doppler_spectrum</a>;
315<a name="l00718"></a><a class="code" href="classitpp_1_1Channel__Specification.html#236527fdc764d214926b938ef471dcec">00718</a>   <span class="keywordtype">int</span> <a class="code" href="classitpp_1_1Channel__Specification.html#236527fdc764d214926b938ef471dcec" title="Number of taps.">N_taps</a>;
316<a name="l00719"></a><a class="code" href="classitpp_1_1Channel__Specification.html#712dc19cfab5eff5a18f1eccbf779d96">00719</a>   vec <a class="code" href="classitpp_1_1Channel__Specification.html#712dc19cfab5eff5a18f1eccbf779d96" title="Relative power for each Rice component.">los_power</a>;
317<a name="l00720"></a><a class="code" href="classitpp_1_1Channel__Specification.html#03786b11712d63f7ad92ee5d1fb889b1">00720</a>   vec <a class="code" href="classitpp_1_1Channel__Specification.html#03786b11712d63f7ad92ee5d1fb889b1" title="Relative Rice Doppler for each Rice component.">los_dopp</a>;
318<a name="l00721"></a>00721 };
319<a name="l00722"></a>00722
320<a name="l00723"></a>00723
321<a name="l00823"></a><a class="code" href="classitpp_1_1TDL__Channel.html">00823</a> <span class="keyword">class </span><a class="code" href="classitpp_1_1TDL__Channel.html" title="Tapped Delay Line (TDL) channel model.">TDL_Channel</a>
322<a name="l00824"></a>00824 {
323<a name="l00825"></a>00825 <span class="keyword">public</span>:
324<a name="l00827"></a>00827   <a class="code" href="classitpp_1_1TDL__Channel.html#6953b926d31092c1f7a1a4edf3af552f" title="Default constructor.">TDL_Channel</a>(<span class="keyword">const</span> vec &amp;avg_power_dB = <span class="stringliteral">"0"</span>, <span class="keyword">const</span> ivec &amp;delay_prof = <span class="stringliteral">"0"</span>);
325<a name="l00829"></a>00829   <a class="code" href="classitpp_1_1TDL__Channel.html#6953b926d31092c1f7a1a4edf3af552f" title="Default constructor.">TDL_Channel</a>(<span class="keyword">const</span> <a class="code" href="classitpp_1_1Channel__Specification.html" title="General specification of a time-domain multipath channel.">Channel_Specification</a> &amp;channel_spec, <span class="keywordtype">double</span> sampling_time);
326<a name="l00831"></a>00831   <span class="keyword">virtual</span> <a class="code" href="classitpp_1_1TDL__Channel.html#71a960187912ab176c7d82e0582b351c" title="Destructor.">~TDL_Channel</a>();
327<a name="l00832"></a>00832
328<a name="l00834"></a>00834   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#2c797d31786df97d2cb7b8ae1b99344b" title="Set both average power profile in dB and power delay profile in samples.">set_channel_profile</a>(<span class="keyword">const</span> vec &amp;avg_power_dB, <span class="keyword">const</span> ivec &amp;delay_prof);
329<a name="l00836"></a>00836   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#f05d94b37173d1bce7dc22e68b3ce4a7" title="Set channel profile to uniform with no_taps taps.">set_channel_profile_uniform</a>(<span class="keywordtype">int</span> no_taps);
330<a name="l00838"></a>00838   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#b29121e3d449fd5e8bfd9ac04ed8d88c" title="Set channel profile to exponential with no_taps taps.">set_channel_profile_exponential</a>(<span class="keywordtype">int</span> no_taps);
331<a name="l00840"></a>00840   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#2c797d31786df97d2cb7b8ae1b99344b" title="Set both average power profile in dB and power delay profile in samples.">set_channel_profile</a>(<span class="keyword">const</span> <a class="code" href="classitpp_1_1Channel__Specification.html" title="General specification of a time-domain multipath channel.">Channel_Specification</a> &amp;channel_spec, <span class="keywordtype">double</span> sampling_time);
332<a name="l00841"></a>00841
333<a name="l00843"></a>00843   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#2a198abb6acca0ac337b3943e535a823" title="Set the fading generation method to method.">set_correlated_method</a>(<a class="code" href="group__channels.html#g0875516a69d533c89b49a43c2b1b987d" title="Correlated fading generation methods: Rice_MEDS (default), IFFT or FIR.">CORRELATED_METHOD</a> <a class="code" href="classitpp_1_1TDL__Channel.html#31dd874ddb75acb467ec68160e19a1b6" title="Correlated fading generation method: Rice_MEDS (default), IFFT or FIR.">method</a>);
334<a name="l00845"></a>00845   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#63ffed6eafdaa7f1f197e1284f98e475" title="Set fading type to one of Independent, Static or Correlated.">set_fading_type</a>(<a class="code" href="group__channels.html#gf331f50064dab0a357caba2a0cb02b76" title="Fading generator type: Independent (default), Static or Correlated.">FADING_TYPE</a> <a class="code" href="classitpp_1_1TDL__Channel.html#8f3f4349e8a8a33ce5d9709779f5a405" title="Fading type: Independent (default), Static or Correlated.">fading_type</a>);
335<a name="l00846"></a>00846
336<a name="l00848"></a>00848   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#8502b1dd0dfb0d7b438087739ab3b92d" title="Set normalized Doppler rate. A Correlated fading type will be used.">set_norm_doppler</a>(<span class="keywordtype">double</span> norm_doppler);
337<a name="l00849"></a>00849
338<a name="l00851"></a>00851   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#4e9ef69abb97dd05a2ec406d5012dfef" title="Set LOS parameters for each tap. LOS Doppler will be set to 0.7 by default.">set_LOS</a>(<span class="keyword">const</span> vec&amp; relative_power, <span class="keyword">const</span> vec&amp; relative_doppler = <span class="stringliteral">""</span>);
339<a name="l00853"></a>00853   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#573a0608043a5db81951bbb56e58051a" title="Set LOS power for each tap. LOS Doppler will be set to 0.7 by default.">set_LOS_power</a>(<span class="keyword">const</span> vec&amp; relative_power);
340<a name="l00855"></a>00855   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#78372f81d61551c6e9ebf9810debcad0" title="Set LOS doppler for each tap. A Correlated fading type will be used.">set_LOS_doppler</a>(<span class="keyword">const</span> vec&amp; relative_doppler);
341<a name="l00856"></a>00856
342<a name="l00858"></a>00858   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#e79f49ef36b70ec9cb80f5b3cd55ca0c" title="Set doppler spectrum for each tap in the channel profile. Rice_MEDS method will be...">set_doppler_spectrum</a>(<span class="keyword">const</span> <a class="code" href="group__channels.html#gfd030225d513c962191cbce565337fd8" title="Predefined Doppler spectra.">DOPPLER_SPECTRUM</a> *tap_spectrum);
343<a name="l00860"></a>00860   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#e79f49ef36b70ec9cb80f5b3cd55ca0c" title="Set doppler spectrum for each tap in the channel profile. Rice_MEDS method will be...">set_doppler_spectrum</a>(<span class="keywordtype">int</span> tap_number, <a class="code" href="group__channels.html#gfd030225d513c962191cbce565337fd8" title="Predefined Doppler spectra.">DOPPLER_SPECTRUM</a> tap_spectrum);
344<a name="l00862"></a>00862   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#5fc8901f632abc5806da9c3819d1be7d" title="Set number of sine frequencies. Rice_MEDS method will be used.">set_no_frequencies</a>(<span class="keywordtype">int</span> no_freq);
345<a name="l00863"></a>00863
346<a name="l00865"></a>00865   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#d57abed39565c38b3a990db4fc4e0837" title="Set fading generators&amp;#39; time offset in samples. A Correlated fading type will...">set_time_offset</a>(<span class="keywordtype">int</span> offset);
347<a name="l00867"></a>00867   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#6dfe0071b9de039523307f580683ff89" title="Shift fading generators&amp;#39; time offset. A Correlated fading type will be used.">shift_time_offset</a>(<span class="keywordtype">int</span> no_samples);
348<a name="l00868"></a>00868
349<a name="l00870"></a>00870   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#a141e865d9059c954c0750f2f090a21e" title="Set fading generator filter length. FIR method will be used.">set_filter_length</a>(<span class="keywordtype">int</span> <a class="code" href="classitpp_1_1TDL__Channel.html#de665383426f68ba54be93be024a0842" title="Filter length of FIR fading generator.">filter_length</a>);
350<a name="l00871"></a>00871
351<a name="l00872"></a>00872
352<a name="l00874"></a><a class="code" href="classitpp_1_1TDL__Channel.html#172fbe5d69b75fc950af0e5a9c5c3e39">00874</a>   <span class="keywordtype">int</span> <a class="code" href="classitpp_1_1TDL__Channel.html#172fbe5d69b75fc950af0e5a9c5c3e39" title="Return the number of channel taps.">taps</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1TDL__Channel.html#414b894875b8ee8f2d2f849e992d9257" title="Number of taps.">N_taps</a>; }
353<a name="l00875"></a>00875
354<a name="l00877"></a>00877   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#d166229e1b0bbfa31c13d9ec6ad2d8bc" title="Get both average power profile in dB and power delay profile in samples.">get_channel_profile</a>(vec &amp;avg_power_dB, ivec &amp;delay_prof) <span class="keyword">const</span>;
355<a name="l00879"></a>00879   vec <a class="code" href="classitpp_1_1TDL__Channel.html#ff9a7d23df369d4da63ad1aa6712b875" title="Return power profile in dB.">get_avg_power_dB</a>() <span class="keyword">const</span>;
356<a name="l00881"></a><a class="code" href="classitpp_1_1TDL__Channel.html#9f43d8a1cf923b1713b36106c099e5fb">00881</a>   ivec <a class="code" href="classitpp_1_1TDL__Channel.html#9f43d8a1cf923b1713b36106c099e5fb" title="Return delay profile in samples.">get_delay_prof</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1TDL__Channel.html#8403c04165821ec65d6ac0a4d6a39b6d" title="Delay in samples for each tap.">d_prof</a>; }
357<a name="l00882"></a>00882
358<a name="l00884"></a><a class="code" href="classitpp_1_1TDL__Channel.html#33f676f0c4640645bab67fb26249fded">00884</a>   <a class="code" href="group__channels.html#g0875516a69d533c89b49a43c2b1b987d" title="Correlated fading generation methods: Rice_MEDS (default), IFFT or FIR.">CORRELATED_METHOD</a> <a class="code" href="classitpp_1_1TDL__Channel.html#33f676f0c4640645bab67fb26249fded" title="Return fading generation method.">get_correlated_method</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> method; }
359<a name="l00886"></a><a class="code" href="classitpp_1_1TDL__Channel.html#d0b9943f587231c159063f59f4a1cdeb">00886</a>   <a class="code" href="group__channels.html#gf331f50064dab0a357caba2a0cb02b76" title="Fading generator type: Independent (default), Static or Correlated.">FADING_TYPE</a> <a class="code" href="classitpp_1_1TDL__Channel.html#d0b9943f587231c159063f59f4a1cdeb" title="Return fading type.">get_fading_type</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> fading_type; }
360<a name="l00887"></a>00887
361<a name="l00889"></a><a class="code" href="classitpp_1_1TDL__Channel.html#6cda5bb12b28b7628fe5f44555d25457">00889</a>   <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1TDL__Channel.html#6cda5bb12b28b7628fe5f44555d25457" title="Return normalized doppler rate.">get_norm_doppler</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1TDL__Channel.html#3b243e032ecbb40b1418b6a2b6d9e451" title="Normalized Doppler of the correlated fading.">n_dopp</a>; }
362<a name="l00890"></a>00890
363<a name="l00892"></a><a class="code" href="classitpp_1_1TDL__Channel.html#534ebadba2ad8e8658e1fe23a234cc38">00892</a>   vec <a class="code" href="classitpp_1_1TDL__Channel.html#534ebadba2ad8e8658e1fe23a234cc38" title="Get relative power (Rice factor) for each tap.">get_LOS_power</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1TDL__Channel.html#59a3fbbe5581d4b59efa2e0592bc8db0" title="Relative power for each Rice component.">los_power</a>; }
364<a name="l00894"></a><a class="code" href="classitpp_1_1TDL__Channel.html#c7ea04399928b644d9d16a7fd35a1d20">00894</a>   vec <a class="code" href="classitpp_1_1TDL__Channel.html#c7ea04399928b644d9d16a7fd35a1d20" title="Get relative Doppler (to the maximum Doppler) for each tap.">get_LOS_doppler</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1TDL__Channel.html#c2c2867660d28071ac8bcfdcdacda02a" title="Relative LOS Doppler for each Rice component.">los_dopp</a>; }
365<a name="l00896"></a><a class="code" href="classitpp_1_1TDL__Channel.html#b2d62a3bb11ad2aa42b0386f4c9b8fb7">00896</a>   <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1TDL__Channel.html#b2d62a3bb11ad2aa42b0386f4c9b8fb7" title="Get relative power (Rice factor) for tap tap_number.">get_LOS_power</a>(<span class="keywordtype">int</span> tap_number)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1TDL__Channel.html#59a3fbbe5581d4b59efa2e0592bc8db0" title="Relative power for each Rice component.">los_power</a>(tap_number); }
366<a name="l00898"></a><a class="code" href="classitpp_1_1TDL__Channel.html#beb2f3bc95cc083c809e470502dc4224">00898</a>   <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1TDL__Channel.html#beb2f3bc95cc083c809e470502dc4224" title="Get relative Doppler (to the maximum Doppler) for tap tap_number.">get_LOS_doppler</a>(<span class="keywordtype">int</span> tap_number)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1TDL__Channel.html#c2c2867660d28071ac8bcfdcdacda02a" title="Relative LOS Doppler for each Rice component.">los_dopp</a>(tap_number); }
367<a name="l00899"></a>00899
368<a name="l00901"></a><a class="code" href="classitpp_1_1TDL__Channel.html#e3465144be99bfd8878206307c8bba95">00901</a>   <span class="keywordtype">int</span> <a class="code" href="classitpp_1_1TDL__Channel.html#e3465144be99bfd8878206307c8bba95" title="Get the minimum number of frequencies used in Rice MEDS fading generator.">get_no_frequencies</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1TDL__Channel.html#a62f9f49797ee458af8fe71f7e2ad752" title="Number of sine frequencies in the Rice MEDS fading generator.">nrof_freq</a>; }
369<a name="l00902"></a>00902
370<a name="l00904"></a>00904   <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1TDL__Channel.html#f9847cf5ec7f8f2d4a75292bb0c98610" title="Get fading generators&amp;#39; time ofset.">get_time_offset</a>() <span class="keyword">const</span>;
371<a name="l00905"></a>00905
372<a name="l00907"></a>00907   <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1TDL__Channel.html#25709163fd22c7e53b0501443f16bfd2" title="Calculate mean excess delay in samples.">calc_mean_excess_delay</a>() <span class="keyword">const</span>;
373<a name="l00909"></a>00909   <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1TDL__Channel.html#31ea52da06cbc07b3958356bce3b1baa" title="Calculate RMS delay spread in samples.">calc_rms_delay_spread</a>() <span class="keyword">const</span>;
374<a name="l00910"></a>00910
375<a name="l00912"></a>00912   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#2e70204dcf3fbd26ca9911575a4aa858" title="Initialize all fading generators. Automatically invoked in generate() or filter()...">init</a>();
376<a name="l00913"></a>00913
377<a name="l00915"></a>00915   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#e8892db45e45f63c1fd228baf94b0222" title="Generate no_samples values of the channel.">generate</a>(<span class="keywordtype">int</span> no_samples, <a class="code" href="classitpp_1_1Array.html">Array&lt;cvec&gt;</a> &amp;channel_coeff);
378<a name="l00917"></a>00917   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#e8892db45e45f63c1fd228baf94b0222" title="Generate no_samples values of the channel.">generate</a>(<span class="keywordtype">int</span> no_samples, cmat &amp;channel_coeff);
379<a name="l00918"></a>00918
380<a name="l00920"></a>00920   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#5321f2eef7983f8847b1c99d3807616d" title="Filter the input with the known channel values channel_coeff (e.g. from the generate...">filter_known_channel</a>(<span class="keyword">const</span> cvec &amp;input, cvec &amp;output, <span class="keyword">const</span> <a class="code" href="classitpp_1_1Array.html">Array&lt;cvec&gt;</a> &amp;channel_coeff);
381<a name="l00922"></a>00922   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#5321f2eef7983f8847b1c99d3807616d" title="Filter the input with the known channel values channel_coeff (e.g. from the generate...">filter_known_channel</a>(<span class="keyword">const</span> cvec &amp;input, cvec &amp;output, <span class="keyword">const</span> cmat &amp;channel_coeff);
382<a name="l00923"></a>00923
383<a name="l00925"></a>00925   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#fa6ec93d1d4911a9a4b9550977db4d02" title="Generate channel coefficients and filter the input. Return output and channel coefficients...">filter</a>(<span class="keyword">const</span> cvec &amp;input, cvec &amp;output, <a class="code" href="classitpp_1_1Array.html">Array&lt;cvec&gt;</a> &amp;channel_coeff);
384<a name="l00927"></a>00927   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#fa6ec93d1d4911a9a4b9550977db4d02" title="Generate channel coefficients and filter the input. Return output and channel coefficients...">filter</a>(<span class="keyword">const</span> cvec &amp;input, cvec &amp;output, cmat &amp;channel_coeff);
385<a name="l00929"></a>00929   cvec <a class="code" href="classitpp_1_1TDL__Channel.html#fa6ec93d1d4911a9a4b9550977db4d02" title="Generate channel coefficients and filter the input. Return output and channel coefficients...">filter</a>(<span class="keyword">const</span> cvec &amp;input, <a class="code" href="classitpp_1_1Array.html">Array&lt;cvec&gt;</a> &amp;channel_coeff);
386<a name="l00931"></a>00931   cvec <a class="code" href="classitpp_1_1TDL__Channel.html#fa6ec93d1d4911a9a4b9550977db4d02" title="Generate channel coefficients and filter the input. Return output and channel coefficients...">filter</a>(<span class="keyword">const</span> cvec &amp;input, cmat &amp;channel_coeff);
387<a name="l00933"></a>00933   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#fa6ec93d1d4911a9a4b9550977db4d02" title="Generate channel coefficients and filter the input. Return output and channel coefficients...">filter</a>(<span class="keyword">const</span> cvec &amp;input, cvec &amp;output);
388<a name="l00935"></a>00935   cvec <a class="code" href="classitpp_1_1TDL__Channel.html#fa6ec93d1d4911a9a4b9550977db4d02" title="Generate channel coefficients and filter the input. Return output and channel coefficients...">filter</a>(<span class="keyword">const</span> cvec &amp;input);
389<a name="l00936"></a>00936
390<a name="l00938"></a>00938   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#f179218475c2fbd7bbaf7eb80fbf7db8" title="Generate channel coefficients and filter the input. Return output and channel coefficients...">operator()</a>(<span class="keyword">const</span> cvec &amp;input, cvec &amp;output, <a class="code" href="classitpp_1_1Array.html">Array&lt;cvec&gt;</a> &amp;channel_coeff);
391<a name="l00940"></a>00940   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#f179218475c2fbd7bbaf7eb80fbf7db8" title="Generate channel coefficients and filter the input. Return output and channel coefficients...">operator()</a>(<span class="keyword">const</span> cvec &amp;input, cvec &amp;output, cmat &amp;channel_coeff);
392<a name="l00942"></a>00942   cvec <a class="code" href="classitpp_1_1TDL__Channel.html#f179218475c2fbd7bbaf7eb80fbf7db8" title="Generate channel coefficients and filter the input. Return output and channel coefficients...">operator()</a>(<span class="keyword">const</span> cvec &amp;input, <a class="code" href="classitpp_1_1Array.html">Array&lt;cvec&gt;</a> &amp;channel_coeff);
393<a name="l00944"></a>00944   cvec <a class="code" href="classitpp_1_1TDL__Channel.html#f179218475c2fbd7bbaf7eb80fbf7db8" title="Generate channel coefficients and filter the input. Return output and channel coefficients...">operator()</a>(<span class="keyword">const</span> cvec &amp;input, cmat &amp;channel_coeff);
394<a name="l00946"></a>00946   cvec <a class="code" href="classitpp_1_1TDL__Channel.html#f179218475c2fbd7bbaf7eb80fbf7db8" title="Generate channel coefficients and filter the input. Return output and channel coefficients...">operator()</a>(<span class="keyword">const</span> cvec &amp;input);
395<a name="l00947"></a>00947
396<a name="l00949"></a>00949   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#ffd14db9b6d865d8e5f0ad24f04055fc" title="Calculate impulse-response on the supplied channel coefficients (produced by the...">calc_impulse_response</a>(<span class="keyword">const</span> <a class="code" href="classitpp_1_1Array.html">Array&lt;cvec&gt;</a> &amp;channel_coeff, <a class="code" href="classitpp_1_1Array.html">Array&lt;cvec&gt;</a> &amp;impulse_response);
397<a name="l00950"></a>00950
398<a name="l00952"></a>00952   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#30e70291ca0531eac4c5114316b66de3" title="Calculate frequency-response on the supplied channel coefficients (produced by the...">calc_frequency_response</a>(<span class="keyword">const</span> <a class="code" href="classitpp_1_1Array.html">Array&lt;cvec&gt;</a> &amp;channel_coeff, <a class="code" href="classitpp_1_1Array.html">Array&lt;cvec&gt;</a> &amp;frequency_response, <span class="keyword">const</span> <span class="keywordtype">int</span> fft_size);
399<a name="l00954"></a>00954   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#30e70291ca0531eac4c5114316b66de3" title="Calculate frequency-response on the supplied channel coefficients (produced by the...">calc_frequency_response</a>(<span class="keyword">const</span> cmat &amp;channel_coeff, cmat &amp;frequency_response, <span class="keyword">const</span> <span class="keywordtype">int</span> fft_size);
400<a name="l00956"></a><a class="code" href="classitpp_1_1TDL__Channel.html#316d132618499ce152a6a42bb8003228">00956</a>   <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1TDL__Channel.html#316d132618499ce152a6a42bb8003228" title="Return channel sampling time (used for discretization).">get_sampling_time</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classitpp_1_1TDL__Channel.html#c38f959613ae41b79b8cdd1ab587df43" title="Sampling time of discretization.">discrete_Ts</a>; }
401<a name="l00957"></a>00957
402<a name="l00958"></a>00958 <span class="keyword">protected</span>:
403<a name="l00959"></a><a class="code" href="classitpp_1_1TDL__Channel.html#797720174bd4b07089f09fff05243d85">00959</a>   <span class="keywordtype">bool</span> <a class="code" href="classitpp_1_1TDL__Channel.html#797720174bd4b07089f09fff05243d85" title="Channel ready to produce data.">init_flag</a>;
404<a name="l00960"></a><a class="code" href="classitpp_1_1TDL__Channel.html#111d9ae12862a69fcf0f1ad388d1b4bf">00960</a>   vec <a class="code" href="classitpp_1_1TDL__Channel.html#111d9ae12862a69fcf0f1ad388d1b4bf" title="Average amplitude of each tap.">a_prof</a>;
405<a name="l00961"></a><a class="code" href="classitpp_1_1TDL__Channel.html#8403c04165821ec65d6ac0a4d6a39b6d">00961</a>   ivec <a class="code" href="classitpp_1_1TDL__Channel.html#8403c04165821ec65d6ac0a4d6a39b6d" title="Delay in samples for each tap.">d_prof</a>;
406<a name="l00962"></a><a class="code" href="classitpp_1_1TDL__Channel.html#59a3fbbe5581d4b59efa2e0592bc8db0">00962</a>   vec <a class="code" href="classitpp_1_1TDL__Channel.html#59a3fbbe5581d4b59efa2e0592bc8db0" title="Relative power for each Rice component.">los_power</a>;
407<a name="l00963"></a><a class="code" href="classitpp_1_1TDL__Channel.html#c2c2867660d28071ac8bcfdcdacda02a">00963</a>   vec <a class="code" href="classitpp_1_1TDL__Channel.html#c2c2867660d28071ac8bcfdcdacda02a" title="Relative LOS Doppler for each Rice component.">los_dopp</a>;
408<a name="l00964"></a><a class="code" href="classitpp_1_1TDL__Channel.html#414b894875b8ee8f2d2f849e992d9257">00964</a>   <span class="keywordtype">int</span> <a class="code" href="classitpp_1_1TDL__Channel.html#414b894875b8ee8f2d2f849e992d9257" title="Number of taps.">N_taps</a>;
409<a name="l00965"></a><a class="code" href="classitpp_1_1TDL__Channel.html#3b243e032ecbb40b1418b6a2b6d9e451">00965</a>   <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1TDL__Channel.html#3b243e032ecbb40b1418b6a2b6d9e451" title="Normalized Doppler of the correlated fading.">n_dopp</a>;
410<a name="l00966"></a><a class="code" href="classitpp_1_1TDL__Channel.html#8f3f4349e8a8a33ce5d9709779f5a405">00966</a>   <a class="code" href="group__channels.html#gf331f50064dab0a357caba2a0cb02b76" title="Fading generator type: Independent (default), Static or Correlated.">FADING_TYPE</a> fading_type;
411<a name="l00967"></a><a class="code" href="classitpp_1_1TDL__Channel.html#31dd874ddb75acb467ec68160e19a1b6">00967</a>   <a class="code" href="group__channels.html#g0875516a69d533c89b49a43c2b1b987d" title="Correlated fading generation methods: Rice_MEDS (default), IFFT or FIR.">CORRELATED_METHOD</a> method;
412<a name="l00968"></a><a class="code" href="classitpp_1_1TDL__Channel.html#325c4b7315bfdb61fb4cc35994539e91">00968</a>   <a class="code" href="classitpp_1_1Array.html">Array&lt;DOPPLER_SPECTRUM&gt;</a> <a class="code" href="classitpp_1_1TDL__Channel.html#325c4b7315bfdb61fb4cc35994539e91" title="Doppler spectrum for each tap.">tap_doppler_spectrum</a>;
413<a name="l00969"></a><a class="code" href="classitpp_1_1TDL__Channel.html#b4b33014df2202a54ddd80d55b455c07">00969</a>   <a class="code" href="classitpp_1_1Array.html">Array&lt;Fading_Generator *&gt;</a> <a class="code" href="classitpp_1_1TDL__Channel.html#b4b33014df2202a54ddd80d55b455c07" title="Fading generators for each tap.">fading_gen</a>;
414<a name="l00970"></a><a class="code" href="classitpp_1_1TDL__Channel.html#de665383426f68ba54be93be024a0842">00970</a>   <span class="keywordtype">int</span> filter_length;
415<a name="l00971"></a><a class="code" href="classitpp_1_1TDL__Channel.html#a62f9f49797ee458af8fe71f7e2ad752">00971</a>   <span class="keywordtype">int</span> <a class="code" href="classitpp_1_1TDL__Channel.html#a62f9f49797ee458af8fe71f7e2ad752" title="Number of sine frequencies in the Rice MEDS fading generator.">nrof_freq</a>;
416<a name="l00972"></a><a class="code" href="classitpp_1_1TDL__Channel.html#c38f959613ae41b79b8cdd1ab587df43">00972</a>   <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1TDL__Channel.html#c38f959613ae41b79b8cdd1ab587df43" title="Sampling time of discretization.">discrete_Ts</a>;
417<a name="l00973"></a>00973
418<a name="l00980"></a>00980   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1TDL__Channel.html#36c0e2b1342e7260055918bc40f90b70" title="Discretize the delay profile with discrete_Ts (Ts). All taps within ((i-0.5)Ts,(i+0...">discretize</a>(<span class="keyword">const</span> vec &amp;delay_profile);
419<a name="l00981"></a>00981 };
420<a name="l00982"></a>00982
421<a name="l00983"></a>00983
422<a name="l00984"></a>00984
423<a name="l01003"></a><a class="code" href="classitpp_1_1BSC.html">01003</a> <span class="keyword">class </span><a class="code" href="classitpp_1_1BSC.html" title="A Binary Symetric Channel with crossover probability p.">BSC</a>
424<a name="l01004"></a>01004 {
425<a name="l01005"></a>01005 <span class="keyword">public</span>:
426<a name="l01007"></a><a class="code" href="classitpp_1_1BSC.html#61e6df95aca3e3f2635241008c3a3e76">01007</a>   <a class="code" href="classitpp_1_1BSC.html#61e6df95aca3e3f2635241008c3a3e76" title="Class constructor. Sets the error probability to p.">BSC</a>(<span class="keywordtype">double</span> in_p = 0.0) : u(0.0, 1.0) { p = in_p; };
427<a name="l01009"></a><a class="code" href="classitpp_1_1BSC.html#3b3b56bdc8a33f2f4c6c1db3575fd15f">01009</a>   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1BSC.html#3b3b56bdc8a33f2f4c6c1db3575fd15f" title="Set crossover (bit error) probability.">set_prob</a>(<span class="keywordtype">double</span> in_p) { p = in_p; };
428<a name="l01011"></a><a class="code" href="classitpp_1_1BSC.html#c51f64316dfba97560a689a63d9e4ff9">01011</a>   <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1BSC.html#c51f64316dfba97560a689a63d9e4ff9" title="Get crossover (bit error) probability.">get_prob</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> p; };
429<a name="l01013"></a>01013   bvec <a class="code" href="classitpp_1_1BSC.html#8c6a2209d88e5f39275a6ac2a56bd19e" title="Feed input through the BSC channel.">operator()</a>(<span class="keyword">const</span> bvec &amp;input);
430<a name="l01014"></a>01014 <span class="keyword">private</span>:
431<a name="l01015"></a>01015   <a class="code" href="classitpp_1_1Uniform__RNG.html" title="Uniform distribution.">Uniform_RNG</a> u;
432<a name="l01016"></a>01016   <span class="keywordtype">double</span> p;
433<a name="l01017"></a>01017 };
434<a name="l01018"></a>01018
435<a name="l01019"></a>01019
436<a name="l01020"></a>01020
437<a name="l01054"></a><a class="code" href="classitpp_1_1AWGN__Channel.html">01054</a> <span class="keyword">class </span><a class="code" href="classitpp_1_1AWGN__Channel.html" title="Ordinary AWGN Channel for cvec or vec inputs and outputs.">AWGN_Channel</a>
438<a name="l01055"></a>01055 {
439<a name="l01056"></a>01056 <span class="keyword">public</span>:
440<a name="l01058"></a><a class="code" href="classitpp_1_1AWGN__Channel.html#7894594d815d194c44b191162289e764">01058</a>   <a class="code" href="classitpp_1_1AWGN__Channel.html#7894594d815d194c44b191162289e764" title="Class constructor. Sets the noise variance (for complex-valued channels the sum of...">AWGN_Channel</a>(<span class="keywordtype">double</span> noisevar = 0.0): sigma(std::<a class="code" href="group__miscfunc.html#g20af7c97287e8275db8c2b0f650310ac" title="Square root of the elements.">sqrt</a>(noisevar)) {}
441<a name="l01060"></a><a class="code" href="classitpp_1_1AWGN__Channel.html#edf43a1a192a6c474ef915c297e9fcbb">01060</a>   <span class="keywordtype">void</span> <a class="code" href="classitpp_1_1AWGN__Channel.html#edf43a1a192a6c474ef915c297e9fcbb" title="Set noise variance (for complex-valued channels the sum of real and imaginary parts)...">set_noise</a>(<span class="keywordtype">double</span> noisevar) { sigma = <a class="code" href="group__miscfunc.html#g20af7c97287e8275db8c2b0f650310ac" title="Square root of the elements.">std::sqrt</a>(noisevar); }
442<a name="l01062"></a><a class="code" href="classitpp_1_1AWGN__Channel.html#13fb914542cdad6909fe9e866322a031">01062</a>   <span class="keywordtype">double</span> <a class="code" href="classitpp_1_1AWGN__Channel.html#13fb914542cdad6909fe9e866322a031" title="Get noise variance (for complex-valued channels the sum of real and imaginary parts)...">get_noise</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="group__miscfunc.html#gd0a08400c5087615cb59d95c3e05ba38" title="Square of elements.">sqr</a>(sigma); }
443<a name="l01064"></a>01064   cvec <a class="code" href="classitpp_1_1AWGN__Channel.html#619607f240984d3c5564c057b60851dc" title="Feed the complex input input through the complex-valued AWGN channel.">operator()</a>(<span class="keyword">const</span> cvec &amp;input);
444<a name="l01066"></a>01066   vec <a class="code" href="classitpp_1_1AWGN__Channel.html#619607f240984d3c5564c057b60851dc" title="Feed the complex input input through the complex-valued AWGN channel.">operator()</a>(<span class="keyword">const</span> vec &amp;input);
445<a name="l01067"></a>01067 <span class="keyword">private</span>:
446<a name="l01068"></a>01068   <a class="code" href="classitpp_1_1Complex__Normal__RNG.html" title="A Complex Normal Source.">Complex_Normal_RNG</a> rng_cn;
447<a name="l01069"></a>01069   <a class="code" href="classitpp_1_1Normal__RNG.html" title="Normal distributionNormal (Gaussian) random variables, using a simplified Ziggurat...">Normal_RNG</a> rng_n;
448<a name="l01070"></a>01070   <span class="keywordtype">double</span> sigma;
449<a name="l01071"></a>01071 };
450<a name="l01072"></a>01072
451<a name="l01074"></a>01074
452<a name="l01075"></a>01075 } <span class="comment">// namespace itpp</span>
453<a name="l01076"></a>01076
454<a name="l01077"></a>01077 <span class="preprocessor">#endif // #ifndef CHANNEL_H</span>
455</pre></div></div>
456<hr size="1"><address style="text-align: right;"><small>Generated on Tue Jun 2 10:02:11 2009 for mixpp by&nbsp;
457<a href="http://www.doxygen.org/index.html">
458<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
459</body>
460</html>
Note: See TracBrowser for help on using the browser.