Bảng mã Gray 2-bit
00 01 11 10 |
Bảng mã Gray 3-bit
000 001 011 010 110 111 101 100 |
Bảng mã Gray 4-bit
0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000 |
Mã nhị phân phản xạ, cũng được biết đến với tên gọi là mã Gray – đặt theo tên của Frank Gray, là một hệ thống ký số nhị phân, trong đó hai giá trị liên tiếp chỉ khác nhau một chữ số.
Lúc đầu, mã nhị phân phản xạ được phát minh với mục đích ngăn ngừa tín hiệu ngõ ra không chính xác của các bộ chuyển mạch cơ điện. Ngày nay, mã Gray được sử dụng rộng rãi để sửa lỗi trong những phương tiện liên lạc bằng số, ví dụ như truyền hình kỹ thuật số mặt đất và một vài hệ thống truyền hình cáp.
Tên gốc “mã nhị phân phản xạ” được đưa ra dựa vào một tính chất của bảng mã Gray: các giá trị ở nửa sau của bảng mã có sự đối xứng với các giá trị ở nửa đầu của bảng mã theo thứ tự ngược lại, ngoại trừ bit cao nhất bị đảo giá trị. Tính chất đối xứng này vẫn đúng cho các bit thấp hơn trong mỗi nửa của bảng mã, trong mỗi phần tư của bảng mã, v.v.. Cách gọi thông dụng hiện nay -mã Gray - được đặt theo tên của nhà nghiên cứu Frank Gray làm việc ở phòng thí nghiệm Bell. Gray đã dùng mã này trong hệ thống thông tin mã xung của ông, trong một bằng sáng chế xin cấp vào năm 1947 (được cấp vào năm 1953). Thực ra, Gray không phát minh ra mã này, mà trong bằng sáng chế của mình,ông ta chỉ trích dẫn và gọi đó là “mã nhị phân phản xạ”.."[1]
Mã nhị phân phản xạ đã được ứng dụng trong những câu đố toán học trước khi trở nên phổ biến trong lĩnh vực kỹ thuật. Kỹ sư người Pháp Émile Baudot đã dùng mã Gray trong hệ thống điện báo vào năm 1878. Ông ta đã được nhận huân chương Bắc đẩu bội tinh cho công trình này. Mã Gray đôi khi bị gán nhầm là được đặt tên theo Elisha Gray, chẳng hạn trong một cuốn sách giáo khoa bàn về điều chế mã xung..[2].
Frank Gray, nhà vật lý thuộc phòng thí nghiệm Bell, người nổi tiếng với việc phát minh ra phương pháp tín hiệu hoá được dùng cho tivi màu tương thích, đã phát minh một phương pháp để chuyển đổi tín hiệu tương tự sang những nhóm mã nhị phân phản xạ bằng cách dùng thiết bị dựa trên đèn chân không..[3]. Phương pháp và các thiết bị này được cấp bằng sáng chế năm 1953 và kể từ đó Gray được lấy tên để đặt cho loại mã này. Loại thiết bị “đèn PCM” mà Gray mô tả trong bằng sáng chế của mình đã được chế tạo thực sự bởi Raymond W. Sears của phòng thí nghiệm Bell, cùng làm việc với Gray và William M. Goodall, là người đã gợi ý cho Gray về việc dùng mã nhị phân phản xạ..[4].
Trong thời kỳ đó, Gray đã hết sức thích thú với việc dùng mã này để tối thiểu hóa sai số trong việc chuyển đổi từ tín hiệu tương tự sang tín hiệu số; và cho đến tận bây giờ, mã mang tên ông vẫn còn được dùng với mục đích này cùng với một số mục đích khác nữa.
Trong các thiết bị đo góc quay, người ta thích dùng mã Gray hơn so với mã nhị phân bình thường. Nếu góc quay được biểu diễn bằng mã nhị phân bình thường, khi chuyển từ góc quay này sang góc quay kế tiếp, do có sự thay đổi nhiều bit một lúc trên mã góc quay, có khả năng thiết bị đo đọc nhầm sang mã của một góc quay khác xa với hai góc quay đang xét. Vì tính chất xoay vòng của mã Gray, mã của hai góc quay kế cận chỉ khác nhau một bit nên hiện tượng đọc nhầm sang mã góc quay hoàn toàn khác với hai góc quay này là không thể xảy ra.
Người ta có thể dùng mã nhị phân phản xạ Gray làm phương tiện hướng dẫn giải bài toán Tháp Hà Nội. Có thể tìm thấy một phương pháp chi tiết ở đây Lưu trữ 2004-08-21 tại Wayback Machine. Mã Gray cũng hình thành một chu trình Hamilton trên một siêu lập phương, mà mỗi bit được xem như là một chiều.
function gray(n:byte):byte; begin gray:= n xor (n shr 1); End;
Một số hàm và thủ tục về xử lý bit trong pascal