Robochameleon  v1.0
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
DigitalPreFilter_v1 Class Reference

A prefilter for digital signals. More...

Inherits unit.

Public Member Functions

function DigitalPreFilter_v1 (in param)
 Class constructor.
 
function traverse (in obj, in in)
 Main function call.
 
- Public Member Functions inherited from unit
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)
 User defined filter. More...
 

Public Attributes

Property nOutputs
 Number of outputs.
 
Property nInputs
 Number of inputs.
 
Property gaussianOrder
 Order of Gaussian Pre-Filter.
 
Property gaussianBandwidth
 Bandwidth of Gaussian Pre-Filter.
 
Property gaussianMaxFrequency
 
Property besselOrder
 Order of Bessel Pre-Filter.
 
Property besselBandwidth
 Bandwidth of Bessel Pre-Filter.
 
Property userDefinedFilter
 User defined filter in time domain, same sampling rate.
 
- Public Attributes inherited from unit
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.
 

Detailed Description

A prefilter for digital signals.

This function implements a prefilter in order to mitigate filtering and group delay impairments of the electrical front-end of DAC.

Observations

  1. This unit implements low-pass filtering mitigation by inverse response of Gaussian low-pass filters.
  2. This unit implements group delay mitigation by inverse phase response of Bessel filters.
  3. This unit alse receives user defined filters in time domain.

Example

param.prefilter.gaussianOrder = 1;
param.prefilter.gaussianBandwidth = 16e9;
prefilt = DigitalPreFilter_v1(param.prefilter);
param.sig.Fs = 64e9;
param.sig.Fc = 0;
param.sig.Rs = 32e9;
Ein = upsample((randi(2,1000,1)-1.5)*2 + 1j*(randi(2,1000,1)-1.5)*2,2);
sigIn = signal_interface(Ein, param.sig);
sigOut = prefilt.traverse(sigIn);

Advanced Example

param.prefilter.gaussianOrder = 1;
param.prefilter.gaussianBandwidth = 16e9;
param.prefilter.besselOrder = 2;
param.prefilter.besselBandwidth = 84e9;
param.prefilter.userDefinedFilter = [1 0 1 ; 1 0 0]';
prefilt = DigitalPreFilter_v1(param.prefilter);
param.sig.Fs = 64e9;
param.sig.Fc = 0;
param.sig.Rs = 32e9;
Ein = upsample((randi(2,1000,1)-1.5)*2 + 1j*(randi(2,1000,1)-1.5)*2,2);
sigIn = signal_interface(Ein, param.sig);
sigOut = prefilt.traverse(sigIn);
Author
jcesardiniz
Version
1

Definition at line 58 of file DigitalPreFilter_v1.m.

Member Function Documentation

static function DigitalPreFilter_v1::filterByFFT ( in  io,
in  filter 
)
static

User defined filter.

Gaussian pre-filtering Bessel pre-filtering for group delay

Member Data Documentation

Property DigitalPreFilter_v1::gaussianMaxFrequency

Maximum bandwidth of Gaussian Pre-Filter (to prevent ultra-high gains and noise increasing);

Definition at line 78 of file DigitalPreFilter_v1.m.


The documentation for this class was generated from the following file: