exponenta event banner

getFixedPointInfo

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

Описание

пример

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

Примеры

свернуть все

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

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

Создать dsp.CICDecimator объект. Значение по умолчанию для NumSections свойство имеет значение 2. Это значение указывает на наличие двух секций интегратора и гребенки. Векторы WL и FL, возвращаемые 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 (Конструктор фиксированных точек). Укажите этот ввод, когда объект System разблокирован, и FixedPointDataType свойство фильтра CIC имеет значение 'Full precision', 'Minimum section word lengths', или 'Specify word lengths'. Если FixedPointDataType свойство имеет значение 'Specify word and fraction lengths'длины слов и дробей секций фильтра и выходные данные задаются через параметры объекта. В этом случае nt ввод необязателен. Альтернативно, если объект заблокирован, данные с фиксированной точкой, вводимые в объект, определяют длину входного слова и длину дроби. nt в этом случае аргумент также необязателен.

Пример: числовой тип (1,16,15)

Пример: input = fi (randn (16,1), 1,32,30); числовой тип (ввод)

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

свернуть все

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

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

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

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

WLsection = WLinput + NumHWLoutput = WLinput + NumSect

где,

  • WLsection - длина слова раздела фильтра CIC.

  • WLoutput - длина слова выходных данных.

  • WLinput - длина входных данных.

  • NumSect -- Количество секций фильтра CIC, указанных через NumSections собственность.

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

Минимальная длина слова сечения

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

WLsection = WLinput + 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', длины разрезов и выходных дробей вычисляются с использованием следующего уравнения:

FLsection = WLsection (WLinput − FLinput + NumSect) FLoutput = WLoutput − (WLinput FLinput + NumSect)

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

Минимальная длина слова сечения

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

FLsection = WLsection (WLinput − FLinput + NumSect) FLoutput = WLoutput − (WLinput FLinput + NumSect)

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

Указание длины слов и дробей

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

Задание длины слова

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

FLsection = WLsection (WLinput − FLinput + NumSect) FLoutput = WLoutput − (WLinput FLinput + NumSect)

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

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

Ссылки

[1] Хогенауэр, Е. Б. «Экономичный класс цифровых фильтров для децимации и интерполяции». Транзакции IEEE по акустике, обработке речи и сигналов. Том 29, номер 2, 1981, 155-162.

[2] Цифровая обработка сигналов Meyer-Baese, U. с помощью программируемых на местах логических матриц. Нью-Йорк: Спрингер, 2001.

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

См. также

Функции

Объекты

Представлен в R2018a