Robochameleon
v1.0
|
Electrical filtering of a driver device. More...
Inherits unit.
Public Member Functions | |
function | ElectricalFilter_v1 (in param) |
Class constructor. More... | |
function | traverse (in obj, in in) |
Main function call. | |
![]() | |
function | traverseNode (in obj) |
Set unique ID when creating a unit. More... | |
function | connectOutput (in obj, in uobj, in unitOutput, in nextUnitInput) |
Specify where signal should go next. More... | |
function | connectOutputs (in obj, in units, in destInputs) |
Specify where signal should go next. More... | |
function | writeInputBuffer (in obj, in sig, in inputId) |
write input buffer | |
function | horzcat (in varargin) |
horizontal concatenation | |
function | vertcat (in varargin) |
vertical concatenation | |
function | setparams (in obj, in params, in REQUIRED_PARAMS, in QUIET_PARAMS) |
set parameters More... | |
function | view (in obj) |
Show interactive GUI through unit_view-class. | |
Static Public Member Functions | |
static function | filterByFFT (in io, in filter) |
Public Attributes | |
Property | nOutputs |
Number of outputs. | |
Property | nInputs |
Number of inputs. | |
Property | rectangularFilter |
Turn ON Rectangular Filter? | |
Property | rectangularBandwidth |
Bandwidth of Rectangular Filter. | |
Property | gaussianOrder |
Order of Gaussian Filter (Equals zero to turn OFF) | |
Property | gaussianBandwidth |
Bandwidth of gaussian Filter. | |
Property | besselOrder |
Order of Bessel Filter (Equals zero to turn OFF) | |
Property | besselBandwidth |
Bandwidth of Bessel Filter. | |
Property | outputVoltage |
Output PEAK Voltage before DC level insertion. | |
Property | amplitudeImbalance |
Amplitude Imbalance. | |
Property | levelDC |
DC level. | |
![]() | |
Property | inputBuffer |
Buffer for storing inputs as we traverse the graph. | |
Property | nextNodes |
Children nodes. | |
Property | destInputs |
Destination inputs in children. | |
Property | results |
For storing results. | |
Property | label |
Property | draw |
enable/disable plotting | |
Property | nInputs |
Number of signals traverse expects. | |
Property | nOutputs |
Number of outputs traverse expects. | |
Electrical filtering of a driver device.
This function simulates a driver device. It performs electrical filtering on the signal and simulates group delay, amplitude imbalance, DC level insertion, and peak voltage reshaping.
Observations The input signal shall be a complex signal_interface signal.
Bypass Example If one does not define Rectangular, Gaussian and Bessel filters, the unit will bypass the filtering. If one does not define output voltage, DC level and amplitude imbalance, the output will bypass these functions. If no parameters are passed, the function will not do anything.
Typical Example
This example constructs a rectangular filter
Advanced Example
This example has all parameters defined, all of them are optional. The expeptions are "rectangularBandwidth", "gaussianBandwidth", and "besselBandwidth" that are, respectively, conditionally mandatory if "rectangularFilter", "gaussianOrder", and "besselOrder" are defined.
Definition at line 80 of file ElectricalFilter_v1.m.
function ElectricalFilter_v1::ElectricalFilter_v1 | ( | in | param | ) |
Class constructor.
param.rectangularFilter | Turn ON or OFF the rectangular time-domain filtering. true = ON / false = OFF. [Default: false] |
param.rectangularBandwidth | Baseband bandwidth of rectangular filter. It needs to be defined if param.rectangularFilter == true. |
param.gaussianOrder | The order of frequency-domain gaussian low-pass filter. Turn OFF = 0 (zero) / Turn ON = any other positive number. [Default: 0]. |
param.gaussianBandwidth | Baseband bandwidth of a gaussian filter. It needs to be defined if param.gaussianOrder ~= 0; |
param.besselOrder | The order of frequency-domain bessel filter for group delay insertion. Turn OFF = 0 (zero) / Turn ON = any other positive integer. [Default: 0]. |
param.besselBandwidth | Baseband bandwidth of bessel filter. It needs to be defined if param.besselOrder ~= 0; |
param.outputVoltage | Output peak voltage before DC level insertion. If it's not defined, it will not reformat the output voltage. |
param.amplitudeImbalance | A vector containing amplitude imbalance for each output. E.g. if outputVoltage = 2, and amplitude imbalance equals to [1 0.9 1.1 0.8], so, the output peak voltage will be 2, 1.8, 2.2, and 1.6 for I1, Q1, I2, and Q2, respectively. [Default: 1] |
param.levelDC | A vector containing DC levels to be ADDED to each of in-phase and quadrature signals. [Default: 0]. |