Main Content

정밀도와 범위

참고

반올림이 호출되는지, 오버플로나 언더플로가 발생하는지 알려면 자신이 선택하는 고정소수점 데이터형과 스케일링의 정밀도와 범위에 주의를 기울여야 합니다.

범위

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

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

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

오버플로 처리

고정소수점 데이터형은 유한 범위의 숫자를 표현하므로, 연산 결과가 해당 범위의 숫자보다 크거나 작으면 오버플로와 언더플로가 발생할 수 있습니다.

Fixed-Point Designer™에서는 오버플로를 포화하거나 래핑할 수 있습니다. 포화는 범위 내의 최대 양수가 사용되는 동안에는 양의 오버플로를 나타내고, 범위 내의 최대 음수가 사용되는 동안에는 음의 오버플로를 나타냅니다. 래핑은 모듈로 산술 연산을 사용하여 오버플로를 해당 데이터형의 표현 가능한 범위로 다시 형변환합니다.

fi 객체를 만들었을 때는 오버플로가 발생하면 포화됩니다. 디폴트 fimath의 OverflowAction 속성은 saturate입니다. fipref 객체의 LoggingMode 속성을 on으로 설정하여 오버플로와 언더플로를 기록할 수 있습니다.

정밀도

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

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

반올림 방법

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

  • Ceiling은 양의 무한대 방향으로 표현 가능한 가장 가까운 숫자로 올림합니다.

  • Convergent는 표현 가능한 가장 가까운 숫자로 반올림합니다. 반올림 경계에 놓인 숫자인 경우 convergent는 가장 가까운 짝수로 반올림합니다. 이것이 툴박스에서 제공하는 편향이 가장 적은 반올림 방법입니다.

  • Zero는 0 방향으로 표현 가능한 가장 가까운 숫자로 반올림합니다.

  • Floor는 2의 보수 자르기 동작과 동일하며, 음의 무한대 방향으로 표현 가능한 가장 가까운 숫자로 내림합니다.

  • Nearest는 표현 가능한 가장 가까운 숫자로 반올림합니다. 반올림 경계에 놓인 숫자인 경우 nearest는 양의 무한대 방향으로 표현 가능한 가장 가까운 숫자로 올림합니다. 이 반올림 방법은 fi 객체 생성 및 fi 산술 연산의 디폴트 값입니다.

  • Round는 표현 가능한 가장 가까운 숫자로 반올림합니다. 반올림 경계에 놓인 숫자인 경우 round 방법은 다음과 같이 반올림합니다.

    • 양수는 양의 무한대 방향으로 표현 가능한 가장 가까운 숫자로 올림합니다.

    • 음수는 음의 무한대 방향으로 표현 가능한 가장 가까운 숫자로 내립니다.

반올림 방법 선택하기.  각 반올림 방법은 일련의 내재된 속성을 가집니다. 설계의 요구 사항이 무엇인가에 따라 이들 속성은 특정 반올림 방법을 더 적합하게 만들기도 하고 덜 적합하게 만들기도 합니다. 설계 요구 사항을 알고 각 반올림 방법의 속성을 이해하면 어느 방법이 사용자의 필요에 가장 적합한지 결정할 수 있습니다. 고려할 가장 중요한 속성은 다음과 같습니다.

  • 비용 — 사용 중인 하드웨어와 무관하게 반올림 방법에 필요한 처리 비용이 얼마인가?

    • 낮음 — 반올림 방법에 처리 주기가 거의 필요하지 않습니다.

    • 보통 — 반올림 방법에 중간 정도의 처리 주기가 필요합니다.

    • 높음 — 반올림 방법에 더 많은 처리 주기가 필요합니다.

    참고

    여기에 설명된 비용 추정은 하드웨어와는 상관이 없습니다. 일부 프로세서에는 반올림 모드가 내장되어 있으므로, 각 반올림 모드의 실제 비용을 계산하기 전에 사용 중인 하드웨어를 면밀히 살펴보십시오.

  • 편향 — 반올림된 값에서 원래 값을 뺀 예상 값(Ε(θ^θ))은 얼마인가?

    • Ε(θ^θ)<0 — 반올림 방법에서 음수 편향이 발생합니다.

    • Ε(θ^θ)=0 — 반올림 방법에서 편향이 발생하지 않습니다.

    • Ε(θ^θ)>0 — 반올림 방법에서 양수 편향이 발생합니다.

다음 표는 Fixed-Point Designer에서 사용 가능한 다양한 반올림 방법을 비교하여 보여줍니다.

Fixed-Point Designer 반올림 모드비용편향
올림(Ceiling)낮음큰 양수
수렴(Convergent)높음편향 없음
0 방향(Zero)낮음
  • 음수 샘플의 경우 큰 양수

  • 양수 값과 음수 값이 균일하게 분포된 샘플의 경우 편향이 발생하지 않음

  • 양수 샘플의 경우 큰 음수

내림(Floor)낮음큰 음수
최근접(Nearest)중간작은 양수
반올림(Round)높음
  • 음수 샘플의 경우 작은 음수

  • 양수 값과 음수 값이 균일하게 분포된 샘플의 경우 편향이 발생하지 않음

  • 양수 샘플의 경우 작은 양수

Simplest
(Simulink®에 한함)
낮음연산에 따라 다름