Robochameleon
v1.0
|
power description class More...
Public Member Functions | |
function | pwr (in SNR, in P) |
Class constructor. More... | |
function | plus_1elem (in obj1, in obj2) |
Add two power objects. More... | |
function | plus (in obj1, in obj2) |
Add two power objects, with support for arrays of objects. More... | |
function | minus (in obj1, in obj2) |
Subtract two power objects. More... | |
function | mtimes (in in1, in in2) |
Multiply a power object by a scalar. More... | |
function | times (in in1, in in2) |
Multiply an array of power objects by an array of scalars. More... | |
function | mrdivide (in in1, in C) |
Divide a power object by a scalar. More... | |
function | P (in obj, in varargin) |
Depreciated get for power. | |
function | SNR (in obj, in varargin) |
get SNR | |
function | Ptot (in obj, in varargin) |
get total power More... | |
function | Ps (in obj, in varargin) |
get signal power More... | |
function | Pn (in obj, in varargin) |
get noise power More... | |
function | disp (in obj) |
display function | |
Static Public Member Functions | |
static function | normpwr (in x, in varargin) |
normalize signal based on power More... | |
static function | meanpwr (in x) |
Mean signal power and energy. More... | |
static function | getOSNR (in sig, in varargin) |
get OSNR More... | |
Public Attributes | |
Property | P_dBW |
Total power, dBW. | |
Property | SNR_dB |
Signal-to-noise ratio, dB. | |
Static Private Member Functions | |
static function | validpwr (in P) |
validate power More... | |
static function | outputP (in P_dBW, in varargin) |
Parse format to get power. More... | |
static function | outputSNR (in SNR_dB, in varargin) |
Parse format to get SNR. More... | |
static function | inputP (in P) |
Parse format to set power. More... | |
static function | inputSNR (in SNR) |
Parse format to set SNR. More... | |
power description class
pwr describes the signal power and signal-to-noise ratio. It also has a number of useful power-related methods. Many parameters are specified as strings. None are case-sensitive.
Example
will create: P1, a power object describing a signal (50 dB SNR, 5dBm power) P2, a power object describing noise (-50dB SNR, 0 dBm power) then add them, returning P3, which should have about 5dB SNR, 6dBm total power
function pwr::pwr | ( | in | SNR, |
in | P | ||
) |
Class constructor.
Constructs an object of type pwr. Example:
These statements are equivalent
SNR | if scalar, SNR in dB. Otherwise, cell array {value, unit} |
P | if scalar, power in dBm. Otherwise, cell array {value, unit} |
obj | object of power type |
|
static |
get OSNR
sig | A signal_inteface to retrieve the signal bandwidth. |
varargin{1} | String describing SNR unit {'dB' | 'lin'}. [Default: dB] |
varargin{2} | Bandwidth over which evaluate the OSNR [nm]. [Default: 0.1] |
OSNR | The signal OSNR evaluated over the given bandwidth |
|
staticprivate |
Parse format to set power.
Convert power and specified format to dBW - default dBm
P | power in dBm as scalar or cell array with scalar + unit |
P_dB | power in dBW |
|
staticprivate |
Parse format to set SNR.
Convert SNR and specified format to dB - default dB
SNR | SNR in dB as scalar or cell array with scalar + unit |
SNR_dB | SNR in dB |
|
static |
function pwr::minus | ( | in | obj1, |
in | obj2 | ||
) |
Subtract two power objects.
Subtract two power objects - do not do this, it doesn't make sense.
function pwr::mrdivide | ( | in | in1, |
in | C | ||
) |
Divide a power object by a scalar.
Divide a power object by a scalar. Useful for gain, loss.
in1 | multiplicand (power object or scalar) |
in2 | multiplicand (power object or scalar) |
obj | object of power type |
function pwr::mtimes | ( | in | in1, |
in | in2 | ||
) |
Multiply a power object by a scalar.
Multiply a power object by a scalar. Useful for gain, loss.
in1 | multiplicand (power object or scalar) |
in2 | multiplicand (power object or scalar) |
obj | object of power type |
|
static |
normalize signal based on power
Normalize signal based on calculated power
Example
y1 is normalized so that its peak power is 1 y2 is normalized so that its average power is 1 y3 = y2
x | signal |
type | signal property (power) to normalize {'average' | 'max'} |
P | power to normalize to (scalar) |
unit | unit power is specified in {'linear' | 'db' | 'dBm'} |
y | normalized signal |
scfactor | scaling factor |
|
staticprivate |
Parse format to get power.
Convert power in dBW to desired format
P_dBW | power in dBW |
varargin | string describing power unit {'dBm' | 'w' | 'mw' | 'uw' | 'dbw' | 'dbu'} |
P_format | formatted power |
|
staticprivate |
Parse format to get SNR.
Convert SNR in dB to desired format
SNR_dB | SNR in dB |
varargin | string describing SNR unit {'dB' | 'lin'} |
SNR_format | formatted SNR |
function pwr::plus | ( | in | obj1, |
in | obj2 | ||
) |
Add two power objects, with support for arrays of objects.
obj1 | addend power object |
obj2 | addend power object |
obj | object of power type |
function pwr::plus_1elem | ( | in | obj1, |
in | obj2 | ||
) |
Add two power objects.
obj1 | addend power object (single) |
obj2 | addend power object (single) |
obj | object of power type |
function pwr::Pn | ( | in | obj, |
in | varargin | ||
) |
get noise power
Returns noise power in desired format (default dBm)
obj | power object |
varargin | string describing power unit {'dBm' | 'w' | 'mw' | 'uw' | 'dbw' | 'dbu'} |
Pn | formatted signal power |
function pwr::Ps | ( | in | obj, |
in | varargin | ||
) |
get signal power
Returns signal power in desired format (default dBm)
obj | power object |
varargin | string describing power unit {'dBm' | 'w' | 'mw' | 'uw' | 'dbw' | 'dbu'} |
Ps | formatted signal power |
function pwr::Ptot | ( | in | obj, |
in | varargin | ||
) |
get total power
Returns total (signal+noise) power in desired format (default dBm)
obj | power object |
varargin | string describing power unit {'dBm' | 'w' | 'mw' | 'uw' | 'dbw' | 'dbu'} |
Ptot | formatted signal+noise power |
function pwr::times | ( | in | in1, |
in | in2 | ||
) |
Multiply an array of power objects by an array of scalars.
Multiply an array of power objects by an array of scalars.
in1 | multiplicand (power object or scalar) |
in2 | multiplicand (power object or scalar) |
obj | object of power type |
|
staticprivate |
validate power
Check if power value is acceptable (real, scalar)