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