#include <fadingmimochannel.h>
Inheritance diagram for mimo::FadingMIMOChannel:
Public Member Functions | |
FadingMIMOChannel (int deviceID, DeviceSystemIntf *system, const simth::PropertyList &pl) | |
constructor | |
virtual | ~FadingMIMOChannel () |
destructor | |
virtual void | refresh () |
determines new random transfer factors | |
void | getTransfer (int relative_time, MatrixFreqSignal &trans) const |
void | transmit (const VectorTimeSignal &sym, VectorTimeSignal &outsym) |
transmits a symbol sequence over the channel | |
virtual void | print (std::ostream &os) const |
Protected Attributes | |
double | sigma |
scale factor sigma of rayleigh distribution | |
RayleighRng | ray |
pointer to a Rayleigh distributed random variable | |
double | normFactor |
Stores the normalization factor. | |
simthlib::OfdmReceiver * | ofdm_recv |
simthlib::OfdmTransmitter * | ofdm_trans |
unsigned | num_carrier |
double | carrier_dist |
unsigned | maxantenna |
std::vector< TimeSignal::storage_type * > | time_samples |
std::vector< ModSeq * > | freq_samples |
CVectorSeq::storage_type | freq_vectors_in |
CVectorSeq::storage_type | freq_vectors_out |
DEPRECATED. This specific class has Rayleigh Fading in the amplitude, but zero phase rotation. For the usual Gaussian fading you will probably prefer to use CmplFadingChannel. Therefore this class is deprecated and should not be used.
This channel and its derived classes can either be used as a flat-fading/narrowband channel, or as a broadband Rayleigh fading channel.
For a flat-fading/narrowband channel, at each refresh() one new transfer factor is diced. The channel transfer function then is constant over all frequency, , and the channel impulse response is simply a multiplication with this one transfer factor. This mode of operation is chosen by specifying the Property num_carrier
to be one (default).
Alternatively, this channel and its derived classes can be used as a broadband Rayleigh fading channel, so that for a specific OFDM system each subcarrier will undergo an i.i.d. fading. However, this requires this block to know the parameters of the surrounding OFDM system exactly. Hence, the Properties num_carrier
, oversampling
, carrier_dist
, and guard_time
have to be specified identically to the OFDM transmitter/receiver blocks. In this mode of operation, at each refresh() a new channel transfer function is diced with =num_carrier different i.i.d. random variables at each subcarrier k, resulting in where each is the frequency of subcarrier k.
|
constructor
|
|
destructor
|
|
determines new random transfer factors
Reimplemented from simth::Device. Reimplemented in mimo::CmplFadingMIMOChannel, and mimo::FileFadingChannel. |
|
Determines channel transfer factors. An ideal estimation of the channel transfer function is performed. This means, the exact values are determined, where is and . (time = 0 indicates the transmission time of the sample transmitted at last over the channel; time = -numSamples indicates the transmission time of the first sample of the last transmitted sequence. Implements mimo::MIMOChannel. |
|
transmits a symbol sequence over the channel
Implements mimo::MIMOChannel. |
|
Reimplemented from mimo::MIMOChannel. Reimplemented in mimo::CmplFadingMIMOChannel. |
|
scale factor sigma of rayleigh distribution
|
|
pointer to a Rayleigh distributed random variable
|
|
Stores the normalization factor.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|