exponenta event banner

quantize

Квантуйте числа фиксированной точки

quantize не рекомендуется. Использование cast, zeros, ones, eye, или subsasgn вместо этого. Для получения дополнительной информации см. Вопросы совместимости.

Описание

Квантуйте Используя numerictype Объект

y = quantize(x) квантует вход x значения с помощью настроек по умолчанию.

numerictype, округление метода и действия переполнения применяется только во время квантования. Выход y не имеет присоединенного fimath.

пример

y = quantize(x,nt) квантует x к заданному numerictype, nt.

пример

y = quantize(x,nt,rm) квантует x к заданному numerictype, nt с помощью заданного метода округления, rm.

пример

y = quantize(x,nt,rm,oa) квантует x к заданному numerictype, nt с помощью заданного метода округления, rm, и действие переполнения, oa.

Квантуйте путем определения числовых свойств типа

yBP = quantize(x,s) квантует x к двоичной точке масштабировал номер фиксированной точки с s со знаком.

yBP = quantize(x,s,wl) квантует x к двоичной точке масштабировал номер фиксированной точки с s со знаком и размер слова wl.

пример

yBP = quantize(x,s,wl,fl) квантует x к двоичной точке масштабировал номер фиксированной точки с s со знаком, размер слова wl, и дробная длина fl.

пример

yBP = quantize(x,s,wl,fl,rm) квантует x к двоичной точке масштабировал номер фиксированной точки с s со знаком, размер слова wl, и дробная длина fl использование округления метода rm.

пример

yBP = quantize(x,s,wl,fl,rm,oa) квантует x к двоичной точке масштабировал номер фиксированной точки с s со знаком, размер слова wl, и дробная длина fl использование округления метода rm и действие переполнения oa.

Примеры

свернуть все

Задайте вход fi значение, чтобы квантовать.

x_BP = fi(pi)
x_BP = 
    3.1416

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 13

Используйте numerictype Объект

Создайте numerictype объект, который задает тип данных с фиксированной точкой со знаком с 8-битным размером слова и 4-битной дробной длиной.

ntBP = numerictype(1,8,4);

Используйте заданный numerictype объект ntBP квантовать вход x_BP к двоичной точке масштабировал тип данных с фиксированной точкой.

yBP1 = quantize(x_BP,ntBP)
yBP1 = 
    3.1250

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 8
        FractionLength: 4

Задайте числовые свойства типа во входе

yBP2 = quantize(x_BP,1,8,4)
yBP2 = 
    3.1250

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 8
        FractionLength: 4

Создайте numerictype объект, который задает наклонное смещение, масштабировал тип данных с фиксированной точкой.

ntSB = numerictype('Scaling','SlopeBias',...
      'SlopeAdjustmentFactor',1.8,...
      'Bias',1,...
      'FixedExponent',-12);

Задайте вход fi значение, чтобы квантовать.

x_BP = fi(pi)
x_BP = 
    3.1416

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 13

Используйте заданный numerictype ntSB квантовать вход x_BP к наклонному смещению масштабировал тип данных с фиксированной точкой.

ySB1 = quantize(x_BP, ntSB)
ySB1 = 
    3.1415

          DataTypeMode: Fixed-point: slope and bias scaling
            Signedness: Signed
            WordLength: 16
                 Slope: 0.000439453125
                  Bias: 1

Задайте вход fi значения, чтобы квантовать.

x_SB = fi(rand(5,3),numerictype('Scaling','SlopeBias','Bias',-0.125))
x_SB = 
    0.8147    0.0975    0.1576
    0.8750    0.2785    0.8750
    0.1270    0.5469    0.8750
    0.8750    0.8750    0.4854
    0.6324    0.8750    0.8003

          DataTypeMode: Fixed-point: slope and bias scaling
            Signedness: Signed
            WordLength: 16
                 Slope: 3.0517578125e-5
                  Bias: -0.125

Используйте numerictype Объект

Создайте numerictype объект ntBP это указывает, что двоичная точка со знаком масштабировала тип данных с фиксированной точкой с 8-битным размером слова и 4-битной дробной длиной.

ntBP = numerictype(1,8,4);

Используйте заданный numerictype ntBP квантовать вход x_SB к двоичной точке масштабировал тип данных с фиксированной точкой. Кроме того, вокруг к самому близкому и насыщают на переполнении.

yBP1 = quantize(x_SB,ntBP,'Nearest','Saturate')
yBP1 = 
    0.8125    0.1250    0.1875
    0.8750    0.2500    0.8750
    0.1250    0.5625    0.8750
    0.8750    0.8750    0.5000
    0.6250    0.8750    0.8125

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 8
        FractionLength: 4

Задайте числовые свойства типа во входе

yBP2 = quantize(x_SB,1,8,4,'Nearest','Saturate')
yBP2 = 
    0.8125    0.1250    0.1875
    0.8750    0.2500    0.8750
    0.1250    0.5625    0.8750
    0.8750    0.8750    0.5000
    0.6250    0.8750    0.8125

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 8
        FractionLength: 4

Задайте вход fi значения, чтобы квантовать.

x_SB = fi(rand(5,3),numerictype('Scaling','SlopeBias','Bias',-0.125))
x_SB = 
    0.8147    0.0975    0.1576
    0.8750    0.2785    0.8750
    0.1270    0.5469    0.8750
    0.8750    0.8750    0.4854
    0.6324    0.8750    0.8003

          DataTypeMode: Fixed-point: slope and bias scaling
            Signedness: Signed
            WordLength: 16
                 Slope: 3.0517578125e-5
                  Bias: -0.125

Создайте numerictype объект, который задает наклонное смещение, масштабировал тип данных с фиксированной точкой.

ntSB = numerictype('Scaling','SlopeBias', ...
      'SlopeAdjustmentFactor',1.8,'Bias',...
      1,'FixedExponent',-12);

Используйте заданный numerictype ntSB квантовать вход x_SB к наклонному смещению масштабировал тип данных с фиксированной точкой. Additionall, вокруг к потолку.

ySB2 = quantize(x_SB,ntSB,'Ceiling')
ySB2 = 
    0.8150    0.0978    0.1580
    0.8752    0.2789    0.8752
    0.1272    0.5469    0.8752
    0.8752    0.8752    0.4854
    0.6326    0.8752    0.8005

          DataTypeMode: Fixed-point: slope and bias scaling
            Signedness: Signed
            WordLength: 16
                 Slope: 0.000439453125
                  Bias: 1

Задайте входные значения, чтобы квантовать.

xInt = int8(-16:4:16)
xInt = 1x9 int8 row vector

   -16   -12    -8    -4     0     4     8    12    16

Используйте numerictype Объект

Создайте numerictype объект, который задает двоичную точку со знаком, масштабировал тип данных с фиксированной точкой с 8-битным размером слова и 4-битной дробной длиной.

ntBP = numerictype(1,8,4);

Используйте заданный numerictype ntBP квантовать вход xInt к двоичной точке масштабировал тип данных с фиксированной точкой.

yBP1 = quantize(xInt,ntBP,'Zero')
yBP1 = 
     0     4    -8    -4     0     4    -8    -4     0

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 8
        FractionLength: 4

Покажите область значений квантованного выхода.

range(yBP1)
ans = 
   -8.0000    7.9375

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 8
        FractionLength: 4

Первые два и последние три значения перенесены, потому что они находятся вне представимой области значений выходного типа.

Задайте числовые свойства типа во входе

yBP2 = quantize(xInt,1,8,4,'Zero')
yBP2 = 
     0     4    -8    -4     0     4    -8    -4     0

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 8
        FractionLength: 4

Задайте входные значения, чтобы квантовать.

xInt = int8(-16:4:16)
xInt = 1x9 int8 row vector

   -16   -12    -8    -4     0     4     8    12    16

Создайте numerictype объект, который задает наклонное смещение, масштабировал тип данных с фиксированной точкой.

ntSB = numerictype('Scaling','SlopeBias', ...
      'SlopeAdjustmentFactor',1.8,'Bias',...
      1,'FixedExponent',-12);

Используйте заданный numerictype ntSB квантовать вход xInt к наклонному смещению масштабировал тип данных с фиксированной точкой.

ySB = quantize(xInt,ntSB,'Round','Saturate')
ySB = 
  Columns 1 through 7
  -13.4000  -11.9814   -7.9877   -3.9939   -0.0002    3.9936    7.9873
  Columns 8 through 9
   11.9811   15.3996

          DataTypeMode: Fixed-point: slope and bias scaling
            Signedness: Signed
            WordLength: 16
                 Slope: 0.000439453125
                  Bias: 1

Покажите область значений квантованного выхода.

range(ySB)
ans = 
  -13.4000   15.3996

          DataTypeMode: Fixed-point: slope and bias scaling
            Signedness: Signed
            WordLength: 16
                 Slope: 0.000439453125
                  Bias: 1

Первые и последние значения насыщают, потому что они - в пределах его представимая область значений выходного типа.

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

свернуть все

Входные данные, чтобы квантовать в виде:

  • Встроенные целые числа со знаком или беззнаковое целое

  • Двоичная точка масштабировала фиксированную точку fi

  • Наклонное смещение масштабировало фиксированную точку fi

Несмотря на то, что fi удваивается и fi одиночные игры позволены как входные параметры, они проходят quantize функция без того, чтобы быть квантованным.

Типы данных: int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi
Поддержка комплексного числа: Да

numerictype объект, который описывает тип данных с фиксированной точкой.

Округление метода, чтобы использовать для квантования в виде одного из следующего:

  • 'Ceiling' — Окружите к следующему допустимому квантованному значению.

  • 'Convergent' — Вокруг к самому близкому допустимому квантованному значению. Числа, которые являются точно промежуточными между двумя самыми близкими допустимыми квантованными значениями, окружены, только если младший значащий бит после округления был бы установлен в 0.

  • 'Floor' — Округлите в меньшую сторону до следующего допустимого квантованного значения.

  • 'Nearest' — Вокруг к самому близкому допустимому квантованному значению. Окружены числа, которые являются промежуточными между двумя самыми близкими допустимыми квантованными значениями.

  • 'Round' — Вокруг к самому близкому допустимому квантованному значению. Числа, которые являются промежуточными между двумя самыми близкими допустимыми квантованными значениями, окружены в абсолютном значении.

  • 'Zero' — Округлите в большую сторону отрицательные числа и положительные числа вниз к следующему допустимому квантованному значению.

Типы данных: char

Действие, чтобы взять переполнение в виде одного из этих значений:

  • 'Saturate' — Переполнение насыщает.

    Когда значения данных, которые будут квантованы, лежат вне области значений самых больших и самых маленьких представимых чисел, как задано числовыми свойствами типа, эти значения квантуются к значению или самого большого или наименьшего представимого значения, в зависимости от которого является самым близким.

  • 'Wrap' — Переполнение переносится.

    Когда значения данных, которые будут квантованы, лежат вне области значений самых больших и самых маленьких представимых чисел, как задано числовыми свойствами типа, эти значения перенесены назад в ту область значений с помощью арифметики в остаточных классах относительно самого маленького представимого номера.

Типы данных: char

Со знаком из квантованного номера фиксированной точки в виде 1 (подписанный) или 0 (без знака).

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

Размер слова сохраненного целочисленного значения выходных данных, в битах.

Дробная продолжительность квантованного значения в виде скалярного целого числа.

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

Вопросы совместимости

развернуть все

Не рекомендуемый запуск в R2013a

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

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

| | |

Представлено до R2006a