quantize
고정소수점 숫자 양자화
구문
설명
예제
양자화할 입력 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
정의된 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
객체 사용하기
8비트 워드 길이와 4비트 소수부 길이를 갖는 부호 있는 이진 소수점 스케일링된 고정소수점 데이터형을 지정하는 numerictype
객체 ntBP
를 만듭니다.
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
를 기울기-편향 스케일링된 고정소수점 데이터형으로 양자화합니다. 추가로, 올림합니다.
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 = 1×9 int8 row vector
-16 -12 -8 -4 0 4 8 12 16
numerictype
객체 사용하기
8비트 워드 길이와 4비트 소수부 길이를 갖는 부호 있는 이진 소수점 스케일링된 고정소수점 데이터형을 지정하는 numerictype
객체를 만듭니다.
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
처음 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 = 1×9 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 = -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 이전에 개발됨quantize
는 권장되지 않습니다. cast
, zeros
, ones
, eye
또는 subsasgn
을 대신 사용하십시오. quantize
를 제거할 계획은 없습니다.
R2013a부터는 cast
, zeros
, ones
, eye
또는 subsasgn
을 대신 사용하십시오. cast
, zeros
, ones
, eye
, subsasgn
함수는 fi
객체 외에 다른 데이터형을 양자화하고 개별 입력 인수가 아닌 객체의 양자화에 대한 유형 정보를 캡슐화할 수 있습니다.
권장되지 않음 | 권장됨 |
---|---|
x_BP = fi(pi); ntBP = numerictype(1,8,4); yBP = quantize(x_BP,ntBP) yBP = 3.1250 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 8 FractionLength: 4 |
x_BP = fi(pi);
ntBP = fi([],1,8,4);
yBP = cast(x_BP,'like',ntBP) yBP = 3.1250 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 8 FractionLength: 4 |
참고 항목
fi
| numerictype
| cast
| zeros
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)