Fixed-Point Support for MATLAB System Objects

Get Information About Fixed-Point System Objects

System objects that support fixed-point data processing have fixed-point properties, which you can display for a particular object by typing dsp.<ObjectName>.helpFixedPoint at the command line. See Display Fixed-Point Properties for System Objects to set the display of System object™ fixed-point properties.

DSP System Toolbox System Objects that Support Fixed Point

dsp.LevinsonSolverSolve linear system of equations using Levinson-Durbin recursion
dsp.AllpoleFilterIIR Filter with no zeros
dsp.BiquadFilterModel biquadratic IIR (SOS) filters
dsp.CICCompensationDecimatorCompensate for CIC filter using a FIR decimator
dsp.CICCompensationInterpolatorCompensate for CIC filter using a FIR interpolator
dsp.CICDecimatorDecimate inputs using a Cascaded Integrator-Comb (CIC) filter
dsp.CICInterpolator Interpolate inputs using a Cascaded Integrator-Comb (CIC) filter
dsp.DigitalFilterFilter each channel of input over time using discrete-time filter implementations
dsp.FIRDecimatorFilter and downsample input signals
dsp.FIRFilterStatic or time-varying FIR filter
dsp.FIRInterpolatorUpsample and filter input signals
dsp.FIRRateConverterUpsample, filter and downsample input signals
dsp.IIRFilterInfinite Impulse Response (IIR) filter
dsp.LMSFilterCompute output, error, and weights using LMS adaptive algorithm
dsp.SubbandAnalysisFilterDecompose signal into high-frequency and low-frequency subbands
dsp.SubbandSynthesisFilter Reconstruct a signal from high-frequency and low-frequency subbands
Math Functions
dsp.ArrayVectorAdderAdd vector to array along specified dimension
dsp.ArrayVectorDividerDivide array by vector along specified dimension
dsp.ArrayVectorMultiplierMultiply array by vector along specified dimension
dsp.ArrayVectorSubtractorSubtract vector from array along specified dimension
dsp.CumulativeProduct Compute cumulative product of channel, column, or row elements
dsp.CumulativeSumCompute cumulative sum of channel, column, or row elements
dsp.LDLFactorFactor square Hermitian positive definite matrices into lower, upper, and diagonal components
dsp.LevinsonSolverSolve linear system of equations using Levinson-Durbin recursion
dsp.LowerTriangularSolverSolve LX = B for X when L is lower triangular matrix
dsp.LUFactorFactor square matrix into lower and upper triangular matrices
dsp.NormalizerNormalize input
dsp.UpperTriangularSolverSolve UX = B for X when U is upper triangular matrix
dsp.ScalarQuantizerDecoderConvert each index value into quantized output value
dsp.ScalarQuantizerEncoderPerform scalar quantization encoding
dsp.VectorQuantizerDecoderFind vector quantizer codeword for given index value
dsp.VectorQuantizerEncoderPerform vector quantization encoding
Signal Management
dsp.BufferBuffer an input signal
dsp.CounterCount up or down through specified range of numbers
Signal Operations
dsp.ConvolverCompute convolution of two inputs
dsp.DigitalDownConverterDigitally down convert the input signal
dsp.DigitalUpConverterDigitally up convert the input signal
dsp.HDLNCOGenerate real or complex sinusoidal signals — optimized for HDL code generation
dsp.NCOGenerate real or complex sinusoidal signals
dsp.PeakFinderDetermine extrema (maxima or minima) in input signal
dsp.VariableFractionalDelayDelay input by time-varying fractional number of sample periods
dsp.WindowWindow object
dsp.SignalSinkLog MATLAB simulation data
dsp.TimeScopeDisplay time-domain signals
dsp.SignalSource Import a variable from the MATLAB workspace
dsp.SineWaveGenerate discrete sine wave
dsp.AutocorrelatorCompute autocorrelation of vector inputs
dsp.CrosscorrelatorCompute cross-correlation of two inputs
dsp.HistogramOutput histogram of an input or sequence of inputs
dsp.MaximumCompute maximum value in input
dsp.MeanCompute average or mean value in input
dsp.MedianCompute median value in input
dsp.MinimumCompute minimum value in input
dsp.VarianceCompute variance of input or sequence of inputs
dsp.DCTCompute discrete cosine transform (DCT) of input
dsp.FFTCompute fast Fourier transform (FFT) of input
dsp.HDLFFTCompute fast Fourier transform (FFT) of input — optimized for HDL Code generation
dsp.HDLIFFTCompute inverse fast Fourier transform (IFFT) of input — optimized for HDL Code generation
dsp.IDCTCompute inverse discrete cosine transform (IDCT) of input
dsp.IFFTCompute inverse fast Fourier transform (IFFT) of input

Display Fixed-Point Properties for System Objects

You can control whether the software displays fixed-point properties with either of the following commands:

  • matlab.system.showFixedPointProperties

  • matlab.system.hideFixedPointProperties

at the MATLAB® command line. These commands set the Show fixed-point properties display option. You can also set the display option directly via the MATLAB preferences dialog box. Click Preferences on the MATLAB Toolstrip. The Preferences dialog box opens. Scroll down and select System Objects. Finally, select or deselect Show fixed-point properties.

If an object supports fixed-point data processing, its fixed-point properties are active regardless of whether they are displayed or not.

Set System Object Fixed-Point Properties

A number of properties affect the fixed-point data processing used by a System object. Objects perform fixed-point processing and use the current fixed-point property settings when they receive fixed-point input.

You change the values of fixed-point properties in the same way as you change any System object property value. See Configure Components for Your System. You also use the Fixed-Point Designer™ numerictype object to specify the desired data type as fixed-point, the signedness, and the word- and fraction-lengths. System objects support these values of DataTypeMode: Boolean, Double, Single, and Fixed-point: binary point scaling.

In the same way as for blocks, the data type properties of many System objects can set the appropriate word lengths and scalings automatically by using full precision. System objects assume that the target specified on the Configuration Parameters Hardware Implementation target is ASIC/FPGA.

If you have not set the property that activates a dependent property and you attempt to change that dependent property, a warning message displays. For example, for the dsp.FFT object, before you set CustomOutputDataType to numerictype(1,32,30) you must set OutputDataType to 'Custom'.

    Note:   System objects do not support fixed-point word lengths greater than 128 bits.

    For any System object provided in the Toolbox, the fimath settings for any fimath attached to a fi input or a fi property are ignored. Outputs from a System object never have an attached fimath.

Full Precision for Fixed-Point System Objects

FullPrecisionOverride is a convenience property that, when you set to true, automatically sets the appropriate properties for an object to use full-precision to process fixed-point input. For System objects, full precision, fixed-point operation refers to growing just enough additional bits to compute the ideal full precision result. This operation has no minimum or maximum range overflow nor any precision loss due to rounding or underflow. It is also independent of any hardware-specific settings. The data types chosen are based only on known data type ranges and not on actual numeric values. Unlike full precision for dfilt objects, full precision for System objects does not optimize coefficient values.

When you set the FullPrecisionOverride property to true, the other fixed-point properties it controls no longer apply and any of their non-default values are ignored. These properties are also hidden. To specify individual fixed-point properties, you must first set FullPrecisionOverride to false.

Was this topic helpful?