getFixedPointInfo
Get fixed-point word and fraction lengths
Description
[
                returns all the word lengths and fraction lengths of the fixed-point sections and
                the output of the CIC filter System objects, WLs, FLs] = getFixedPointInfo(cicObj,nt)dsp.CICDecimator and dsp.CICInterpolator, based on the input numeric type,
                    nt. For locked objects or when the
                    FixedPointDataType property of the unlocked CIC filter
                object is set to 'Specify word and fraction lengths', the input
                numeric type argument, nt, is optional.
Examples
Using the getFixedPointInfo function, you can determine the word lengths and fraction lengths of the fixed-point sections and the output of the dsp.CICDecimator and dsp.CICInterpolator System objects. The data types of the filter sections and the output depend on the FixedPointDataType property of the filter System object™.
Full precision
Create a dsp.CICDecimator object. The default value of the NumSections property is 2. This value indicates that there are two integrator and comb sections. The WLs and FLs vectors returned by the getFixedPointInfo function contain five elements each. The first two elements represent the two integrator sections. The third and fourth elements represent the two comb sections. The last element represents the filter output. 
cicD = dsp.CICDecimator
cicD = 
  dsp.CICDecimator with properties:
      DecimationFactor: 2
     DifferentialDelay: 1
           NumSections: 2
    FixedPointDataType: 'Full precision'
By default, the FixedPointDataType property of the object is set to "Full precision". Calling the getFixedPointInfo function on this object with the input numeric type, nt, yields the following word length and fraction length vectors.
nt = numerictype(1,16,15)
nt =
          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 15
[WLs,FLs] = getFixedPointInfo(cicD,nt) %#okWLs = 1×5
    18    18    18    18    18
FLs = 1×5
    15    15    15    15    15
For details on how the word lengths and fraction lengths are computed, see the description for Output Arguments.
If you lock the cicD object by passing an input to its algorithm, you do not need to pass the nt argument to the getFixedPointInfo function.
input = int64(randn(8,1))
input = 8×1 int64 column vector
    1
    2
   -2
    1
    0
   -1
    0
    0
output = cicD(input)
output = 
     0
     1
     3
     0
          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 66
        FractionLength: 0
[WLs,FLs] = getFixedPointInfo(cicD) %#okWLs = 1×5
    66    66    66    66    66
FLs = 1×5
     0     0     0     0     0
The output and section word lengths are the sum of input word length, 64 in this case, and the number of sections, 2. The output and section fraction lengths are 0 since the input is a built-in integer.
Minimum section word lengths
Release the object and change the FixedPointDataType property to "Minimum section word lengths". Determine the section and output fixed-point information when the input is fixed-point data, fi(randn(8,2),1,24,15).
release(cicD);
cicD.FixedPointDataType = "Minimum section word lengths"cicD = 
  dsp.CICDecimator with properties:
      DecimationFactor: 2
     DifferentialDelay: 1
           NumSections: 2
    FixedPointDataType: 'Minimum section word lengths'
      OutputWordLength: 32
inputF = fi(randn(8,2),1,24,15)
inputF = 
    3.5784   -0.1241
    2.7694    1.4897
   -1.3499    1.4090
    3.0349    1.4172
    0.7254    0.6715
   -0.0630   -1.2075
    0.7148    0.7172
   -0.2050    1.6302
          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 24
        FractionLength: 15
[WLs, FLs] = getFixedPointInfo(cicD,numerictype(inputF)) %#okWLs = 1×5
    26    26    26    26    32
FLs = 1×5
    15    15    15    15    21
Specify word and fraction lengths
Change the FixedPointDataType property to "Specify word and fraction lengths". Determine the fixed-point information using the getFixedPointInfo function.
cicD.FixedPointDataType = "Specify word and fraction lengths"cicD = 
  dsp.CICDecimator with properties:
          DecimationFactor: 2
         DifferentialDelay: 1
               NumSections: 2
        FixedPointDataType: 'Specify word and fraction lengths'
        SectionWordLengths: 16
    SectionFractionLengths: 0
          OutputWordLength: 32
      OutputFractionLength: 0
[WLs, FLs] = getFixedPointInfo(cicD,numerictype(inputF)) %#okWLs = 1×5
    16    16    16    16    32
FLs = 1×5
     0     0     0     0     0
The section and output word lengths and fraction lengths are assigned as per the respective fixed-point properties of the cicD object. These values are not determined by the input numeric type. To confirm, call the getFixedPointInfo function without passing the numerictype input argument.
[WLs, FLs] = getFixedPointInfo(cicD) %#okWLs = 1×5
    16    16    16    16    32
FLs = 1×5
     0     0     0     0     0
Specify word lengths
To specify the word lengths of the filter section and output, set the FixedPointDataType property to "Specify word lengths".
cicD.FixedPointDataType = "Specify word lengths"cicD = 
  dsp.CICDecimator with properties:
      DecimationFactor: 2
     DifferentialDelay: 1
           NumSections: 2
    FixedPointDataType: 'Specify word lengths'
    SectionWordLengths: 16
      OutputWordLength: 32
The getFixedPointInfo function requires the input numeric type because that information is used to compute the section and word fraction lengths. 
[WLs, FLs] = getFixedPointInfo(cicD,numerictype(inputF))
WLs = 1×5
    16    16    16    16    32
FLs = 1×5
     5     5     5     5    21
For more details on how the function computes the word and fraction lengths, see the description for Output Arguments.
Input Arguments
CIC filter System object, specified as either a dsp.CICDecimator or dsp.CICInterpolator
                        System object.
Input data numeric type, specified as a numerictype (Fixed-Point Designer) object.
                        Specify this input when the System object is unlocked and the FixedPointDataType
                        property of the CIC filter is set to 'Full precision',
                            'Minimum section word lengths', or 'Specify
                            word lengths'. If the FixedPointDataType
                        property is set to 'Specify word and fraction lengths',
                        the word and fraction lengths of the filter sections and the output are
                        specified through the object parameters. In this case, the
                            nt input is optional. Alternatively, if the object
                        is locked, the fixed-point data input to the object specifies the input word
                        length and fraction length. The nt argument in this
                        case is also optional. 
Example: numerictype(1,16,15)
Example: input = fi(randn(16,1),1,32,30); numerictype(input)
Output Arguments
Section and output word lengths, returned as a row vector. The first 2 ×
                            NumSections elements in the row vector correspond
                        to the word lengths of the integrator and comb sections of the CIC filter.
                        The value of the NumSections property specifies the
                        number of sections in either the integrator part or the comb part of the
                        filter. The last element in the vector corresponds to the word length of the
                        object output.
The word length of the CIC filter sections and the object output depend on
                        the FixedPointDataType property of the CIC filter
                        object.
Full precision
When the FixedPointDataType property of the CIC
                        filter object is set to 'Full precision', the section
                        and output word lengths are computed using the following equation:
where,
- WLsection –– Word length of the CIC filter section. 
- WLoutput –– Word length of the output data. 
- WLinput –– Word length of the input data. 
- NumSect –– Number of CIC filter sections specified through the - NumSectionsproperty.
For locked objects, WLinput is
                        inherited from the data input you pass to the object algorithm. For unlocked
                        objects, the WLinput is inherited
                        from the nt argument.
Minimum section word lengths
When the FixedPointDataType property is set to
                            'Minimum section word lengths', the section word
                        length is given by the following equation:
The output word length is the value you specify in
                            OutputWordLength property of the CIC filter
                        object.
Specify word and fraction lengths
When the FixedPointDataType property is set to
                            'Specify word and fraction lengths', the section
                        word lengths and output word length are the values you specify in the
                            SectionWordLengths and
                            OutputWordLength properties of the CIC filter
                        object.
Specify word lengths
When the FixedPointDataType property is set to
                            'Specify word lengths', the section word lengths
                        and the output word length are the values you specify in the
                            SectionWordLengths and
                            OutputWordLength properties of the CIC filter
                        object.
Example: [20 20 20 20 20]
Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Section and output fraction lengths, returned as a row vector. The first 2
                        × NumSections elements in the row vector correspond to
                        the fraction lengths of the integrator and comb sections of the CIC filter.
                        The value of NumSections property specifies the number
                        of sections in either the integrator part or the comb part of the filter.
                        The last element in the vector corresponds to the fraction length of the
                        object output.
The fraction length of the CIC filter sections and the object output
                        depend on the FixedPointDataType property of the CIC
                        filter object.
Full precision
When the FixedPointDataType property of the CIC
                        filter object is set to 'Full precision', the section
                        and output fraction lengths are computed using the following
                        equation:
For inputs of built-in integer data types, the section and output fraction lengths are 0.
Minimum section word lengths
When the FixedPointDataType property of the CIC
                        filter object is set to 'Minimum section word lengths',
                        the section and output fraction lengths,
                            FLsection and
                            FLoutput are given by the
                        following equation:
For inputs of built-in integer data types, the section and output fraction lengths are 0.
Specify word and fraction lengths
When the FixedPointDataType property of the CIC
                        filter object is set to 'Specify word and fraction
                            lengths', the section and output fraction lengths are the
                        values you specify in the SectionFractionLengths and
                            OutputFractionLength properties.
Specify word lengths
When the FixedPointDataType property of the CIC
                        filter object is set to 'Specify word lengths', the
                        section and output fraction lengths,
                            FLsection and
                            FLoutput are given by the
                        following equation: 
Example: [12 12 12 12 12]
Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
References
[1] Hogenauer, E.B. "An Economical Class of Digital Filters for Decimation and Interpolation." IEEE Transactions on Acoustics, Speech and Signal Processing. Volume 29, Number 2, 1981, 155–162.
[2] Meyer-Baese, U. Digital Signal Processing with Field Programmable Gate Arrays. New York: Springer, 2001.
[3] Harris, Fredric J. Multirate Signal Processing for Communication Systems. Indianapolis, IN: Prentice Hall PTR, 2004.
Version History
Introduced in R2018a
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)