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 | <!-- |
---|
10 | function changeDisplayState (e){ |
---|
11 | var num=this.id.replace(/[^[0-9]/g,''); |
---|
12 | var button=this.firstChild; |
---|
13 | var sectionDiv=document.getElementById('dynsection'+num); |
---|
14 | if (sectionDiv.style.display=='none'||sectionDiv.style.display==''){ |
---|
15 | sectionDiv.style.display='block'; |
---|
16 | button.src='open.gif'; |
---|
17 | }else{ |
---|
18 | sectionDiv.style.display='none'; |
---|
19 | button.src='closed.gif'; |
---|
20 | } |
---|
21 | } |
---|
22 | function initDynSections(){ |
---|
23 | var divs=document.getElementsByTagName('div'); |
---|
24 | var sectionCounter=1; |
---|
25 | for(var i=0;i<divs.length-1;i++){ |
---|
26 | if(divs[i].className=='dynheader'&&divs[i+1].className=='dynsection'){ |
---|
27 | var header=divs[i]; |
---|
28 | var section=divs[i+1]; |
---|
29 | var button=header.firstChild; |
---|
30 | if (button!='IMG'){ |
---|
31 | divs[i].insertBefore(document.createTextNode(' '),divs[i].firstChild); |
---|
32 | button=document.createElement('img'); |
---|
33 | divs[i].insertBefore(button,divs[i].firstChild); |
---|
34 | } |
---|
35 | header.style.cursor='pointer'; |
---|
36 | header.onclick=changeDisplayState; |
---|
37 | header.id='dynheader'+sectionCounter; |
---|
38 | button.src='closed.gif'; |
---|
39 | section.id='dynsection'+sectionCounter; |
---|
40 | section.style.display='none'; |
---|
41 | section.style.marginLeft='14px'; |
---|
42 | sectionCounter++; |
---|
43 | } |
---|
44 | } |
---|
45 | } |
---|
46 | window.onload = initDynSections; |
---|
47 | --> |
---|
48 | </script> |
---|
49 | <div class="navigation" id="top"> |
---|
50 | <div class="tabs"> |
---|
51 | <ul> |
---|
52 | <li><a href="main.html"><span>Main Page</span></a></li> |
---|
53 | <li><a href="pages.html"><span>Related Pages</span></a></li> |
---|
54 | <li><a href="modules.html"><span>Modules</span></a></li> |
---|
55 | <li><a href="annotated.html"><span>Classes</span></a></li> |
---|
56 | <li class="current"><a href="files.html"><span>Files</span></a></li> |
---|
57 | </ul> |
---|
58 | </div> |
---|
59 | <div class="tabs"> |
---|
60 | <ul> |
---|
61 | <li><a href="files.html"><span>File List</span></a></li> |
---|
62 | <li><a href="globals.html"><span>File Members</span></a></li> |
---|
63 | </ul> |
---|
64 | </div> |
---|
65 | <h1>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 <<a class="code" href="elem__math_8h.html" title="Elementary mathematical functions - header file.">itpp/base/math/elem_math.h</a>></span> |
---|
70 | <a name="l00033"></a>00033 <span class="preprocessor">#include <<a class="code" href="mat_8h.html" title="Matrix Class Definitions.">itpp/base/mat.h</a>></span> |
---|
71 | <a name="l00034"></a>00034 <span class="preprocessor">#include <<a class="code" href="array_8h.html" title="Definition of Array class (container).">itpp/base/array.h</a>></span> |
---|
72 | <a name="l00035"></a>00035 <span class="preprocessor">#include <<a class="code" href="random_8h.html" title="Definition of classes for random number generators.">itpp/base/random.h</a>></span> |
---|
73 | <a name="l00036"></a>00036 <span class="preprocessor">#include <<a class="code" href="filter_8h.html" title="Definitions of Filter classes and functions.">itpp/signal/filter.h</a>></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 &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& 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& 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<double> <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& 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<double>& 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 &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 &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<std::complex<double></a>, double, std::complex<double> > <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 &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 &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 &avg_power_dB = <span class="stringliteral">"0"</span>, <span class="keyword">const</span> vec &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 &avg_power_dB, <span class="keyword">const</span> vec &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& relative_power, <span class="keyword">const</span> vec& 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 &avg_power_dB, vec &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<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="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<DOPPLER_SPECTRUM></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 &avg_power_dB = <span class="stringliteral">"0"</span>, <span class="keyword">const</span> ivec &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> &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 &avg_power_dB, <span class="keyword">const</span> ivec &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> &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& relative_power, <span class="keyword">const</span> vec& 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& 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& 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&#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&#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 &avg_power_dB, ivec &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&#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<cvec></a> &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 &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 &input, cvec &output, <span class="keyword">const</span> <a class="code" href="classitpp_1_1Array.html">Array<cvec></a> &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 &input, cvec &output, <span class="keyword">const</span> cmat &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 &input, cvec &output, <a class="code" href="classitpp_1_1Array.html">Array<cvec></a> &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 &input, cvec &output, cmat &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 &input, <a class="code" href="classitpp_1_1Array.html">Array<cvec></a> &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 &input, cmat &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 &input, cvec &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 &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 &input, cvec &output, <a class="code" href="classitpp_1_1Array.html">Array<cvec></a> &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 &input, cvec &output, cmat &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 &input, <a class="code" href="classitpp_1_1Array.html">Array<cvec></a> &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 &input, cmat &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 &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<cvec></a> &channel_coeff, <a class="code" href="classitpp_1_1Array.html">Array<cvec></a> &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<cvec></a> &channel_coeff, <a class="code" href="classitpp_1_1Array.html">Array<cvec></a> &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 &channel_coeff, cmat &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<DOPPLER_SPECTRUM></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<Fading_Generator *></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 &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 &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 &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 &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 |
---|
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> |
---|