Mã Gray

Bách khoa toàn thư mở Wikipedia
Bước tới: menu, tìm kiếm
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ọi[sửa | sửa mã nguồn]

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]

Lịch sử và các ứng dụng thực tiễn[sửa | sửa mã nguồn]

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.

Bộ mã hoá dạng tròn dùng trong thiết bị đo góc được đánh dấu theo mã Gray nhị phân phản xạ 3-bit (BRGC)

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. 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.

Code bằng ngôn ngữ Pascal[sửa | sửa mã nguồn]

function gray(n:byte):byte; begin gray:= n xor (n shr 1); End;

Xem thêm[sửa | sửa mã nguồn]

Ghi chú[sửa | sửa mã nguồn]

  1. ^ F. Gray. Pulse code communication, March 17 1953 (filed Nov. 1947). Bằng sáng chế Hoa Kỳ số 2.632.058, claims 1-9
  2. ^ K. W. Cattermole, Principles of Pulse Code Modulation, American Elsevier Publishing Company, Inc., 1969, New York NY, ISBN 0-444-19747-8.
  3. ^ Knuth, Donald E. "Generating all n-tuples." The Art of Computer Programming, Volume 4A: Enumeration and Backtracking, pre-fascicle 2a, 15 tháng 10, 2004. [1]
  4. ^ W. M. Goodall, "Television by Pulse Code Modulation," Bell Sys. Tech. J., Vol. 30 pp. 33–49, 1951.

Một số hàm và thủ tục về xử lý bit trong pascal

Tham khảo[sửa | sửa mã nguồn]

  • Black, Paul E. Gray code. 25 tháng 2 năm 2004. NIST. [2].
  • Savage, Carla. "A Survey of Combinatorial Gray Codes." Society of Industrial and Applied Mathematics Review 39 (1997): 605-629. [3].

Liên kết ngoài[sửa | sửa mã nguồn]