getFixedPointInfo

Получите слово фиксированной точки и дробные длины

Синтаксис

[WLs, FLs] = getFixedPointInfo(cicObj,nt)

Описание

пример

[WLs, FLs] = getFixedPointInfo(cicObj,nt) возвращает все размеры слова и дробные длины разделов фиксированной точки и вывод Системных объектов CIC-фильтра, dsp.CICDecimator и dsp.CICInterpolator, на основе входа числовой тип, nt. Для заблокированных объектов или когда свойство FixedPointDataType разблокированного объекта CIC-фильтра установлено в 'Specify word and fraction lengths', вход, числовой аргумент типа, nt, является дополнительным.

Примеры

свернуть все

Используя функцию getFixedPointInfo, можно определить размеры слова и фракционировать длины разделов фиксированной точки и вывод Системных объектов dsp.CICInterpolator и dsp.CICDecimator. Типы данных разделов фильтра и вывода зависят от свойства FixedPointDataType Системы фильтра object™.

Полная точность

Создайте объект dsp.CICDecimator. Значение по умолчанию свойства NumSections равняется 2. Это значение указывает, что существует два интегратора и расчесывают разделы. WLs и векторы FLs, возвращенные функцией getFixedPointInfo, содержат пять элементов каждый. Первые два элемента представляют два раздела интегратора. Третьи и четвертые элементы представляют два раздела расчески. Последний элемент представляет фильтр вывод.

cicD = dsp.CICDecimator
cicD = 
  dsp.CICDecimator with properties:

      DecimationFactor: 2
     DifferentialDelay: 1
           NumSections: 2
    FixedPointDataType: 'Full precision'

По умолчанию свойство FixedPointDataType объекта установлено в 'Full precision'. Вызывая функцию getFixedPointInfo на этом объекте с входом числовой тип, nt, приводит к следующему размеру слова и дробным векторам длины.

nt = numerictype(1,16,15)
nt =


          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 15
[WLs,FLs] = getFixedPointInfo(cicD,nt) %#ok
WLs = 1×5

    18    18    18    18    18

FLs = 1×5

    15    15    15    15    15

Для получения дополнительной информации о том, как размеры слова и дробные длины вычисляются, см. описание для Выходных аргументов.

Если вы блокируете объект cicD путем передачи входа его алгоритму, вы не должны передавать аргумент nt функции getFixedPointInfo.

input = int64(randn(8,1))
input = 8x1 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) %#ok
WLs = 1×5

    66    66    66    66    66

FLs = 1×5

     0     0     0     0     0

Вывод и размеры слова раздела являются суммой входного размера слова, 64 в этом случае, и количество разделов, 2. Вывод и длины части раздела 0, поскольку вход является встроенным целым числом.

Минимальные размеры слова раздела

Выпустите объект и измените свойство FixedPointDataType на 'Minimum section word lengths'. Определите раздел и выведите информацию о фиксированной точке, когда вход будет данными фиксированной точки, 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)) %#ok
WLs = 1×5

    26    26    26    26    32

FLs = 1×5

    15    15    15    15    21

Задайте слово и дробные длины

Измените свойство FixedPointDataType на 'Specify word and fraction lengths'. Определите информацию о фиксированной точке с помощью функции getFixedPointInfo.

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 16 16 16]
    SectionFractionLengths: 0
          OutputWordLength: 32
      OutputFractionLength: 0

[WLs, FLs] = getFixedPointInfo(cicD,numerictype(inputF)) %#ok
WLs = 1×5

    16    16    16    16    32

FLs = 1×5

     0     0     0     0     0

Раздел и выходные размеры слова и дробные длины присвоены согласно соответствующим свойствам фиксированной точки объекта cicD. Эти значения не определяются входом числовой тип. Чтобы подтвердить, вызовите функцию getFixedPointInfo, не передавая входной параметр numerictype.

[WLs, FLs] = getFixedPointInfo(cicD) %#ok
WLs = 1×5

    16    16    16    16    32

FLs = 1×5

     0     0     0     0     0

Задайте размеры слова

Чтобы задать размеры слова раздела фильтра и вывести, установите свойство FixedPointDataType на '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 16 16 16]
      OutputWordLength: 32

Функция getFixedPointInfo требует входа числовой тип, потому что та информация используется, чтобы вычислить длины части раздела и слова.

[WLs, FLs] = getFixedPointInfo(cicD,numerictype(inputF))
WLs = 1×5

    16    16    16    16    32

FLs = 1×5

     5     5     5     5    21

Для получения дополнительной информации о том, как функция вычисляет слово и дробные длины, см. описание для Выходных аргументов.

Входные параметры

свернуть все

Системный объект CIC-фильтра, заданный или как dsp.CICDecimator или как Системный объект dsp.CICInterpolator.

Входные данные числовой тип, заданный как объект numerictype. Задайте этот вход, когда Системный объект разблокирован, и свойство FixedPointDataType CIC-фильтра установлено в 'Full precision', 'Minimum section word lengths' или 'Specify word lengths'. Если свойство FixedPointDataType установлено в 'Specify word and fraction lengths', слово и дробные длины разделов фильтра и вывода заданы через параметры объекта. В этом случае вход nt является дополнительным. Также, если объект заблокирован, ввод данных фиксированной точки к объекту задает входной размер слова и дробную длину. Аргумент nt в этом случае является также дополнительным.

Пример: numerictype (1,16,15)

Пример: введите = fi (randn (16,1), 1,32,30); numerictype (вводится)

Выходные аргументы

свернуть все

Разделите и выведите размеры слова, возвращенные как вектор - строка. Первые 2 × элемента NumSections в векторе - строке соответствуют размерам слова интегратора и расчесывают разделы CIC-фильтра. Значение свойства NumSections задает количество разделов или в части интегратора или в части расчески фильтра. Последний элемент в векторе соответствует размеру слова объектного вывода.

Размер слова разделов CIC-фильтра и объектного вывода зависит от свойства FixedPointDataType объекта CIC-фильтра.

Полная точность

Когда свойство FixedPointDataType объекта CIC-фильтра установлено в 'Full precision', раздел и выходные размеры слова вычисляются с помощью следующего уравнения:

WLраздел=WLвходной параметр+NumSectWLвывод =WLвходной параметр+NumSect

где,

  • Раздел WL – Размер слова раздела CIC-фильтра.

  • WL вывод – Размер слова выходных данных.

  • Вход WL – Размер слова входных данных.

  • NumSect – Количество разделов CIC-фильтра задано через свойство NumSections.

Для заблокированных объектов вход WL наследован от ввода данных, который вы передаете объектному алгоритму. Для разблокированных объектов вход WL наследован от аргумента nt.

Минимальные размеры слова раздела

Когда свойство FixedPointDataType установлено в 'Minimum section word lengths', размер слова раздела дан следующим уравнением:

WLраздел=WLвходной параметр+NumSect

Выходной размер слова является значением, которое вы задаете в свойстве OutputWordLength объекта CIC-фильтра.

Задайте слово и дробные длины

Когда свойство FixedPointDataType установлено в 'Specify word and fraction lengths', размеры слова раздела и выходной размер слова являются значениями, которые вы задаете в свойствах SectionWordLengths и OutputWordLength объекта CIC-фильтра.

Задайте размеры слова

Когда свойство FixedPointDataType установлено в 'Specify word lengths', размеры слова раздела и выходной размер слова являются значениями, которые вы задаете в свойствах SectionWordLengths и OutputWordLength объекта CIC-фильтра.

Пример: [20 20 20 20 20]

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Разделите и выведите дробные длины, возвращенные как вектор - строка. Первые 2 × элемента NumSections в векторе - строке соответствуют дробным длинам интегратора и расчесывают разделы CIC-фильтра. Значение свойства NumSections задает количество разделов или в части интегратора или в части расчески фильтра. Последний элемент в векторе соответствует дробной продолжительности объектного вывода.

Дробная длина разделов CIC-фильтра и объектного вывода зависит от свойства FixedPointDataType объекта CIC-фильтра.

Полная точность

Когда свойство FixedPointDataType объекта CIC-фильтра установлено в 'Full precision', раздел и вывело дробные длины, вычисляются с помощью следующего уравнения:

FLраздел=WLраздел(WLвходной параметрFLвходной параметр+NumSect)FLвывод =WLвывод (WLвходной параметрFLвходной параметр+NumSect)

Для входных параметров встроенных целочисленных типов данных раздел и выходные длины части 0.

Минимальные размеры слова раздела

Когда свойство FixedPointDataType объекта CIC-фильтра установлено в 'Minimum section word lengths', раздел и вывело дробные длины, раздел FL и FL, вывод дан следующим уравнением:

FLраздел=WLраздел(WLвходной параметрFLвходной параметр+NumSect)FLвывод =WLвывод (WLвходной параметрFLвходной параметр+NumSect)

Для входных параметров встроенных целочисленных типов данных раздел и выходные длины части 0.

Задайте слово и дробные длины

Когда свойство FixedPointDataType объекта CIC-фильтра установлено в 'Specify word and fraction lengths', раздел и вывело дробные длины, значения, которые вы задаете в свойствах SectionFractionLengths и OutputFractionLength.

Задайте размеры слова

Когда свойство FixedPointDataType объекта CIC-фильтра установлено в 'Specify word lengths', раздел и вывело дробные длины, раздел FL и FL, вывод дан следующим уравнением:

FLраздел=WLраздел(WLвходной параметрFLвходной параметр+NumSect)FLвывод =WLвывод (WLвходной параметрFLвходной параметр+NumSect)

Пример: [12 12 12 12 12]

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Ссылки

[1] Hogenauer, E.B. "Экономичный класс цифровых фильтров для десятикратного уменьшения и интерполяции". Транзакции IEEE на акустике, речи и обработке сигналов. Объем 29, номер 2, 1981, 155-162.

[2] Мейер-Бэезе, U. Цифровая обработка сигналов с программируемыми пользователем вентильными матрицами. Нью-Йорк: Спрингер, 2001.

[3] Харрис, Фредерик Дж. Многоскоростная обработка сигналов для систем связи. Индианаполис, IN: PTR Prentice Hall, 2004.

Смотрите также

Функции

Системные объекты

Введенный в R2018a