Chuẩn dấu phẩy động IEEE:

Một phần của tài liệu nghiên cứu, thiết kế, xây dựng bộ điều chế và giải điều chế qam-16qam trên fpga (Trang 25 - 27)

Xử lý dấu phẩy động

4.1.Chuẩn dấu phẩy động IEEE:

Để thuận lợi cho việc tính toán các số nhị phân lớn, cộng đồng các kỹ sư điện-điện tử(IEEE) đã nghiên cứu và đưa ra chuẩn IEEE 754 để xử lý dấu phấy động nhị phân. Theo chuẩn này thì khung diễn tả một dấu phảy động phải có kích thước chuẩn là 32 bit (độ chính xác đơn) và 64 bit (độ chính xác kép). Trong đề tài này, chúng tôi xây dựng hệ thống để xử lý dấu phẩy động theo chuẩn 32 bit. Như trong hình vẽ, khung 32 bit được chia thành ba nhóm riêng biệt: các bit thấp từ bit0 đến bit22 dùng để xác định phần định trị(mantissa), các bit từ 23 đến 30 để xác định số mũ, còn bit 31 là bit dấu.

Hình 4.1: Chuẩn phẩy động 32 bit của IEEE

Gọi số thập phân được hình thành từ chuẩn dấu phẩy động này là V, ta có biểu thức:

V = (-1)S * M * 2E – 127

Với (-1)S biểu thị bit dấu (bit31: bit có trọng số lớn nhất trong khung). Ta dễ dàng nhận thấy biểu thức này sẽ biểu diễn số dương nếu S=0 và ngược lại, sẽ biểu diễn số âm khi S=1. Nhìn vào hình vẽ ta thấy, 8 bit từ bit 23 đến bit 30 biểu diễn số mũ E, như vậy, E có thể thay đổi từ 0 đến 255. Sau khi trừ số mũ cho 127 theo đúng chuẩn thì sẽ cho phép số mũ chạy từ 2-127 đến 2128. Các bit còn lại biểu thị phần định trị M, phần định trị được hình thành từ 23 bit biểu diễn một phân số dưới dạng nhị phân. Ví dụ: với số nhị phân 1,0101; có thể khai triển thành 1 + 0/2 + ¼ + 0/8 + 1/16. Dấu phẩy động khi biểu diễn các phân số cũng được chuẩn hóa như vậy. Chỉ có duy nhất một kí tự khác không bên trái dấu phẩy động, số đó trong hệ 2 hiển nhiên là 1. Do vậy, bit đứng đầu phần định trị được mặc định là 1, và bit đó được lưu trữ trong khung. Giả sử m22, m21, …. m0 biểu thị 23 bit trong khung chuẩn của IEEE thì số định trị M được hiểu là:

M = 1.m22.m21……m0.

Bit

Biểu diễn thập phân của M là:

M = 1 + m22 * 2-1 + m21 * 2-2 + m20 * 2-3 + ……

Đối với các khung nhị phân biểu diễn dấu phẩy động, 0 là một số đặc biệt, số 0 có toàn bộ phần định trị và số mũ bằng 0 và bit dấu có thể là 1 hoặc 0. Bảng dưới đây sẽ cho chúng ta hiểu hơn về cách tính dấu phẩy động và các giới hạn của nó.

Hình 4.2: Một số giá trị phẩy động

Một phần của tài liệu nghiên cứu, thiết kế, xây dựng bộ điều chế và giải điều chế qam-16qam trên fpga (Trang 25 - 27)