quantize
고정소수점 숫자 양자화
quantize
는 권장되지 않습니다. cast
, zeros
, ones
, eye
또는 subsasgn
을 대신 사용하십시오. 자세한 내용은 호환성 관련 고려 사항 항목을 참조하십시오.
구문
설명
numerictype
객체를 사용하여 양자화하기
는 디폴트 설정을 사용하여 입력 y
= quantize(x
)x
값을 양자화합니다.
numerictype
, 반올림 방법, 오버플로 동작은 양자화 중에만 적용됩니다. 출력값 y
에는 연결된 fimath
가 없습니다.
숫자형 속성을 지정하여 양자화하기
예제
이진 소수점 스케일링된 데이터를 이진 소수점 스케일링된 데이터로 양자화하기
양자화할 입력 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 = 1x9 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 = 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 = -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
처음 값과 마지막 값은 출력 유형의 표현 가능한 범위의 제한에 있으므로 포화됩니다.
입력 인수
x
— 양자화할 입력 데이터
fi
객체 | 내장 정수형
양자화할 입력 데이터로, 다음으로 지정됩니다.
부호 있는 내장 정수 또는 부호 없는 내장 정수
이진 소수점의 스케일링된 고정소수점
fi
기울기-편향 스케일링된 고정소수점
fi
fi
double형과 fi
single형은 입력값으로 허용되지만 양자화되지 않고 quantize
함수를 통과합니다.
데이터형: int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fi
복소수 지원 여부: 예
nt
— numerictype
객체
numerictype(true,16,15)
(디폴트 값) | numerictype
객체
고정소수점 데이터형을 나타내는 numerictype
객체
rm
— 사용할 반올림 방법
'Floor'
(디폴트 값) | 'Ceiling'
| 'Convergent'
| 'Nearest'
| 'Round'
| 'Zero'
양자화에 사용할 반올림 방법으로, 다음 중 하나로 지정됩니다.
'Ceiling'
— 허용되는 다음 양자화된 값으로 올림합니다.'Convergent'
— 허용되는 가장 가까운 양자화된 값으로 반올림합니다. 허용되는 가장 가까운 양자화된 두 값 사이의 가운데 숫자인 경우에는 반올림했을 때 최하위 비트가 0으로 설정되는 경우에만 반올림합니다.'Floor'
— 허용되는 다음 양자화된 값으로 내림합니다.'Nearest'
— 허용되는 가장 가까운 양자화된 값으로 반올림합니다. 허용되는 가장 가까운 양자화된 두 값 사이의 가운데 숫자인 경우에는 올림합니다.'Round'
— 허용되는 가장 가까운 양자화된 값으로 반올림합니다. 허용되는 가장 가까운 양자화된 두 값 사이의 가운데 숫자인 경우에는 절댓값을 올림합니다.'Zero'
— 음수는 허용되는 다음 양자화된 값으로 올림하고, 양수는 허용되는 다음 양자화된 값으로 내림합니다.
데이터형: char
oa
— 오버플로인 경우 수행할 동작
'Wrap'
(디폴트 값) | 'Saturate'
오버플로인 경우 수행할 동작으로, 다음 값 중 하나로 지정됩니다.
'Saturate'
— 오버플로 시 포화됩니다.양자화할 데이터 값이 숫자형 속성에 따라 표현 가능한 최대 숫자 및 최소 숫자의 범위를 벗어나는 경우, 표현 가능한 최댓값과 최솟값 둘 중에서 더 가까운 값으로 양자화됩니다.
'Wrap'
— 오버플로 시 래핑됩니다.양자화할 데이터 값이 숫자형 속성에 따라 표현 가능한 최대 숫자 및 최소 숫자의 범위를 벗어나는 경우, 표현 가능한 최소 숫자를 기준으로 모듈러 산술 연산을 사용하여 원래 범위로 래핑됩니다.
데이터형: char
s
— 부호의 유무
1
(디폴트 값) | 0
양자화된 고정소수점 숫자의 부호의 유무로, 1
(부호 있음) 또는 0
(부호 없음)으로 지정됩니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
wl
— 워드 길이
16 (디폴트 값) | 양의 정수 스칼라
출력 데이터의 저장된 정수 값의 워드 길이(비트 수)입니다.
fl
— 소수부 길이
wl-1
(디폴트 값) | 정수 스칼라
양자화된 값의 소수부 길이로, 정수 스칼라로 지정됩니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
버전 내역
R2006a 이전에 개발됨R2013a: quantize
는 권장되지 않음
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 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)