Main Content

스케일링, 정밀도 및 범위

고정소수점 값의 동적 범위는 이에 상응하는 워드 크기를 갖는 부동소수점 값보다 작습니다. 오버플로가 발생하지 않도록 방지하고 양자화 오차를 최소화하려면 고정소수점 숫자를 스케일링해야 합니다.

스케일링

Fixed-Point Designer™를 사용하면, 이진 소수점으로 정의된 스케일링을 갖는 고정소수점 데이터형을 선택하거나 필요에 맞는 임의의 선형 스케일링을 선택할 수 있습니다.

기울기 및 편향 스케일링

고정소수점 숫자는 기울기 및 편향의 일반 인코딩 체계로 표현할 수 있습니다. 기울기 편향 스케일링된 숫자의 실제 값은 다음과 같이 표현될 수 있습니다.

real-world value=(slope×integer)+bias

slope=slope adjustment factor×2fixed exponent

기울기와 편향을 함께 써서 고정소수점 숫자의 스케일링을 표현합니다. 어떤 숫자의 편향이 0이면 기울기만 스케일링에 영향을 줍니다. 이진 소수점 위치로만 스케일링되는 고정소수점 숫자는 편향 0, 기울기 조정 인자 1의 기울기 편향으로 표현되는 숫자와 동일합니다. 이를 이진 소수점 스케일링 또는 2의 거듭제곱 스케일링이라고 합니다.

이진 소수점 스케일링

이진 소수점 스케일링 또는 2의 거듭제곱 스케일링에서는 고정소수점 워드 내에서 이진 소수점을 움직입니다. 이 스케일링 모드의 이점은 프로세서 산술 연산 횟수가 최소화된다는 것입니다. 이진 소수점 스케일링된 숫자의 실제 값은 다음과 같이 표현될 수 있습니다.

real world value=2fraction length×integer

정밀도

고정소수점 숫자의 정밀도는 해당 데이터형과 스케일링으로 표현 가능한 연속된 값들 간의 차이로, 이는 최하위 비트 값과 같습니다. 최하위 비트 값, 따라서 숫자의 정밀도는 소수부 비트 수에 의해 결정됩니다. 고정소수점 값은 해당 데이터형과 스케일링의 정밀도의 절반 이내로 표현할 수 있습니다.

예를 들어 이진 소수점 오른쪽에 4비트를 가진 고정소수점의 표현은 2-4 또는 0.0625의 정밀도를 가지며 이것이 최하위 비트 값입니다. 이 데이터형과 스케일링의 범위 내에 있는 어떠한 숫자도 2-4)/2 또는 0.03125 내로 표현될 수 있으며 이것이 반정밀도입니다.

반올림 방법

숫자를 유한 정밀도로 표현하면 가능한 범위 내의 숫자 전체를 정확히 표현할 수 없습니다. 숫자를 지정된 데이터형과 스케일링으로 정확히 표현할 수 없으면, 반올림 방법을 사용해서 해당 값을 표현 가능한 숫자로 형변환할 수 있습니다. 반올림 연산 시 정밀도 손실이 항상 발생하지만, 반올림 연산의 비용과 그로 인해 생기는 편향의 정도는 반올림 방법에 따라 다릅니다. Fixed-Point Designer에서 사용할 수 있는 반올림 방법에 대한 자세한 내용은 반올림 방법 (Fixed-Point Designer) 항목을 참조하십시오.

범위

범위는 고정소수점 데이터형과 스케일링으로 표현할 수 있는 숫자의 범위입니다. 워드 길이 ws, 스케일링 S, 편향 B인 부호 없는 2의 보수 고정소수점 숫자에 대해 표현 가능한 숫자 범위는 다음과 같습니다.

다음 그림은 부호 있는 2의 보수 고정소수점 숫자에 대해 표현 가능한 숫자의 범위를 보여줍니다.

어떤 데이터형이든 부호 있는 고정소수점 숫자와 부호 없는 고정소수점 숫자에서 서로 다른 비트 패턴 수는 2wl입니다.

예를 들어 2의 보수에서는 0뿐만 아니라 음수도 표현해야 하므로, 최댓값은 2wl-1-1입니다. 0에 대해서는 표현이 하나 밖에 없으므로, 음수와 양수의 개수가 같지 않습니다. 이는 —2wl-1에 대한 표현은 있지만 2wl-1에 대한 표현은 없다는 의미입니다.

관련 항목