getFixedPointInfo

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

Описание

пример

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

Примеры

свернуть все

Используя getFixedPointInfo функция, можно определить размеры слова и фракционировать длины разделов фиксированной точки и выход dsp.CICDecimator и dsp.CICInterpolator Системные объекты. Типы данных разделов фильтра и выхода зависят от 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=4×1 object
     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=8×2 object
    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