exponenta event banner

квантовать

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

Описание

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

  • numerictype (true,16,15)

  • Floor метод округления

  • Wrap действие переполнения

numerictypeспособ округления и действие переполнения применяются только во время квантования. Результирующее значение, квантованное y, не имеет прикрепленного к нему фимата.

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 ввод указывает знак, который будет использоваться в numerictype (s,16,15). В неопределенных свойствах используются следующие значения по умолчанию:

  • WordLength 16

  • FractionLength 15

  • RoundingMethod Floor

  • OverflowAction Wrap

yBP = quantize(x,s,wl) использует указанную длину слова, wl. Длина дроби по умолчанию равна wl–1. В неопределенных свойствах используются значения по умолчанию.

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

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

пример

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

Примеры

свернуть все

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

ntBP = numerictype(1,8,4);

Определите входные данные.

x_BP = fi(pi)
x_BP = 
    3.1416

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

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

yBP1 = quantize(x_BP,ntBP)
yBP1 = 
    3.1250

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

Создать numerictype объект, ntSB, который задает тип данных смещения уклона.

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

Определите входные данные.

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

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

ntBP = numerictype(1,8,4);

Определите входные данные.

x_SB = fi(rand(5,3),numerictype('Scaling','SlopeBias','Bias',-0.125))
x_SB=5×3 object
    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, ntBP, для квантования входного сигнала, x_SB, к двоичной точке масштабированного типа данных.

yBP2 = quantize(x_SB,ntBP,'Nearest','Saturate')
yBP2=5×3 object
    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

Создать numerictype объект, ntSB, который задает тип данных смещения уклона.

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

Определите входные данные.

x_SB = fi(rand(5,3),numerictype('Scaling','SlopeBias','Bias',-0.125))
x_SB=5×3 object
    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, для квантования входного сигнала, x_SB, к типу данных «наклон-смещение».

ySB2 = quantize(x_SB,ntSB,'Ceiling','Wrap')
ySB2=5×3 object
    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

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

ntBP = numerictype(1,8,4);

Определите входные данные.

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

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

Использовать определенные numerictype, ntBP, для квантования входного значения 'xInt | в двоичную точку масштабированного типа данных .

yBP3 = quantize(xInt,ntBP,'Zero')
yBP3=1×9 object
     0     4    -8    -4     0     4    -8    -4     0

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

Отображение диапазона квантованных выходных данных.

range(yBP3)
ans=1×2 object
   -8.0000    7.9375

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

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

Создать numerictype объект ntSB, который задает тип данных смещения уклона.

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

Определите входные данные.

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

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

Использовать определенные numerictype, ntSB, для квантования входного сигнала, xInt, к типу данных «наклон-смещение».

ySB3 = quantize(xInt,ntSB,'Round','Saturate')
ySB3=1×9 object
  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(ySB3)
ans=1×2 object
  -13.4000   15.3996

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

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

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

свернуть все

Входные данные для квантования. Допустимыми входами являются:

  • Встроенные подписанные или неподписанные целые числа (int8, int16, int32, int64, uint8, uint16, uint32, uint64)

  • Двоичная точка, масштабированная с фиксированной точкой fi

  • Масштаб уклона-смещения с фиксированной точкой fi

Хотя fi doubles и fi singles разрешены в качестве входных данных, они проходят через quantize функция без квантования.

Объект numerictype, определяющий знак, длину слова и длину дроби числа с фиксированной точкой.

Метод округления для использования

Действие, выполняемое при переполнении данных

Подписывается ли номер с фиксированной точкой (true) или без подписи (false)

Длина слова числа с фиксированной точкой

Длина дроби числа с фиксированной точкой

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

свернуть все

Квантованное значение входного значения

Входное квантованное в двоичную точку масштабированное значение

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

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