VisSim/Comm
Overview
Features
Technical Specs
C Code Option
Demo Software
Viewlets
Pricing

Operators Category Block Listing

The following blocks are included in the Operators category :

Analog to Digital Converter (ADC)
Compander
Complex Exponential
Complex FFT, IFFT
Conversions
Digital to Analog Converter (DAC)
Delay
Gain
IQ Mapper
Integrate & Dump
Max Index
Modulo
Oscilloscope
Phase Rotate
Phase Unwrap
Polynomial
Spectrum
Subsample
Vector FFT


Analog to Digital Converter (ADC)

This block implements an analog-to-digital converter (ADC). The input signal is quantized according to the number of specified resolution bits N and is output as an integer in the range [0, 2N- 1] or [-2(N-1), 2N-1) - 1] depending on the output mode selection (can be signed or unsigned). The input signal is assumed to vary over a range of +/- "Max Amplitude" volts centered about a zero volts level.

Two options exist for handling conversion of the zero input level: midlevel and offset. In the midlevel mode any input value in the range [-0.5q, 0.5q] is converted to level 0, where q is a quantization level. In the offset mode, a positive value in the range [0, q] is converted to level 0, while negative values in the range [-q, 0-] are converted to level -1 (assuming signed output mode).


Compander

This block implements signal companding and its inverse. Companding refers to a process of nonlinear amplitude compression usually performed prior to A/D quantization of a signal. This process is employed when it is desirable to obtain a nonlinear quantization of the original signal. You can specify either m-law or A-law companding. A standard value used in m-law companding is m=255, while for A-law companding A=87.56 is often used.


Complex Exponential

This block outputs the complex exponential of the input signal, e^jx(t), where x(t) is the input signal.


Complex FFT, IFFT

This block computes either the forward fast Fourier transform (FFT) or inverse IFFT of the input complex signal. You may select from a variety of window functions in performing the FFT. The N point FFT/IFFT operation is single shot and is started by an external trigger.

Results are viewed using a plot block configured in XY mode with an external trigger. An output trigger line and x-axis output (either frequency or time) are provided for driving the plot block. FFT results are presented over the range [-fs/2, fs/2], where fs is the simulation sampling rate in hertz.


Conversions

This block implements many common conversions. The desired conversion is selected by choosing the appropriate radio button in the block's setup dialog box. Two versions of this block are available, one for scalar signals and another for vector inputs.

Available conversions include:
• decibels <=> power
• decibels <=> real
• degrees <=> radians
• hertz <=> rad/sec
• mag/phase <=> real/imaginary


Digital to Analog Converter (DAC)

This block implements a Digital to Analog Converter (DAC). Model parameters include the number of bits and the min and max output amplitude levels.


Delay

This block implements a multiple unit delay block. Two version of this block exist, one for real (scalar) signals and one for complex signals.

This block only operates on main simulation steps and disregards the intermediate steps associated with some integration methods (e.g. Runge Kutta). For these steps, the previous value is held. The internal real and imaginary shift registers are initialized to the Initial Condition parameter values.


Gain

This block implements a gain function where the gain value is specified in decibels.


IQ Mapper

This block allows the user tospecify an arbitrary IQ constellation via an external file. The block accepts a symbol value in the range of [0, N-1] and outputs a pair of I and Q values as specified by the mapping file. This block can be followed by the IQ Modulator block to achieve modulation of arbitrary user defined constellations.


Integrate and Dump

Two versions of this block exist, one real (scalar) and the other complex. These blocks implement an integrate and dump operation on the input signal. The input signal is continuously integrated and the result is periodically dumped and reset to a specified value. The dump rate can be specified internally or via an external clock.

These blocks may be used to demodulate a baseband phase modulated signal by following it with the appropriate detector block for the modulation used. These blocks accept and output either a real signal or a complex signal depending on the selected version of the block.


Max Index

This block returns the index of the largest input signal. The block can be configured to accept up to 16 inputs. A typical application of this block is in the creation of M-ary decision circuits (e.g. detection of MFSK). Should two or more inputs share the largest value, the output index will be that of the lowest input connection in the set.


Modulo

This block performs either real-valued or integer modulo operations. The output represents the remainder after integer division of the input value by the specified modulo value. The result will fall in the range [0, mod val) when specifying a positive modulo value, and (mod val, 0] when specifying a negative modulo value.

When in integer modulo mode, the input value undergoes a tolerance adjustment and is then truncated to an integer prior to the modulo operation.


Oscilloscope

This block emulates the use of a two input channel oscilloscope. The use can specify either input as the trigger source, specify falling or rising edge triggering, and set the trigger threshold level. The overall time span is also user defined. The output is viewed using a plot block configured in XY mode with an external trigger. An output trigger line, the A and B channel traces, and time axis outputs are provided for driving the plot block.

Once enabled by an external start pulse, the Oscilloscope block monitors the input signal for a threshold crossing, i.e. a trigger event. Once triggered (and the specified trigger delay has elapsed) it reads in N data points on both channels, where N is based on the desired time span, and then displays both traces all at once as a vector. Upon completing each trace, the Oscilloscope block resets itself and awaits the next trigger event before repeating the above cycle.


Phase Rotate

This block multiplies the complex input x1 by the complex exponential e^jx2, which results in a phase rotation of x2 radians.


Phase Unwrap

This block performs a phase unwrapping operation on the input signal which is assumed to be represented in the range of [-180, +180] degrees or [-pi, +pi] radians. The block operates by comparing the input phase value to a weighted average of the previous several points. When a phase jump in excess of 180 degrees is detected, a phase wrap is declared on the input, and a value of 360 degrees is added to (or subtracted from) the output waveform. For this block to work properly, the phase variations from point to point should not be excessive (<45 degrees).


Polynomial

This block computes g(x) for g( ) up to a fifth order polynomial.


Spectrum

This block outputs the complex power spectrum of the input signal. The spectrum can be continuously updated or produced at user-defined intervals. Results are viewed using a plot block configured in XY mode with an external trigger.

Two versions of this block exist: one complex and the other real. The real version of the block only outputs the positive side of the spectrum (since it's mirror imaged), but includes all signal energy, including that from the negative side of the spectrum. This is equivalent to doubling the FFT result at all points except dc and fs/2. So, for example, the complex spectrum of a -10 dBm real sinusoid of frequency fo results in two peaks of -13 dBm at -fo and +fo , while the real spectrum results in a single peak of -10 dBm at fo.

Once triggered, the Spectrum block reads in N data points, perform an N point FFT, and then outputs the FFT result all at once as a vector. If you have selected to average multiple FFTs, then an averaging step is also performed prior to outputting the result. You may also select from a variety of window functions when performing the underlying FFT. Once completed, the Spectrum block either immediately reads in the next N data points (continuous mode) or waits until the next input trigger before repeating the above cycle.

Spectral results are presented over the range [-fs/2, fs/2] for the complex version, and over the range of [0, fs/2] for the real version, where fs is the simulation sampling rate in hertz. The output spectrum can be output in watts, dBm, or dBm/Hz.


Subsample

This block samples the input signal at a constant interval specified as an integer number of simulation time steps. An initial offset may be specified. The output can either be held constant between samples or specified as an inpulse train (zero padded).


Vector FFT

This block provides vector-based FFT and IFFT capabilities. The input and output signals are vectors of size N, where N is a power of two.
The Vector FFT block performs an FFT or IFFT operation in a single simulation step. A frame input clock controls when the calculation is to be performed. Each time the clock goes high, the input vectors are read, the FFT or IFFT operation is performed, and the result is posted to the output vectors. This block supports both real/imaginary format or magnitude/phase for the FFT data.