A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Portuguese
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
lte-sinr-chunk-processor.h
Go to the documentation of this file.
1
/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2009, 2010 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License version 2 as
7
* published by the Free Software Foundation;
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program; if not, write to the Free Software
16
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
*
18
* Author: Nicola Baldo <nbaldo@cttc.es>
19
* Modified by : Marco Miozzo <mmiozzo@cttc.es>
20
* (move from CQI to Ctrl and Data SINR Chunk processors)
21
*/
22
23
24
#ifndef LTE_SINR_CHUNK_PROCESSOR_H
25
#define LTE_SINR_CHUNK_PROCESSOR_H
26
27
#include <ns3/spectrum-value.h>
28
#include <ns3/ptr.h>
29
#include <ns3/packet.h>
30
#include <ns3/nstime.h>
31
#include <ns3/object.h>
32
#include <ns3/lte-phy.h>
33
#include <ns3/lte-spectrum-phy.h>
34
35
namespace
ns3 {
36
37
38
45
class
LteSinrChunkProcessor
:
public
SimpleRefCount
<LteSinrChunkProcessor>
46
{
47
public
:
48
virtual
~LteSinrChunkProcessor
();
49
virtual
void
Start
() = 0;
50
virtual
void
EvaluateSinrChunk
(
const
SpectrumValue
& sinr,
Time
duration) = 0;
51
virtual
void
End
() = 0;
52
};
53
54
55
56
64
class
LteCtrlSinrChunkProcessor
:
public
LteSinrChunkProcessor
65
{
66
public
:
67
virtual
~LteCtrlSinrChunkProcessor
();
68
LteCtrlSinrChunkProcessor
(
Ptr<LtePhy>
p);
69
LteCtrlSinrChunkProcessor
(
Ptr<LtePhy>
p,
Ptr<LteSpectrumPhy>
s
);
70
virtual
void
Start
();
71
virtual
void
EvaluateSinrChunk
(
const
SpectrumValue
& sinr,
Time
duration);
72
virtual
void
End
();
73
private
:
74
Ptr<SpectrumValue>
m_sumSinr
;
75
Time
m_totDuration
;
76
Ptr<LtePhy>
m_phy
;
77
Ptr<LteSpectrumPhy>
m_spectrumPhy
;
78
};
79
80
81
89
class
LteDataSinrChunkProcessor
:
public
LteSinrChunkProcessor
90
{
91
public
:
92
virtual
~LteDataSinrChunkProcessor
();
93
LteDataSinrChunkProcessor
(
Ptr<LteSpectrumPhy>
p);
94
LteDataSinrChunkProcessor
(
Ptr<LteSpectrumPhy>
s
,
Ptr<LtePhy>
p);
95
virtual
void
Start
();
96
virtual
void
EvaluateSinrChunk
(
const
SpectrumValue
& sinr,
Time
duration);
97
virtual
void
End
();
98
private
:
99
Ptr<SpectrumValue>
m_sumSinr
;
100
Time
m_totDuration
;
101
Ptr<LteSpectrumPhy>
m_spectrumPhy
;
102
Ptr<LtePhy>
m_phy
;
103
};
104
105
112
class
LteRsReceivedPowerChunkProcessor
:
public
LteSinrChunkProcessor
113
{
114
public
:
115
virtual
~LteRsReceivedPowerChunkProcessor
();
116
LteRsReceivedPowerChunkProcessor
(
Ptr<LtePhy>
p);
117
virtual
void
Start
();
118
virtual
void
EvaluateSinrChunk
(
const
SpectrumValue
& sinr,
Time
duration);
119
virtual
void
End
();
120
private
:
121
Ptr<SpectrumValue>
m_sumSinr
;
122
Time
m_totDuration
;
123
Ptr<LtePhy>
m_phy
;
124
};
125
126
127
128
136
class
LteInterferencePowerChunkProcessor
:
public
LteSinrChunkProcessor
137
{
138
public
:
139
virtual
~LteInterferencePowerChunkProcessor
();
140
LteInterferencePowerChunkProcessor
(
Ptr<LtePhy>
p);
141
virtual
void
Start
();
142
virtual
void
EvaluateSinrChunk
(
const
SpectrumValue
& sinr,
Time
duration);
143
virtual
void
End
();
144
private
:
145
Ptr<SpectrumValue>
m_sumSinr
;
146
Time
m_totDuration
;
147
Ptr<LtePhy>
m_phy
;
148
};
149
150
151
152
153
154
}
// namespace ns3
155
156
157
158
#endif
/* LTE_SINR_PROCESSOR_H */
ns3::LteDataSinrChunkProcessor::m_spectrumPhy
Ptr< LteSpectrumPhy > m_spectrumPhy
Definition:
lte-sinr-chunk-processor.h:101
ns3::LteSinrChunkProcessor::End
virtual void End()=0
ns3::Time
keep track of time values and allow control of global simulation resolution
Definition:
nstime.h:81
ns3::LteInterferencePowerChunkProcessor::m_totDuration
Time m_totDuration
Definition:
lte-sinr-chunk-processor.h:146
ns3::Ptr
smart pointer class similar to boost::intrusive_ptr
Definition:
ptr.h:59
ns3::LteSinrChunkProcessor::Start
virtual void Start()=0
ns3::LteDataSinrChunkProcessor::End
virtual void End()
Definition:
lte-sinr-chunk-processor.cc:154
ns3::LteRsReceivedPowerChunkProcessor::EvaluateSinrChunk
virtual void EvaluateSinrChunk(const SpectrumValue &sinr, Time duration)
Definition:
lte-sinr-chunk-processor.cc:199
ns3::LteCtrlSinrChunkProcessor::End
virtual void End()
Definition:
lte-sinr-chunk-processor.cc:86
ns3::LteInterferencePowerChunkProcessor::End
virtual void End()
Definition:
lte-sinr-chunk-processor.cc:265
ns3::LteDataSinrChunkProcessor::m_sumSinr
Ptr< SpectrumValue > m_sumSinr
Definition:
lte-sinr-chunk-processor.h:99
ns3::LteSinrChunkProcessor::EvaluateSinrChunk
virtual void EvaluateSinrChunk(const SpectrumValue &sinr, Time duration)=0
ns3::LteSinrChunkProcessor
This abstract class is used to process the time-vs-frequency SINR chunk of a received LTE signal whic...
Definition:
lte-sinr-chunk-processor.h:45
ns3::LteInterferencePowerChunkProcessor::Start
virtual void Start()
Definition:
lte-sinr-chunk-processor.cc:244
ns3::LteRsReceivedPowerChunkProcessor::m_phy
Ptr< LtePhy > m_phy
Definition:
lte-sinr-chunk-processor.h:123
ns3::LteInterferencePowerChunkProcessor::m_sumSinr
Ptr< SpectrumValue > m_sumSinr
Definition:
lte-sinr-chunk-processor.h:145
ns3::LteDataSinrChunkProcessor
The LteDataSinrChunkProcessor averages the calculated SINR over time for data frame and therefore in ...
Definition:
lte-sinr-chunk-processor.h:89
ns3::LteSinrChunkProcessor::~LteSinrChunkProcessor
virtual ~LteSinrChunkProcessor()
Definition:
lte-sinr-chunk-processor.cc:32
ns3::LteRsReceivedPowerChunkProcessor::End
virtual void End()
Definition:
lte-sinr-chunk-processor.cc:211
ns3::LteInterferencePowerChunkProcessor::EvaluateSinrChunk
virtual void EvaluateSinrChunk(const SpectrumValue &sinr, Time duration)
Definition:
lte-sinr-chunk-processor.cc:253
ns3::LteInterferencePowerChunkProcessor::m_phy
Ptr< LtePhy > m_phy
Definition:
lte-sinr-chunk-processor.h:147
ns3::LteRsReceivedPowerChunkProcessor::m_sumSinr
Ptr< SpectrumValue > m_sumSinr
Definition:
lte-sinr-chunk-processor.h:121
ns3::LteCtrlSinrChunkProcessor::Start
virtual void Start()
Definition:
lte-sinr-chunk-processor.cc:65
ns3::LteDataSinrChunkProcessor::~LteDataSinrChunkProcessor
virtual ~LteDataSinrChunkProcessor()
Definition:
lte-sinr-chunk-processor.cc:126
s
Ptr< SampleEmitter > s
Definition:
double-probe-test-suite.cc:51
ns3::LteRsReceivedPowerChunkProcessor
The LteRsReceivedPowerChunkProcessor averages the received signal power over time for data frame and ...
Definition:
lte-sinr-chunk-processor.h:112
ns3::LteDataSinrChunkProcessor::m_totDuration
Time m_totDuration
Definition:
lte-sinr-chunk-processor.h:100
ns3::LteCtrlSinrChunkProcessor::LteCtrlSinrChunkProcessor
LteCtrlSinrChunkProcessor(Ptr< LtePhy > p)
Definition:
lte-sinr-chunk-processor.cc:40
ns3::LteCtrlSinrChunkProcessor::~LteCtrlSinrChunkProcessor
virtual ~LteCtrlSinrChunkProcessor()
Definition:
lte-sinr-chunk-processor.cc:58
ns3::LteCtrlSinrChunkProcessor::m_phy
Ptr< LtePhy > m_phy
Definition:
lte-sinr-chunk-processor.h:76
ns3::LteRsReceivedPowerChunkProcessor::~LteRsReceivedPowerChunkProcessor
virtual ~LteRsReceivedPowerChunkProcessor()
Definition:
lte-sinr-chunk-processor.cc:183
ns3::LteCtrlSinrChunkProcessor::m_sumSinr
Ptr< SpectrumValue > m_sumSinr
Definition:
lte-sinr-chunk-processor.h:74
ns3::LteDataSinrChunkProcessor::m_phy
Ptr< LtePhy > m_phy
Definition:
lte-sinr-chunk-processor.h:102
ns3::LteRsReceivedPowerChunkProcessor::LteRsReceivedPowerChunkProcessor
LteRsReceivedPowerChunkProcessor(Ptr< LtePhy > p)
Definition:
lte-sinr-chunk-processor.cc:176
ns3::LteCtrlSinrChunkProcessor::m_spectrumPhy
Ptr< LteSpectrumPhy > m_spectrumPhy
Definition:
lte-sinr-chunk-processor.h:77
ns3::LteRsReceivedPowerChunkProcessor::Start
virtual void Start()
Definition:
lte-sinr-chunk-processor.cc:190
ns3::LteRsReceivedPowerChunkProcessor::m_totDuration
Time m_totDuration
Definition:
lte-sinr-chunk-processor.h:122
ns3::LteCtrlSinrChunkProcessor
The LteCtrlSinrChunkProcessor averages the calculated SINR over time for the Ctrl frame and therefore...
Definition:
lte-sinr-chunk-processor.h:64
ns3::LteDataSinrChunkProcessor::EvaluateSinrChunk
virtual void EvaluateSinrChunk(const SpectrumValue &sinr, Time duration)
Definition:
lte-sinr-chunk-processor.cc:142
ns3::LteDataSinrChunkProcessor::LteDataSinrChunkProcessor
LteDataSinrChunkProcessor(Ptr< LteSpectrumPhy > p)
Definition:
lte-sinr-chunk-processor.cc:115
ns3::LteDataSinrChunkProcessor::Start
virtual void Start()
Definition:
lte-sinr-chunk-processor.cc:133
ns3::LteCtrlSinrChunkProcessor::EvaluateSinrChunk
virtual void EvaluateSinrChunk(const SpectrumValue &sinr, Time duration)
Definition:
lte-sinr-chunk-processor.cc:74
ns3::SpectrumValue
Set of values corresponding to a given SpectrumModel.
Definition:
spectrum-value.h:57
ns3::SimpleRefCount
A template-based reference counting class.
Definition:
simple-ref-count.h:64
ns3::LteInterferencePowerChunkProcessor::LteInterferencePowerChunkProcessor
LteInterferencePowerChunkProcessor(Ptr< LtePhy > p)
Definition:
lte-sinr-chunk-processor.cc:230
ns3::LteCtrlSinrChunkProcessor::m_totDuration
Time m_totDuration
Definition:
lte-sinr-chunk-processor.h:75
ns3::LteInterferencePowerChunkProcessor
The LteInterferencePowerChunkProcessor averages the interference power over time for data frame and t...
Definition:
lte-sinr-chunk-processor.h:136
ns3::LteInterferencePowerChunkProcessor::~LteInterferencePowerChunkProcessor
virtual ~LteInterferencePowerChunkProcessor()
Definition:
lte-sinr-chunk-processor.cc:237
src
lte
model
lte-sinr-chunk-processor.h
Generated on Sat Apr 19 2014 14:07:01 for ns-3 by
1.8.6