3. Quản lý Tràn Số (Overflow) và Làm Tròn (Rounding)
Vì dải biểu diễn của số Fixed-Point là hữu hạn, bạn phải quyết định cách hệ thống xử lý khi kết quả của một phép toán vượt ra ngoài dải này (tràn số) hoặc khi cần phải loại bỏ các bit kém chính xác (làm tròn).
A. Chế độ xử lý Tràn số (Overflow Modes)
Khi kết quả một phép toán lớn hơn giá trị tối đa hoặc nhỏ hơn giá trị tối thiểu mà kiểu dữ liệu có thể biểu diễn, tràn số sẽ xảy ra.
- Wrap (Tràn số vòng): Đây là hành vi mặc định của số nguyên. Giá trị sẽ “vòng lại” từ đầu kia của dải. Ví dụ, với kiểu U8 (0-255), `250 + 10` sẽ cho kết quả là `4`.
- Tài nguyên: Tốn ít tài nguyên nhất (gần như không tốn thêm).
- Sử dụng: Hữu ích trong một số ứng dụng đặc biệt như bộ đếm (counter) nhưng thường gây ra lỗi logic nghiêm trọng trong các phép toán thông thường.
- Saturate (Bão hòa): Khi kết quả vượt ra ngoài dải, nó sẽ được “ghim” lại ở giá trị tối đa (hoặc tối thiểu) của dải đó. Ví dụ, với kiểu U8, `250 + 10` sẽ cho kết quả là `255`.
- Tài nguyên: Tốn nhiều tài nguyên hơn vì cần thêm logic để so sánh và lựa chọn giá trị.
- Sử dụng: An toàn hơn và thường là lựa chọn mặc định cho các thuật toán xử lý tín hiệu và điều khiển để tránh các kết quả sai lệch đột ngột.
B. Chế độ làm tròn (Rounding Modes)
Khi kết quả của một phép toán (ví dụ như phép nhân) có nhiều bit thập phân hơn so với kiểu dữ liệu đầu ra, chúng ta cần làm tròn.
- Truncate (Cắt cụt): Đơn giản là loại bỏ các bit thừa. Đây là cách nhanh nhất và tốn ít tài nguyên nhất. Tuy nhiên, nó luôn làm tròn về phía 0 và có thể gây ra một sai lệch DC (DC bias) trong tín hiệu.
- Round (Làm tròn thông thường): Làm tròn đến giá trị gần nhất. Chế độ này (ví dụ: Round Half-Up, Round Half-Even) cho kết quả chính xác hơn về mặt thống kê nhưng tốn thêm tài nguyên cho một bộ cộng (adder) nhỏ.
Lựa chọn thông minh: LabVIEW cung cấp tùy chọn Adapt to source
trong nhiều hàm. Khi được chọn, LabVIEW sẽ tự động cấu hình kiểu dữ liệu đầu ra để có đủ số bit, tránh cả tràn số và làm tròn, đảm bảo bảo toàn độ chính xác tuyệt đối. Đây là một lựa chọn rất mạnh mẽ khi bạn ưu tiên sự chính xác.