Main Content

quantize

고정소수점 숫자 양자화

quantize는 권장되지 않습니다. cast, zeros, ones, eye 또는 subsasgn을 대신 사용하십시오. 자세한 내용은 호환성 관련 고려 사항 항목을 참조하십시오.

설명

numerictype 객체를 사용하여 양자화하기

y = quantize(x)는 디폴트 설정을 사용하여 입력 x 값을 양자화합니다.

numerictype, 반올림 방법, 오버플로 동작은 양자화 중에만 적용됩니다. 출력값 y에는 연결된 fimath가 없습니다.

예제

y = quantize(x,nt)x를 지정된 numerictypent로 양자화합니다.

예제

y = quantize(x,nt,rm)은 지정된 반올림 방법 rm을 사용하여 x를 지정된 numerictypent로 양자화합니다.

예제

y = quantize(x,nt,rm,oa)는 지정된 반올림 방법 rm과 오버플로 동작 oa를 사용하여 x를 지정된 numerictypent로 양자화합니다.

숫자형 속성을 지정하여 양자화하기

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)은 반올림 방법 rm을 사용하여 x를 부호의 유무가 s이고 워드 길이가 wl이며 소수부 길이가 fl인 이진 소수점 스케일링된 고정소수점 숫자로 양자화합니다.

예제

yBP = quantize(x,s,wl,fl,rm,oa)는 반올림 방법 rm과 오버플로 동작 oa를 사용하여 x를 부호의 유무가 s이고 워드 길이가 wl이며 소수부 길이가 fl인 이진 소수점 스케일링된 고정소수점 숫자로 양자화합니다.

예제

모두 축소

양자화할 입력 fi 값을 정의합니다.

x_BP = fi(pi)
x_BP = 
    3.1416

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

numerictype 객체 사용하기

8비트 워드 길이와 4비트 소수부 길이를 갖는 부호 있는 고정소수점 데이터형을 지정하는 numerictype 객체를 만듭니다.

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

정의된 numerictypentSB를 사용하여 입력값 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 객체 사용하기

8비트 워드 길이와 4비트 소수부 길이를 갖는 부호 있는 이진 소수점 스케일링된 고정소수점 데이터형을 지정하는 numerictype 객체 ntBP를 만듭니다.

ntBP = numerictype(1,8,4);

정의된 numerictypentBP를 사용하여 입력값 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);

정의된 numerictypentSB를 사용하여 입력값 x_SB를 기울기-편향 스케일링된 고정소수점 데이터형으로 양자화합니다. 추가로, 올림합니다.

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 객체 사용하기

8비트 워드 길이와 4비트 소수부 길이를 갖는 부호 있는 이진 소수점 스케일링된 고정소수점 데이터형을 지정하는 numerictype 객체를 만듭니다.

ntBP = numerictype(1,8,4);

정의된 numerictypentBP를 사용하여 입력값 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

처음 2개 값과 마지막 3개 값은 출력 유형의 표현 가능한 범위를 벗어나므로 래핑됩니다.

입력값에 숫자형 속성 지정하기

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);

정의된 numerictypentSB를 사용하여 입력값 xInt를 기울기-편향 스케일링된 고정소수점 데이터형으로 양자화합니다.

ySB = quantize(xInt,ntSB,'Round','Saturate')
ySB = 
  -13.4000  -11.9814   -7.9877   -3.9939   -0.0002    3.9936    7.9873   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 double형과 fi single형은 입력값으로 허용되지만 양자화되지 않고 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

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

버전 내역

R2006a 이전에 개발됨

모두 확장

참고 항목

| | |