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

Pulse shaper. More...

Inherits unit.

Public Member Functions

function PulseShaper_v1 (in param)
 Class constructor. More...
 
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 ps (in in, in samplesPerSymbol, in filterCoeffs)
 Class traverse function.
 

Public Attributes

Property nOutputs
 Number of outputs.
 
Property nInputs
 Number of inputs.
 
Property samplesPerSymbol
 Output samples per symbol.
 
Property symbolRate
 Output sample rate (Does not need to be defined) [Default 1].
 
Property pulseShape
 Pulse shaping.
 
Property filterSymbolLength
 Symbol length of Raised Cosine or Root Raised Cosine filters.
 
Property rollOff
 Rolloff for Raised Cosine or Root Raised Cosine filters.
 
- 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.
 

Private Attributes

Property filterCoeffs
 Filter Coefficients.
 

Detailed Description

Pulse shaper.

This function converts the input signal in an upsampled pulse shaped signal.

Observations

The input signal shall be an 1 sample per symbol complex signal_interface signal.

'rc' - Raised Cosine, a.k.a. Nyquist Shaping (when using rollOff = 0). 'rrc' - Root Raised Cosine. 'nrz' - Non Return to Zero. 'rz33' - Return to Zero with 1/3 duty cycle. 'rz50' - Return to Zero with 1/2 duty cycle. 'rz66' - Return to Zero with 2/3 duty cycle.

Example

param.ps.samplesPerSymbol = 8;
param.ps.pulseShape = 'rz33';
pulseshaper = PulseShaper_v1(param.quantizer);
param.sig.Fs = 32e9;
param.sig.Fc = 0;
param.sig.Rs = 32e9;
param.sig.PCol = [pwr(20,{-2,'dBm'}), pwr(-inf,{-inf,'dBm'})];
Ein = upsample((randi(2,10000,1)-1.5)*2 + 1j*(randi(2,10000,1)-1.5)*2,2);
sigIn = signal_interface(Ein, param.sig);
sigOut = pulseshaper.traverse(sigIn);

Advanced Example

param.ps.samplesPerSymbol = 8;
param.ps.pulseShape = 'rc';
param.ps.rollOff = 0.1;
param.ps.filterSymbolLength = 101;
pulseshaper = PulseShaper_v1(param.quantizer);
param.sig.Fs = 64e9;
param.sig.Fc = 0;
param.sig.Rs = 32e9;
param.sig.PCol = [pwr(20,{-2,'dBm'}), pwr(-inf,{-inf,'dBm'})];
Ein = upsample((randi(2,10000,1)-1.5)*2 + 1j*(randi(2,10000,1)-1.5)*2,2);
sigIn = signal_interface(Ein, param.sig);
sigOut = pulseshaper.traverse(sigIn);
Author
Júlio Diniz
Version
2

Definition at line 56 of file PulseShaper_v1.m.

Constructor & Destructor Documentation

function PulseShaper_v1::PulseShaper_v1 ( in  param)

Class constructor.

Parameters
param.samplesPerSymbolSamplesPerSymbol - It is the desired output number of samples per symbol.
param.pulseShapePulseShape - Choose among 'rc', 'rrc', 'rz33', 'rz50', 'rz67', 'nrz' or 'custom';
param.filterCoeffsFilterCoeffs - You should define this as a vector if you chose 'custom' 'pulseShape'.
param.filterSymbolLengthFilterSymbolLength - You should define a symbol length for 'rc' or 'rrc' filters. The default value is 202.
param.rollOffRollOff - The Roll-Off factor. You should define this value if you are using 'rc' or 'rrc' shapings. Usually, this number varies from 0 to 1.
param.symbolRateSymbolRate - You are able to define a symbol rate for your signal here. The output sample frequency will be define as symbolRate*samplesPerSymbol.
Return values
objAn instance of the class PulseShaper_v1.

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