TỔNG QUAN VỀ HỆ THỐNG THÔNG TIN SỐ
Giới thiệu về hệ thống thông tin
Hệ thống thông tin đóng vai trò quan trọng trong việc truyền tải tin tức từ nguồn tin đến bộ nhận tin dưới dạng văn bản Tin tức được phát sinh từ nguồn tin và được chuyển giao đến đích cần thiết Bản tin, là hình thức chứa thông tin, có thể được tạo ra từ nguồn tin liên tục hoặc rời rạc Đối với nguồn tin liên tục, tập hợp các bản tin là vô hạn, trong khi với nguồn tin rời rạc, tập hợp này có thể là hữu hạn.
Tín hiệu là biểu diễn vật lý của một bản tin, có thể được thể hiện qua nhiều đại lượng vật lý như cường độ dòng điện, điện áp, hay cường độ ánh sáng Tùy thuộc vào dạng tín hiệu, thông tin có thể được truyền tải qua hệ thống thông tin tương tự (analog) hoặc hệ thống thông tin số (digital).
Hình vẽ sau đây trình bày sơ đồ khối tổng quát của một hệ thống thông tin nói chung
Hình 1.1 Sơ đồ khối tổng quát của một hệ thống thông tin nói chung
Thông tin được nhập vào hệ thống qua thiết bị đầu vào và sau đó được chuyển đến thiết bị phát để tạo ra tín hiệu phù hợp với môi trường truyền Trong sơ đồ hình 1.1, thông tin được coi là nội dung cần trao đổi, trong khi bản tin là phương tiện biểu diễn và mô tả thông tin ở dạng thích hợp cho việc trao đổi, xử lý và cảm nhận bởi con người hoặc máy móc.
Do tác động của môi trường truyền như nhiễu tạp và suy hao, tín hiệu thu tại đầu thu có thể khác biệt so với tín hiệu phát Sau khi được giải điều chế tại thiết bị thu, dữ liệu hoặc tín hiệu sẽ được chuyển đến thiết bị đầu ra để trích xuất thông tin hữu ích.
1.1.1 Lịch sử phát triển của thông tin điện tử
Trong suốt lịch sử, sự phát minh ra ngôn ngữ đã đánh dấu một cuộc cách mạng truyền thông lớn nhất của nhân loại Tiếp theo, việc phát minh ra tín hiệu bằng lửa đã giúp truyền đạt thông tin nhanh chóng và hiệu quả đến những vùng xa xôi.
Một trong những phát minh vĩ đại nhất của con người là khả năng ghi lại suy nghĩ và tư tưởng thông qua chữ viết Khả năng này cho phép con người truyền đạt thông tin mà không bị giới hạn bởi không gian và thời gian, đồng thời dẫn đến sự ra đời của các dịch vụ đưa thư và điện báo Bảng 1.1 cung cấp cái nhìn tổng quan về các sự kiện quan trọng trong lịch sử phát triển của thông tin điện tử.
Bảng 1.1 Các sự kiện quan trọng trong lịch sử của thông tin điện tử
Năm Sự kiện Xuất xứ Kiểu thông tin
1837 Hoàn thiện dạng điện báo bằng dây Morse Số
1875 Phát minh điện thoại Bell Tương tự
1897 Chuyển mạch trao đổi tự động từng nấc Stronger
1901 Điện báo không dây Marconi Số
1905 Giới thiệu về điện thoại không dây Fessenden Tương tự
1907 Truyền thanh vô tuyến dạng chuẩn đầu tiên USA Tương tự
1918 Phát minh ra máy thu vô tuyến đổi tần Amstrong Tương tự
1921 Xuất hiện di động cá nhân Detroit police Tương tự
1928 Giới thiệu các dạng truyền hình điện tử Farnsworth Tương tự
1928 Lý thuyết truyền tin điện báo Nyquist Số
1928 Truyền dẫn thông tin Harley Số
1933 Giới thiệu điều chế tần số Amstrong Tương tự
Năm Sự kiện Xuất xứ Kiểu thông tin
1934 Giới thiệu ra-đa (vô tuyến định vị) Kuhnold
1937 Đưa ra PCM Reeves Số
1939 Thương mại hóa dịch vụ truyền hình quảng bá BBC Tương tự
1943 Phát minh ra bộ lọc thích ứng North Số
1945 Phát minh vệ tinh địa tĩnh Clarke
1946 Phát triển các hệ thống ARQ Duuren Số
1948 Lý thuyết toán học cho thông tin Shannon
1955 Chuyển tiếp viba mặt đất RCA Tương tự
1960 Giới thiệu đầu tiên về laze Maiman
1962 Triển khai thông tin vệ tinh TELSTAR 1 Tương tự
1966 Phát minh cáp quang Kao &
1970 Mạng truyền dữ liệu cỡ trung bình ARPA/TYM
1970 LAN, MAN và WAN Số
1978 Vô tuyến tế bào Tương tự
1978 Bắt đầu nghiên cứu về GPS Navstar Global Số
1980 Mô hình tham chiếu 7 lớp OSI ISO Số
1981 Giới thiệu truyền hình độ phân giải cao
1985 Truy nhập tốc độ cơ sở ở UK BT Số
1986 Giới thiệu SONET/SDH USA Số
1991 Hệ thống tế bào GSM Châu Âu Số
Năm Sự kiện Xuất xứ Kiểu thông tin
1993 Đưa ra khái niệm PCN Toàn cầu Số
1994 Phát minh CDMA IS-95 Quanlcom Số
1.1.2 Thông tin tương tự và thông tin số
Tín hiệu tương tự là loại tín hiệu có thể nhận nhiều giá trị và thời gian tồn tại không xác định, phụ thuộc vào thời gian của bản tin từ nguồn phát Tín hiệu analog có thể là liên tục hoặc rời rạc, tùy thuộc vào hàm của biến thời gian Ví dụ, tín hiệu điện thoại từ micro là tín hiệu tương tự liên tục, trong khi tín hiệu điều chế xung PAM từ tín hiệu micro là tín hiệu analog rời rạc.
Tín hiệu số được biểu diễn bằng các con số và ký hiệu, với số lượng giá trị hữu hạn (M) Thời gian tồn tại của tín hiệu số thường là một hằng số, ký hiệu là T s.
So với các hệ thống thông tin tương tự, các hệ thống thông tin số có một số ưu điểm cơ bản sau:
Do khả năng tái sinh tín hiệu qua từng cự ly nhất định, tạp âm tích lũy có thể được loại trừ, giúp tín hiệu số mạnh mẽ hơn so với tín hiệu tương tự Tái sinh là quá trình phục hồi tín hiệu bị méo và suy hao về biên độ và dạng sóng ban đầu, thường được thực hiện qua bộ lặp số.
Hình 1.2 Kênh thông tin số gồm nhiều trạm lặp
Sử dụng tín hiệu số mang lại khả năng tương thích với các hệ thống điều khiển và xử lý hiện đại, giúp nâng cao khả năng khai thác, quản trị và bảo trì tự động Tín hiệu số cũng cho phép truyền tải thông tin một cách dễ dàng và hiệu quả.
Năm bản tin, dù rời rạc hay liên tục, đã tạo tiền đề cho việc hợp nhất các mạng thông tin, từ đó cung cấp các dịch vụ và số liệu trong một mạng duy nhất.
Hệ thống thông tin số có nhược điểm cơ bản so với hệ thống thông tin tương tự, đó là phổ tín hiệu số khi truyền các bản tin liên tục lớn hơn so với phổ tín hiệu analog Tuy nhiên, với sự phát triển của các kỹ thuật số hóa tín hiệu liên tục tiên tiến trong tương lai, phổ của tín hiệu số có thể sẽ được cải thiện và so sánh được với phổ của tín hiệu liên tục.
Truyền tin số có nhiều ưu điểm vượt trội so với kỹ thuật tương tự, nhờ vào việc sử dụng một số hữu hạn dạng sóng tách biệt để truyền tải thông tin Mỗi dạng sóng được truyền trong một khoảng thời gian xác định, gọi là chu kỳ ký hiệu, đại diện cho một dữ liệu tin hoặc tổ hợp bit, được gọi là báo hiệu Kỹ thuật này nổi bật với khả năng chống nhiễu tốt trên đường truyền, vì nếu nhiễu không đủ mạnh sẽ không làm méo dạng sóng, giúp giảm thiểu nhầm lẫn tại điểm thu Tuy nhiên, để áp dụng phương pháp này, bản tin nguồn cần phải được số hóa, tức là biểu diễn bằng một số hữu hạn ký hiệu, như văn bản tiếng Việt sử dụng 24 chữ cái, bộ đếm với 10 số, hay bản nhạc với 7 nốt và một số ký hiệu bổ sung.
Việc số hóa bản tin tương tự luôn đi kèm với một sai số lượng tử có thể điều khiển được, khác với kỹ thuật truyền tin tương tự không mắc sai số khi số hóa Tuy nhiên, do sử dụng vô số dạng sóng liên tục, can nhiễu có thể làm thay đổi dạng sóng, gây ra sai số khó kiểm soát tại nơi thu Số hóa còn cho phép tạo ra các tiêu chuẩn linh hoạt thông qua phần mềm và cung cấp những dịch vụ mới mà truyền tin tương tự không có Mặc dù vậy, kỹ thuật truyền tin tương tự đã đạt được nhiều thành tựu vĩ đại, như truyền hình màu và đưa người lên mặt trăng, và vẫn được áp dụng trong một số công nghệ điều khiển tốc độ cực nhanh.
Khi áp dụng lý thuyết thông tin vào kỹ thuật truyền tin số, một số vấn đề quan trọng cần xem xét là việc biểu diễn bản tin (mã nguồn) thông qua một số ký tự nhất định.
Sơ đồ khối tổng quát của hệ thống thông tin số
Trong thế giới ngày nay, có nhiều loại hệ thống thông tin số khác nhau, được phân loại dựa trên tần số hoạt động và môi trường truyền dẫn Mỗi loại hệ thống này sử dụng các chức năng xử lý tín hiệu số đa dạng để truyền tải thông tin hiệu quả Các chức năng này được thể hiện qua các khối trong sơ đồ khối của hệ thống, với mỗi khối đại diện cho một thuật toán xử lý tín hiệu cụ thể Hình 1.3 minh họa sơ đồ khối tiêu biểu của một hệ thống thông tin số, bao gồm các chức năng xử lý tín hiệu chính hiện có.
Hình 1.3 Sơ đồ khối hệ thống truyền tin số
Nguồn tin là nơi tạo ra thông tin Nếu tin tức có giới hạn, nguồn này được gọi là nguồn rời rạc Ngược lại, nếu tin tức vô hạn, nguồn sẽ được xem là nguồn liên tục Ví dụ về nguồn tin liên tục bao gồm thoại, audio, video và dữ liệu.
Máy phát là thiết bị chuyển đổi thông tin thành tín hiệu tương ứng, nâng tần số tín hiệu từ trung tần lên cao tần Nó thực hiện việc lọc nhiễu, khuếch đại tín hiệu để bù đắp cho sự suy hao, và phát tín hiệu vào môi trường truyền Đường truyền tin là môi trường vật lý cho phép tín hiệu di chuyển từ máy phát đến máy thu, nhưng trong quá trình này, tín hiệu có thể bị mất năng lượng và thông tin do các tác động từ môi trường.
Máy thu thực hiện chức năng biến đổi tín hiệu thu được thành thông tin tương ứng, bao gồm các bước lọc nhiễu và khuếch đại tín hiệu Chức năng nhận tin có ba phần chính: ghi giữ tin, giúp lưu trữ thông tin qua bộ nhớ máy tính hoặc băng ghi âm; biếu thị tin, cho phép giác quan con người hoặc cảm biến của máy thu tiếp nhận và xử lý thông tin dưới dạng âm thanh, chữ số, hoặc hình ảnh; và xử lý tin, chuyển đổi thông tin thành dạng dễ sử dụng, có thể thực hiện bởi cả con người và máy móc.
Kênh truyền tin là tập hợp các thiết bị kỹ thuật phục vụ cho việc truyền tin từ nguồn đến nơi nhận tin (mục 1.1.4)
Nhiễu là các yếu tố ngẫu nhiên gây ảnh hưởng tiêu cực đến quá trình thu nhận thông tin, làm giảm chất lượng tín hiệu từ bên phát đến bên thu Để truyền tải tin tức hiệu quả, cần thực hiện việc chuyển đổi thông tin thành dạng tín hiệu liên tục hoặc số, từ đó chuyển đổi thành chuỗi các bít nhị phân.
Mã hóa và giải mã nguồn tin là quá trình quan trọng trong việc truyền tải thông tin Mặc dù tin tức có thể được truyền trực tiếp, nhưng thường thì nó cần được biến đổi trước khi đưa vào kênh truyền Ví dụ, một tin văn bản tiếng Anh có thể chứa khoảng 40 ký tự khác nhau, bao gồm chữ cái, số và dấu câu Theo nguyên tắc, chúng ta có thể sử dụng 40 dạng sóng điện áp khác nhau để biểu thị cho 40 ký tự này Tuy nhiên, phương pháp này quá phức tạp và khó thực hiện trong thực tế.
Kênh truyền không thể mang nhiều ký tự khác nhau do yêu cầu dải tần rộng, khiến việc lưu trữ và xử lý tín hiệu trở nên khó khăn Chuyển đổi sang dạng nhị phân giúp đơn giản hóa quá trình này Do đó, cần thay đổi dạng của tin từ nguồn cung cấp, và quá trình này được gọi là mã hóa Mã hóa nguồn giúp loại bỏ độ dư trong các ký tự, tối ưu hóa việc truyền tải thông tin.
10 và lưu trữ thông tin trở nên hiệu quả hơn
Mã hóa mật và giải mã mật: thực hiện mã và giải mã chuỗi bít theo một khóa xác định nhằm bảo mật tin tức
Mã hóa kênh và giải mã kênh: nhằm chống nhiễu và các tác động xấu khác của đường truyền dẫn
Ghép kênh và phân kênh là quá trình tập hợp và phân chia các tín hiệu số từ băng gốc, cho phép truyền tin từ nhiều nguồn đến các đích khác nhau trên cùng một hệ thống Hai kỹ thuật ghép kênh chính là FDM và TDM Điều chế và giải điều chế (MODEM) điều chỉnh các dòng xung nhị phân để thông tin có thể truyền qua thiết bị vật lý với tốc độ và độ méo chấp nhận được trong dải tần xác định Bộ điều chế thay đổi mức điện áp, sửa dạng xung tín hiệu và lọc để phù hợp với băng tần cho phép, với đầu vào là tín hiệu số ở dải gốc và đầu ra là dạng sóng thông dải Bộ giải điều chế tại bên thu chuyển đổi dạng sóng thu được thành tín hiệu ở dải gốc.
Kỹ thuật trải phổ dựa trên định lý Shannon-Hartley, cho phép truyền tín hiệu với tỷ lệ lỗi thấp trong một kênh có dung lượng lớn Nhờ vào kỹ thuật này, tín hiệu có thể được phát với công suất nhỏ, giúp che giấu thông tin trong nhiễu và làm cho đối phương khó phát hiện thời điểm truyền tin Hệ thống thông tin trải phổ có đặc điểm là phổ rộng, bảo mật cao, khả năng chống nhiễu tốt và chống padinh đa đường hiệu quả Đa truy nhập cho phép nhiều người dùng truy cập vào mạng thông tin theo nhu cầu Các kỹ thuật như lọc để hạn phổ giúp loại bỏ năng lượng thấp và sửa méo tín hiệu, trong khi trộn tín hiệu lên tần số công tác và khuếch đại công suất để bù đắp tổn hao môi trường.
Đồng bộ trong hệ thống thông tin liên kết bao gồm đồng bộ nhịp và đồng bộ pha sóng, với các khối ở phía thu thực hiện ngược lại các khối ở phía phát Trong hệ thống thông tin số, MODEM được xem như bộ não của con người, trong khi các khối chức năng khác không phải là yếu tố bắt buộc cho mọi hệ thống thông tin.
Các tham số đánh giá chất lượng hoạt động của hệ thống thông tin số
Trong lĩnh vực viễn thông, việc truyền tải thông tin qua phương pháp điện gặp phải hai hạn chế chính: dải thông và tạp âm Để truyền thông tin hiệu quả trong thời gian ngắn, đặc biệt với các hệ thống thông tin thời gian thực, cần một dải thông đủ rộng Tuy nhiên, việc sử dụng dải thông quá lớn có thể dẫn đến lãng phí băng tần, một tài nguyên quý giá Các yếu tố ảnh hưởng đến quá trình truyền dẫn tín hiệu số bao gồm xuyên nhiễu giữa các dấu (ISI), méo tín hiệu, sai pha đồng hồ, can nhiễu và hiệu ứng poppler giữa các máy thu phát di động, cùng với sự biến đổi theo thời gian của kênh truyền Đối với hệ thống thông tin số, chỉ tiêu chất lượng quan trọng nhất là xác suất lỗi bit (BER) và Jitter Các hệ thống vi ba có yêu cầu khác nhau về BER và Jitter tùy thuộc vào từng loại hình dịch vụ.
Tỷ lệ lỗi bit (BER) được định nghĩa là tỷ lệ giữa số bit bị lỗi và tổng số bit đã truyền trong một khoảng thời gian quan sát Khi thời gian quan sát kéo dài đến vô hạn, tỷ lệ này sẽ tiến gần đến xác suất lỗi bit Mặc dù trong thực tế, thời gian quan sát không bao giờ là vô hạn, tỷ lệ lỗi bit thường được coi là gần đúng với xác suất lỗi bit Đối với một số dịch vụ, các tham số như giây bị lỗi trầm trọng (SES), giây bị lỗi (ES) và phút suy giảm chất lượng (DM) thường được sử dụng để đánh giá độ chính xác truyền tin Trong các hệ thống thông tin số, đặc biệt là trong truyền thông di động, độ chính xác truyền tin còn được phản ánh qua chất lượng tiếng nói.
12 khía cạnh chất lượng dịch vụ
Khả năng truyền tin của hệ thống thông tin số được đánh giá qua dung lượng B, là tốc độ truyền thông tin (b/s) với độ chính xác nhất định Dung lượng này phụ thuộc vào băng tần, sơ đồ điều chế số và mức độ tạp nhiễu Trong các hệ thống truyền dẫn số hiện tại, tín hiệu nhận giá trị từ một tập hữu hạn và có thời gian tồn tại nhất định Nếu tập giá trị chỉ có hai phần tử 0 và 1, hệ thống được gọi là nhị phân và tín hiệu là bit Ngược lại, nếu số giá trị có thể có là M (M ≠ 2), hệ thống được gọi là hệ thống M mức và tín hiệu được gọi là ký hiệu (symbol), với giá trị của ký hiệu thứ k là Dk và thời gian tồn tại của nó là Tk.
(đối với các hệ thống thông thường hiện nay T k = T = const với mọi k) Ở đầu thu tín hiệu khôi phục lại là D k và có độ rộng là T k
Nếu D k ≠ D k thì tín hiệu thứ k được gọi là bị lỗi
Nếu T k ≠ Tk thì tín hiệu thứ k được gọi là có Jitter Đối với hệ thống nhị phân, BER được định nghĩa là:
BER = P{ D k ≠ D k } với P{ } là xác suất (1.2) Khi
T k =T + T thì được gọi là Jitter tình theo phần trăm (1.3)
Trong hệ thống truyền dẫn nhiều mức, tỷ lệ lỗi symbol (SER) được xác định bởi P{ D k ≠ D k } Đối với hệ thống truyền tín hiệu thoại, yêu cầu tỷ lệ lỗi bit (BER) cần thấp hơn 10^-6, và do tính không nhạy cảm với Jitter, hệ thống có thể chấp nhận mức Jitter cao Đối với tín hiệu truyền hình sử dụng điều xung mã PCM, yêu cầu BER tương tự như tín hiệu thoại, nhưng cần lưu ý rằng tốc độ truyền hình thường rất cao Khi áp dụng ADPCM (Điều chế xung mã vi sai tự thích nghi) cho truyền tín hiệu truyền hình, yêu cầu BER cần thấp hơn 10^-9, thậm chí có thể yêu cầu thấp hơn 10^-12, vì các tín hiệu truyền hình rất nhạy cảm với Jitter.
13 Đối với truyền số liệu thì BER từ 10 -11 ÷ 10 -13
Khi BER vượt quá 10^-3, hệ thống được coi là gián đoạn, vì ngay cả dịch vụ telex, vốn cho phép chất lượng truyền dẫn kém nhất, cũng không thể hoạt động Jitter được xem là lớn khi giá trị vượt quá 0.05T (đỉnh đỉnh – peak to peak).
Để đánh giá chất lượng của hệ thống, người ta thường sử dụng các thông số như xác suất gián đoạn thông tin, tỷ số lỗi thấp, chỉ số lỗi cao, thời gian không có lỗi kéo dài, các chỉ tiêu đột biến và tính khả dụng của hệ thống.
Tức với một nửa công suất trung bình trên mỗi một tín hiệu vuông góc của hệ thống QAM tương đương
(1.5) trong đó, E s N o là SNR trung bình trên symbol
Do đó, xác suất lỗi của một symbol đối với QAM M mức là:
Vẽ đồ thị (1.7) ta có hàm xác suất lỗi một symbol theo tỷ lệ lỗi bít trung bình
Như vậy, đối với điều chế 16-QAM ta có xác suất lỗi symbol như sau:
Hệ thống thông tin quang được đánh giá chất lượng chủ yếu qua hai thông số quan trọng: tỉ lệ bit lỗi (BER) và độ nhạy của bộ thu.
(Receiver sensitivity) Trong các hệ thống thông tin quang, BER thường đạt mức
Hình 1.4 Nguyên tắc tính BER dựa vào phân bố xác suất của bit “1” và bit “0”
Sơ đồ tín hiệu biến đổi tại mạch quyết định bit ở đầu thu cho thấy thời điểm lấy mẫu 𝑡𝐷 không cố định, mà dao động xung quanh giá trị trung bình I0 cho bit 0 và I1 cho bit 1 Các giá trị này sau đó được so sánh với mức ngưỡng ID để xác định giá trị nhận được là bit nào.
Nếu I > ID, quyết định bit là “1”, còn nếu I < ID, quyết định bit là “0” Lỗi xảy ra khi I < ID với bit “1” và I > ID với bit “0” Giả sử xác suất nhận bit “1” và bit “0” là bằng nhau, thì BER được tính theo công thức nhất định.
BER = p(1)P(0/1) + p(1)P(1/0) = ẵ[P(0/1) + P(1/0)] (1.10) Trong đó: p(0), p(1) là xác suất nhận bit “0” và “1” P(0/1) là xác suất quyết định bit “0” khi nhận được bit “1”.P(1/0) là xác suất quyết định bit “1” khi nhận được bit “0”
Một phương pháp gần đúng để ước lượng tỷ lệ lỗi bit (BER) là giả định rằng hàm mật độ xác suất của bit "1" và bit "0" tuân theo phân bố Gaussian Trong đó, phần gạch chéo thể hiện xác suất xảy ra lỗi bit.
Gọi I1, I 0 lần lượt là dòng điện trung bình của bit “1” và bit “0” 𝜎 1 , 𝜎 0 là phương sai của hàm phân bố xác suất nhiễu tương ứng với “1” và bit “0”
Từ n mẫu 𝑥 𝑖 thu được, ta tính được các giá trị I 1 , I 0 , 𝜎 1 , 𝜎 0 từ công thức (1.11) và (1.12) Từ đó suy ra BER nhờ áp dụng (1.13) và (1.14)
Trong đó Q là hệ số chất lượng (quality factor)
Với erfc là hàm lỗi bù được định nghĩa : erfc(x) = 2
√𝜋∫ 𝑒𝑥𝑝 𝑥 ∞ (- 𝑦 2 )𝑑𝑦 (1.15) Độ nhạy của bộ thu là ngưỡng công suất trung bình tối thiểu tại đầu thu sao cho BER đạt 10 -9 trở xuống
Vị trí của mã hóa kênh trong hệ thống thông tin số
Mã hóa kênh đóng vai trò quan trọng trong hệ thống thông tin số không dây, kết hợp với mã hóa nguồn, ghép kênh và điều chế Quá trình này giúp tạo ra tín hiệu phù hợp cho truyền dẫn vô tuyến, đồng thời có khả năng kiểm soát và sửa lỗi bit, từ đó khôi phục tín hiệu tin tức gần như nguyên vẹn.
Hình 1.5 Vị trí của mã hóa kênh truyền trong hệ thống thông tin số
Mã hóa kênh nhằm giảm xác suất sai thông tin trong quá trình truyền tải, thông qua việc phát hiện và sửa lỗi Điều này không chỉ giúp giảm tỉ số tín hiệu trên nhiễu (SNR) mà còn tiết kiệm năng lượng và công suất Việc sửa lỗi hiệu quả cho tín hiệu SNR thấp hỗ trợ bảo mật, mở rộng phổ và nâng cao độ chính xác của thông tin nhận được, là mục tiêu quan trọng nhất của mã hóa kênh trong truyền thông.
1.4.1 Khái niệm mã hóa kênh và phân loại a Khái niệm
Mã hóa kênh là quá trình thêm các bit dư vào tín hiệu số theo một quy luật nhất định, giúp bên thu phát hiện và sửa lỗi xảy ra trong kênh truyền.
Một số hệ thống khắc phục lỗi thông qua chế độ ARQ, yêu cầu bên phát gửi lại tín hiệu khi phát hiện lỗi, nhưng phương pháp này chỉ phù hợp với hệ thống truyền dẫn hữu tuyến và một số hệ thống vô tuyến không nhạy cảm với thời gian trễ Đối với các hệ thống thông tin không dây hiện đại, người ta thường sử dụng mã phát hiện và khắc phục lỗi tự động, giúp giảm thiểu thời gian trễ so với các hệ thống yêu cầu truyền lại Bộ mã này được gọi là mã điều khiển lỗi (ECC), hay chính xác hơn là mã sửa lỗi tiến bộ (FEC).
Lý thuyết Mã hóa trên kênh truyền nhằm tìm kiếm các mã có khả năng truyền tải thông tin nhanh chóng, chứa nhiều từ mã hợp lệ và có khả năng sửa lỗi hoặc phát hiện lỗi Các mục tiêu này không phụ thuộc vào nhau và mỗi loại mã tối ưu cho các ứng dụng riêng biệt Đặc tính của từng loại mã phụ thuộc vào xác suất lỗi trong quá trình truyền thông Đối với đĩa CD, lỗi âm thanh thường do bụi và vết xước, vì vậy các mã được lồng ghép và dữ liệu được phân bổ đều trên mặt đĩa Một ví dụ đơn giản là sử dụng mã tái diễn, trong đó một khối dữ liệu bit (đại diện cho âm thanh) được truyền ba lần và bên nhận kiểm tra từng bit để chọn giá trị có số bầu cao nhất, với dữ liệu được lồng vào nhau thay vì truyền theo thứ tự.
Dữ liệu được chia thành 17 phần và sau đó được phân bổ vào 4 khối nhỏ Mỗi khối sẽ lần lượt nhận một bit dữ liệu, quá trình này được lặp lại ba lần để tối ưu hóa việc lưu trữ trên bề mặt đĩa Mặc dù phương pháp mã tái diễn đơn giản ban đầu có vẻ không hiệu quả, hiện nay đã có những mã sửa lỗi tiên tiến, rất hiệu quả trong việc khắc phục sự cố do vết xước hoặc bụi, nhờ vào kỹ thuật lồng số liệu.
Mỗi mã thường chỉ thích hợp cho một ứng dụng nhất định, và trong viễn thông vũ trụ, nhiễu nhiệt trong thiết bị thu là một yếu tố giới hạn Hiện trạng này diễn ra theo chu trình liên tục, tương tự như modem dải tần hẹp bị ảnh hưởng bởi nhiễu âm trong mạng lưới điện thoại Nhiễu âm này có thể được mô tả qua mô hình tạp âm tiếp diễn Điện thoại di động thường gặp vấn đề do sự suy sóng nhanh chóng, với tần số cao có thể làm giảm tín hiệu ngay cả khi máy nhận chỉ di chuyển một khoảng cách nhỏ Để đối phó với tình trạng suy sóng, đã có loại mã hóa trên kênh truyền được phát triển.
Lý thuyết mã hóa đại số bao gồm hai loại mã chính: mã khối và mã trellis Các loại mã này được phân tích dựa trên ba đặc tính quan trọng: chiều dài mã, tổng số từ mã hợp lệ và khoảng cách Hamming tối thiểu giữa các từ mã hợp lệ.
Hình 1.6 Sự phân chia mã hóa kênh thành hai nhánh riêng biệt
KỸ THUẬT MÃ HÓA KÊNH
Giới thiệu chương
Theo quan điểm của ngành thông tin, tài nguyên thông tin chủ yếu bao gồm công suất, thời gian và băng thông, và ba tài nguyên này có thể mâu thuẫn lẫn nhau trong một môi trường thông tin cụ thể Việc cân đối các mâu thuẫn này phụ thuộc vào từng trường hợp, nhưng chung quy lại, ta có thể đạt tốc độ truyền số liệu cao nhất trong băng thông nhỏ nhất mà vẫn đảm bảo chất lượng truyền dẫn ở mức chấp nhận được Trong thông tin số, chất lượng truyền dẫn liên quan chặt chẽ đến xác suất lỗi bit Pb tại đầu thu, và định lý về thông lượng kênh của Shannon-Hartley được thể hiện qua công thức 2.1.
Giới hạn lý thuyết của tốc độ truyền số liệu từ bộ phát được xác định bởi công suất và băng thông của kênh trong môi trường nhiễu đã biết, tuy nhiên, để đạt được giới hạn này, cần phải áp dụng phương pháp mã hóa phù hợp Tài nguyên thông tin chủ yếu bao gồm công suất, thời gian và băng thông, và trong một môi trường thông tin cụ thể, ba tài nguyên này có thể mâu thuẫn với nhau Thiết kế hệ thống phải đáp ứng tốc độ truyền số liệu yêu cầu trong băng thông hạn chế và công suất cụ thể, đồng thời đảm bảo tỷ số BER và thời gian trễ chấp nhận được Nếu tuyến truyền dẫn PCM không đạt yêu cầu về tỷ số BER, cần áp dụng các phương pháp mã hóa điều khiển lỗi để cải thiện hiệu suất.
Mã hóa điều khiển lỗi, hay còn gọi là mã hóa kênh, được sử dụng để phát hiện và sửa chữa các ký tự hoặc bit bị lỗi Mã hóa phát hiện lỗi đóng vai trò quan trọng trong quá trình sửa lỗi, khởi đầu bằng việc kích hoạt tín hiệu yêu cầu lặp lại tự động (ARQ) từ đầu cuối thu về đầu cuối phát Nếu quá trình truyền lại thành công, lỗi sẽ được coi là đã được sửa chữa.
Khi truyền dẫn gặp trễ lớn, kỹ thuật mã hóa sửa lỗi không phản hồi (FECC) được áp dụng Cả mã phát hiện lỗi và mã sửa lỗi đều bổ sung độ dư vào dữ liệu phát, nhưng mã sửa lỗi yêu cầu độ dư nhiều hơn Điều này là cần thiết để bên nhận không chỉ phát hiện mà còn có khả năng sửa lỗi mà không cần truyền lại dữ liệu.
Chương này sẽ giới thiệu tổng quan về điều khiển lỗi trong hệ thống thông tin số, bao gồm các phương pháp điều khiển lỗi và phân loại mã điều khiển lỗi Nội dung chính sẽ tập trung vào hai loại mã điều khiển lỗi, đó là mã khối (block code) và mã chập.
Mã khối đơn giản nhất là mã kiểm tra chẵn lẻ (parity), trong khi mã khối tuyến tính (linear block code) sẽ được trình bày với trọng tâm là mã vòng (cyclic code) và một dạng mã vòng cơ bản, đó là mã Hamming.
Phần mã chập cuối chương sẽ trình bày phương pháp sử dụng sơ đồ cây, sơ đồ lưới và sơ đồ trạng thái để minh họa quá trình mã hóa mã chập Thuật toán Viterbi sẽ được giới thiệu trong phần giải mã mã chập thông qua sơ đồ lưới Nội dung mã hóa ở đây dành cho những người đã nắm vững lý thuyết mã hóa, chỉ tập trung vào thuật toán mã hóa và giải mã cùng với ví dụ minh họa, không đề cập đến cơ sở toán học.
Tổng quan về điều khiển lỗi
2.2.1 Các phương pháp điều khiển lỗi Đại lượng đo lỗi thông thường là tỷ lệ lỗi bit BER (Bit Error Rate) hay xác suất lỗi bit (Pb) Pb đơn giản là xác suất một bit nhị phân bất kỳ truyền đi bị lỗi BER là tỷ số lỗi trung bình, được tính là tích của Pb và Rb, ở đây Rb là tốc độ bit trong kênh Pb điển hình trong một hệ thống PCM tuyến tính là 10 -7 , trong hệ thống PCM nén phi tuyến là 10 -5 , trong hệ thống ADPCM là 10 -4 Điều khiển lỗi nhằm mục đích là làm giảm tỷ lệ lỗi trong một hệ thống khi tỷ lệ này lớn quá mức cho phép Nhìn chung có năm phương pháp điều khiển lỗi Giải pháp đầu tiên và dễ thấy nhất là tăng công suất phát, nhưng không phải lúc nào cũng có thể thực hiện được
Đối với điện thoại di động, khối lượng pin không nên quá lớn để đảm bảo tính tiện lợi Một giải pháp hiệu quả để khắc phục lỗi chùm có thể được áp dụng.
Phân tập (diversity) là một kỹ thuật quan trọng trong truyền thông, bao gồm ba kiểu chính: phân tập không gian, phân tập tần số và phân tập thời gian Mỗi kiểu phân tập giúp cải thiện độ tin cậy của tín hiệu bằng cách truyền tải thông tin qua nhiều kênh khác nhau Phân tập không gian sử dụng nhiều anten tại các vị trí khác nhau để thu tín hiệu tốt nhất, trong khi phân tập tần số áp dụng nhiều tần số khác nhau cho cùng một thông điệp Cuối cùng, phân tập thời gian gửi cùng một tin nhắn vào các thời điểm khác nhau Một giải pháp khác là truyền song công, hay kiểm tra echo, cho phép phát hiện lỗi bằng cách gửi tín hiệu phản hồi về bộ phát Tuy nhiên, phương pháp này yêu cầu băng thông gấp đôi, điều này có thể không khả thi trong những tình huống cần tiết kiệm phổ.
Phương pháp thứ tư để xử lý BER cao là sử dụng yêu cầu lặp lại tự động ARQ (Automatic Repeat reQuest) Hệ thống ARQ áp dụng mã phát hiện lỗi để bên nhận kiểm tra và phát hiện lỗi trong khối dữ liệu, sau đó gửi phản hồi về bên phát thông qua một kênh hồi tiếp.
Tín hiệu trả lời trong truyền dữ liệu bao gồm ACK (chấp nhận) khi dữ liệu được thu đúng và NAK (không chấp nhận) khi dữ liệu thu sai Khi bên phát nhận NAK, họ phải truyền lại khối dữ liệu bị lỗi Có hai kỹ thuật ARQ chính: ARQ dừng và đợi (stop and wait ARQ) và ARQ liên tục (continuous ARQ) Trong ARQ dừng và đợi, bên phát gửi khối dữ liệu và dừng lại để chờ phản hồi từ bên thu; tùy thuộc vào việc nhận được ACK hay NAK, bên phát sẽ tiếp tục gửi khối dữ liệu tiếp theo hoặc phát lại khối dữ liệu trước đó Nếu thời gian chờ vượt quá quy định (time-out), bên phát coi như khối dữ liệu vừa gửi bị lỗi và sẽ phát lại Tuy nhiên, phương pháp này có nhược điểm là thời gian trễ truyền dẫn lớn Trong khi đó, ARQ liên tục cho phép các khối dữ liệu được đánh số thứ tự, giúp cải thiện hiệu suất truyền tải.
N và bản tin phản hồi ACK/NAK đều mang số thứ tự N tương ứng Bên phát liên tục gửi các khối số liệu mà không chờ phản hồi từ bên thu Bên thu thực hiện kiểm tra lỗi các khối số liệu đã nhận và gửi lại cho bên phát bản tin ACK/NAK kèm theo số thứ tự.
Khi bên phát nhận được phản hồi NAK từ bên thu, nó sẽ phát lại tất cả các khối số liệu từ khối bị lỗi trong ARQ lùi lại N (go-back-N ARQ) hoặc chỉ phát lại khối bị lỗi trong ARQ chọn lọc (selective ARQ) Mặc dù ARQ chọn lọc tối ưu hóa băng thông, nhưng nó yêu cầu dung lượng bộ nhớ lớn hơn so với ARQ lùi lại N, đặc biệt trong các kết nối tốc độ cao ARQ rất phù hợp cho các hệ thống thông tin máy tính nhờ vào kênh song công cho phép bên thu gửi lại tín hiệu ACK/NAK Tuy nhiên, việc thực hiện ARQ trở nên khó khăn trong các đường truyền dài với tốc độ cao, như trong thông tin vệ tinh.
Phương pháp thứ năm để giảm BER là áp dụng mã hóa sửa lỗi không phản hồi FECC (Forward Error Correction Coding) Mặc dù FECC đã được chấp nhận muộn hơn so với các phương pháp khác do độ phức tạp và chi phí cao, nhưng hiện nay, nhờ vào sự phát triển của các chip mã hóa/giải mã VLSI, độ phức tạp đã giảm đáng kể FECC tận dụng sự khác biệt giữa tốc độ truyền dẫn và thông lượng kênh để giảm xác suất lỗi Pb.
Giảm xác suất lỗi có thể đạt được bằng cách tăng thời gian trễ truyền dẫn, thông qua việc tăng độ dư để mã có khả năng phát hiện và sửa lỗi, cũng như thời gian cần thiết để kiểm tra và sửa lỗi trong khối số liệu thu Mặc dù có thể gặp phải độ trễ lớn, nhưng lợi ích mà FECC mang lại thường vượt trội hơn so với những khuyết điểm này.
2.2.2 Phân loại mã điều khiển lỗi
Hình 2.1 Phân loại mã điều khiển lỗi [6]
Mã khối được xác định bởi hai số nguyên n và k, cùng với một ma trận sinh hoặc đa thức sinh Hình 2.2 minh họa một bộ mã hóa mã khối, trong đó k bit thông tin đầu vào được mã hóa thành n bit đầu ra Mã n bit duy nhất được tạo ra từ k bit thông tin, với (n-k) bit còn lại là các bit kiểm tra dư.
Tỷ lệ mã (coder rate) được định nghĩa là R = k/n, là tiêu chuẩn quan trọng để đánh giá độ dư của mã, thường nằm trong khoảng từ 1/2 đến 1 Mã hệ thống (systematic code) bao gồm cả các bit tin và bit dư trong cùng một từ mã Có hai định nghĩa về mã hệ thống: định nghĩa nghiêm ngặt yêu cầu k bit tin phải nằm liên tục thành một khối, trong khi định nghĩa ít nghiêm ngặt hơn chỉ yêu cầu có mặt các bit tin mà không cần phải liên tục.
Hình 2.2 Mã khối hệ thống (n, k)
Mã khối tuyến tính (linear block code), hay còn gọi là mã nhóm (group code), là loại mã có các từ mã tương ứng 1-1 với các phần tử trong nhóm toán học Mã tuyến tính bao gồm từ mã toàn số 0 và có tính chất đóng, ví dụ như trong mã tuyến tính nhị phân, với hai từ mã bất kỳ, tổng của chúng cũng là một từ mã Tính chất này cùng với sự hiện diện của từ mã toàn số 0 giúp việc tính toán với mã tuyến tính trở nên dễ dàng hơn Hình 2.3 minh họa một ví dụ đơn giản về mã tuyến tính, với 4 ký tự nguồn a, b, c, d, k = 2 và n = 5, tạo thành mã (5, 2).
Hình 2.3 Minh họa tính chất đóng của mã khối tuyến tính
Mã vòng (cyclic code) là một loại mã khối tuyến tính không chứa từ mã toàn số 0 Đặc điểm của mã vòng là khi dịch vòng một từ mã, kết quả vẫn nằm trong cùng một bộ mã Ví dụ, các từ mã sau đây được xem là mã vòng.
Mã Golay là một loại mã vòng có khả năng sửa nhiều lỗi, nổi bật với mã Golay (23, 12) có thể sửa tới 3 lỗi cho chuỗi mã dài 23 bit Loại mã này được phát minh bởi nhà khoa học Golay.
Từ năm 1949, cấu trúc và cơ chế giải mã đã thu hút sự quan tâm nghiên cứu của nhiều chuyên gia Hiện nay, có hai phương pháp giải mã chính là phương pháp Kasami và giải mã tìm kiếm có hệ thống Mã Golay (23, 12) được ứng dụng phổ biến trong một số hệ thống thông tin Mã BCH nhị phân, được phát hiện bởi Hocquenghem vào năm 1959 và độc lập bởi Bose và Chaudhuri vào năm 1960, là một loại mã vòng có khả năng sửa lỗi Mã BCH có thể sửa tối đa t lỗi trong một từ mã dài n bit, với n = 2^m - 1, n - k ≤ mt và d min ≥ 2t + 1 Chẳng hạn, mã BCH (15, 7) có khả năng sửa tối đa 2 lỗi.
Mã khối
2.3.1 Mã kiểm tra chẵn lẻ (parity) Đây là loại mã khối đơn giản nhất Mã này được dùng phổ biến trong truyền số liệu dạng ASCII Với phương pháp này, mỗi ký tự trước khi truyền đi được thêm vào một bit chẵn lẻ, gọi là bit parity (P) Bit P được tính toán dựa vào ký tự phát sao cho tổng số bit 1 trong ký tự (kể cả bit P) là số chẵn nếu parity là loại chẵn ( even parity) và là số lẻ nếu parity là loại lẻ (odd parity) Dùng mã parity lẻ sẽ tránh được trường hợp truyền từ mã gồm toàn số 0, tuy nhiên, mã parity chẵn lại được dùng phổ biến hơn
Mã kiểm tra chẵn lẻ được minh họa trong Hình 2.4, trong đó bit parity chẵn là 1 và bit parity lẻ là 0 cho ký tự 1001001 Tỷ lệ mã của hệ thống này là 7/8, cho thấy mức dư rất thấp.
Hình 2.4 Ví dụ mã parity
Hình 2.5 Mạch tính toán bit parity [6]
Khi nhận ký tự, bên thu sẽ tính toán bit parity giống như bên phát và thực hiện so sánh Nếu hai giá trị parity trùng khớp, điều này cho thấy không có lỗi; ngược lại, nếu khác nhau, sẽ có kết luận rằng có lỗi xảy ra.
28 luận có lỗi Mạch tính toán bit parity cho cả bên phát và bên thu đơn giản là tập các cổng XOR như trên hình 2.5
Khả năng phát hiện lỗi của mã parity được xem xét khi sử dụng mã P chẵn, với các từ mã mang tin là 7 bit từ 0000000 đến 1111111 Trong bộ mã này, các từ mã liên tiếp sẽ được xác định.
Khoảng cách Hamming của bộ mã này là 2, cho thấy theo lý thuyết mã, nó chỉ có khả năng phát hiện 1 lỗi Tuy nhiên, thực tế cho thấy mã này có thể phát hiện tất cả các lỗi đơn và các lỗi với số lượng lẻ, nhưng không thể phát hiện các lỗi với số lượng chẵn.
2.3.2 Mã kiểm tra tổng khối BCC (Block sum Check Character)
Khi truyền một khối ký tự, khả năng xảy ra lỗi ở một ký tự trong khối có thể dẫn đến việc khối đó bị coi là lỗi Xác suất này được gọi là xác suất lỗi khối (block error rate) Để cải thiện khả năng phát hiện lỗi của mã parity trong quá trình truyền khối ký tự, ta có thể thêm không chỉ một bit P cho mỗi ký tự đơn lẻ mà còn thêm một tập hợp các bit P tính toán trên toàn bộ khối.
Phương pháp này bao gồm việc thêm vào mỗi ký tự trong khối một bit P, gọi là bit parity hàng (row parity), và mỗi vị trí của bit trong khối cũng được bổ sung một bit P, gọi là bit parity cột (column parity) Tập hợp các bit parity cột sẽ tạo thành ký tự kiểm tra tổng khối BCC.
Hình 2.6 Ví dụ kiểm tra tổng modulo-2
Mã kiểm tra tổng cải thiện khả năng phát hiện lỗi so với mã parity đơn bằng cách sử dụng bit parity hàng và cột Mặc dù không phát hiện được hai bit lỗi trong cùng một ký tự ở cùng cột, nhưng khả năng này hiếm xảy ra Khi xảy ra lỗi đơn, việc so sánh bit parity hàng và cột thu được với bit tính toán cho phép xác định vị trí bit lỗi và sửa chữa nó Phương pháp này thường được áp dụng cho dữ liệu truyền đi dưới dạng mảng ký tự ASCII.
Phương pháp này có một biến thể sử dụng tổng bù 1 để tính BCC thay vì tổng modulo-2 Trong phương pháp mới, các ký tự trong khối cần truyền được xem như các số nhị phân không dấu, và trước tiên, chúng được cộng lại bằng thuật toán bù.
Sau khi đảo ngược kết quả để tạo thành BCC, bên thu sẽ tính tổng bù 1 cho tất cả các ký tự trong khối, bao gồm cả BCC Nếu không có lỗi xuất hiện, tổng sẽ bằng 0 Cần lưu ý rằng, trong thuật toán bù 1, bit nhớ cuối cùng sẽ được quay vòng và cộng vào tổng hiện tại, do đó số 0 có thể được biểu diễn bằng toàn số 0 hoặc toàn số 1 Phương pháp mới này, được minh họa qua ví dụ trong hình 2.7, cho thấy khả năng phát hiện lỗi tốt hơn so với phương pháp tổng modulo-2.
Hình 2.7 Ví dụ kiểm tra tổng bù 1
Mã kiểm tra tổng bù 1 thường được tính toán bằng phần mềm, dùng để kiểm tra lỗi cho các bản tin giao thức qua internet
2.3.3 Mã khối tuyến tính a Ví dụ về mã khối tuyến tính
Hình 2.8 minh họa một mạch tạo mã khối tuyến tính (4, 7) gồm 4 bit tin (I 1 đến I4) và bit kiểm tra chẵn lẻ (P1 đến P 3 )
Giả sử dùng parity chẵn, mối quan hệ giữa các bit tin và bit kiểm tra là:
𝑃 1 = 𝐼 1 ⊕ 𝐼 2 ⊕ 𝐼 3 Nếu các bit tin là 𝐼 1 = 1, 𝐼 2 = 0, 𝐼 3 = 1, 𝐼 4 = 1, các bit P tính được sẽ là 𝑃 1 1, 𝑃 2 = 0 và 𝑃 3 = 0
Hình 2.8 Mạch tạo mã khối (4, 7)
Ta có thể viết lại quan hệ giữa các bit tin và bit kiểm tra trong ví dụ trên như sau:
Từ các phương trình quan hệ này, ta rút ra ma trận kiểm tra H như sau:
Phần bên trái của đường chấm chấm chứa các hệ số của các bit tin 𝐼1 đến 𝐼4, trong khi phần bên phải là ma trận 3x3 với đường chéo là 1, tức là ma trận đơn vị Ma trận sinh (generator matrix) được sử dụng để biểu diễn mối quan hệ giữa các bit tin và mã.
Ma trận sinh, ký hiệu G, là một ma trận 4 x 7 được hình thành từ sự kết hợp giữa ma trận đơn vị 4 x 4 và ma trận hoán vị của ma trận bên trái đường chấm chấm của H Ví dụ cụ thể về ma trận sinh sẽ được trình bày trong bài viết.
Bằng cách sử dụng ma trận sinh G, chúng ta có thể tính toán từ mã bằng cách nhân vector hàng m đại diện cho từ mã mang tin với G Ví dụ, với dãy mang tin 1011, từ mã khối tuyến tính (4,7) được tạo ra sẽ là:
Ma trận kết quả là vector biểu diễn cho từ mã khối (4, 7), bao gồm hai phần: 4 bit bên trái đại diện cho 4 bit tin 𝐼1 đến 𝐼4, và 3 bit bên phải là 3 bit kiểm tra 𝑃1 đến 𝑃3.
Theo cách lập mã này, ta nhận thấy khoảng cách Hamming tối thiểu là 3, do đó mã này sửa sai được 1 lỗi c) Bảng syndrome để giải mã sửa lỗi
Syndrome là thuật ngữ độc lập với mã phát và phụ thuộc vào dãy thu bị lỗi, ký hiệu vector syndrome là s Bảng syndrome chứa tất cả các giá trị syndrome có thể có Đối với vector biểu diễn từ mã khối (n, k), ta có quan hệ m x G = c.
Mã vòng
2.4.1 Đặc điểm của mã vòng
Mã vòng, như đã đề cập, là một lớp con của mã khối tuyến tính với cấu trúc toán học cho phép sửa lỗi hiệu quả Việc thực hiện mã vòng có thể dễ dàng thông qua phần cứng sử dụng các thanh ghi dịch và cổng XOR Khi dịch vòng một từ mã, kết quả vẫn thuộc cùng bộ mã Mã vòng có thể được biểu diễn bằng đa thức và được tạo ra thông qua phép nhân modulo-2 giữa vector mang tin và đa thức sinh, được gọi là mã vòng không hệ thống.
2.4.2 Mã kiểm tra độ dư vòng CRC (Cyclic Redundancy Check)
Mã CRC, hay mã vòng kiểm tra, là công cụ phổ biến trong việc phát hiện lỗi trên các kênh truyền nối tiếp bit mà không sửa lỗi Mỗi khung tin sẽ được tính toán một tập bit kiểm tra dựa trên nội dung của nó, sau đó thêm vào đuôi khung để truyền đi Bên nhận sẽ thực hiện tính toán tương tự để xác định xem có lỗi xảy ra hay không Các bit kiểm tra này được gọi là dãy kiểm tra khung FCS (Frame Check Sequence).
Tính toán tạo mã CRC bên phát và kiểm tra lỗi bên thu:
Gọi M(x) là đa thức tin bậc k-1, G(x) là đa thức sinh bậc r
Thực hiện phép chia M(x)x r cho G(x), sẽ được:
𝐆(𝐱), với Q(x) là thương số và R(x) là số dư (2.10)
Trong bài viết này, chúng ta xem xét đa thức T(x) = M(x)x^r + R(x), đại diện cho từ mã CRC phát Khi không có lỗi xảy ra, phần dư khi chia từ mã thu cho đa thức sinh sẽ bằng 0.
Khi truyền một khung tin 8 bit 11100110 qua đường truyền số liệu, mã CRC được sử dụng để phát hiện lỗi với đa thức sinh là 11001 Mã CRC được tạo ra theo quy trình như hình 5.10.
Hình 2.10 Ví dụ tạo mã CRC
Sau khi thực hiện tính toán như trên, ta tìm được từ mã CRC là: 11100110
0110, trong đó 8 bit đầu là 8 bit tin và 4 bit sau là 4 bit kiểm tra
Giả sử tại bên thu, ta thu được từ mã: 111001101111 Hình 2.11 trình bày việc thực hiện phép chia đa thức thu cho đa thức sinh như trên
Hình 2.11 Ví dụ giải mã CRC và phát hiện lỗi
Việc lựa chọn đa thức sinh là rất quan trọng vì nó xác định các kiểu lỗi có thể phát hiện Một đa thức sinh bậc r với ít nhất 3 số 1 có khả năng phát hiện tất cả các lỗi đơn, lỗi đôi, lỗi xảy ra với số lẻ, lỗi chùm ngắn hơn r và hầu hết các lỗi chùm dài hơn hoặc bằng r Dưới đây là một số đa thức sinh thường được sử dụng trong thực tế.
CRC - 16 và CRC - CCITT được sử dụng phổ biến trong mạng WAN, trong khi CRC - 32 thường được áp dụng trong hầu hết các mạng LAN Mặc dù khả năng tự sửa lỗi của CRC không cao, nhưng khả năng phát hiện lỗi của nó rất tốt, vì vậy thường được kết hợp với ARQ để cải thiện quá trình sửa lỗi.
Mạch thực hiện mã CRC Hình 2.12 trình bày sơ đồ thực hiện CRC bên phát
Trong ví dụ trên, FCS sử dụng một thanh ghi dịch 4 bit để biểu diễn các bit tích cực x3, x2, x1 và x0 trong đa thức sinh Trong đó, x3 và x0 có giá trị 1, còn x2 và x1 có giá trị 0 Trạng thái mới của x1 và x2 được cập nhật từ trạng thái trước đó của x0 và x1, trong khi trạng thái mới của x0 và x3 được xác định qua phép XOR với trạng thái của đường phản hồi.
Mạch hoạt động như sau: trước tiên xóa thanh ghi dịch FCS và nạp song song
8 bit đầu tiên được đưa vào thanh ghi theo phương pháp song song và xuất ra theo dạng nối tiếp (PISO) Tín hiệu điều khiển phản hồi là 1, và theo tốc độ của đồng hồ phát TxC, các bit này được dịch ra đường truyền từ msb đến lsb Đồng thời, dòng bit này cũng được xử lý bằng phép XOR.
Hình 2.12 Sơ đồ mạch tạo CRC bên phát
36 x 3 qua đường phản hồi trở lại các đầu vào chọn lọc của FCS Sau khi 8 bit đầu
Khi byte đầu tiên trong khung tin được truyền qua thanh ghi PISO, quy trình này sẽ được lặp lại Sau khi byte tin cuối cùng được xuất ra, thanh ghi PISO sẽ chứa toàn bộ số 0, và tín hiệu điều khiển sẽ chuyển từ 1 sang 0 Do đó, nội dung của thanh ghi FCS, chứa các bit kiểm tra, sẽ được gửi theo sau khung dữ liệu trên đường truyền Trong hình 5.12, chúng ta giả định rằng khung tin chỉ có 1 byte (N = 1).
Hình 2.13 Sơ đồ mạch kiểm tra CRC bên thu
Hình 2.14 Trình bày sơ đồ kiểm tra CRC bên thu
Dữ liệu thu RxD được chuyển vào thanh ghi SIPO (Serial Input - Parallel Output) theo dạng nối tiếp và xuất ra song song ở giữa mỗi ô bit Các bit RxD sẽ được XOR với x3 và phản hồi về thanh ghi SIPO Khi nhận đủ một byte 8 bit, thiết bị điều khiển sẽ thực hiện việc đọc byte đó.
Giải mã mã CRC bằng phương pháp bẫy lỗi:
Xét trường hợp mã CRC được thành lập với số bit tin k và số bit tổng cộng n thoả mãn bất đẳng thức:
Phân tích x n + 1 ra các thừa số nguyên tố rồi chọn thừa số bậc r làm đa thức sinh Ví dụ: x 7 +1 = (x+1)(x 3 + x 2 + 1)( x 3 + x+ 1)
Chọn đa thức sinh là G(x) = x 3 + x 2 + 1 hoặc G(x) = x 3 + x+1
Mã CRC trong trường hợp này có khả năng sửa được lỗi, cụ thể là 1 lỗi
Hình 2.15 Thuật toán sửa lỗi mã CRC bằng phương pháp bẫy lỗi
Thuật toán sửa lỗi cho mã CRC bằng phương pháp bẫy lỗi được trình bày trong hình 2.14 Đầu tiên, đa thức T'(x) biểu diễn cho từ mã thu sẽ được dịch vòng sang trái và chia cho G(x) để tìm số dư R'(x) Quá trình dịch vòng này sẽ tiếp tục cho đến khi trọng lượng dư nhỏ hơn hoặc bằng 1 Trong lưu đồ, biến đếm sẽ ghi lại số lần dịch vòng trái Sau khi có R'(x), ta thực hiện phép cộng giữa T'(x) và R'(x) để bẫy và sửa lỗi Cuối cùng, để khôi phục vị trí các bit trong T'(x), cần dịch vòng ngược lại sang phải với số lần tương ứng đã dịch sang trái, được xác định bởi biến đếm.
Ví dụ tin 4 bit 1100 sử dụng đa thức sinh x^3 + x^2 + 1 để thực hiện mã hóa, tạo ra mã phát 1100 101 Khi bên thu nhận mã 1110 101, việc kiểm tra lỗi được thực hiện bằng cách chia T'(x) cho G(x), và kết quả cho thấy có dư, xác nhận có lỗi trong mã Tiến trình sửa lỗi sẽ được thực hiện tiếp theo.
Dịch vòng trái lần thứ nhất được 1101011, chia cho G(x) dư là 011
Dịch vòng trái lần thứ hai được 1010111, chia cho G(x) dư là 110
Dịch vòng trái lần thứ ba được 0101111, chia cho G(x) dư là 001
Thực hiện phép cộng modulo-2: 0101111 ⊕ 001 ta được 0101110, rồi dịch vòng sang phải 3 lần ta được lại từ mã 1100101 giống như bên phát.[6]
Mã Hamming là dạng mã vòng đơn giản nhất, với khoảng cách tối thiểu d = 3, cho phép sửa chữa một lỗi Một từ mã Hamming có thể được biểu diễn tổng quát với i là các bit tin và c là các bit kiểm tra.
Các bit c chính là kết quả của phép XOR giữa các vị trí của các bit 1 Quá trình kiểm tra lỗi bên thu tương tự như bên phát; nếu kết quả của phép XOR khác 0, thì vị trí đó chính là nơi có bit lỗi.
Ví dụ xét khả năng sửa lỗi đơn của mã Hamming (7, 11) trong trường hợp từ mã mang tin là 1011101
Từ mã Hamming có dạng: c c 1c 011c 101 1 2 4 8 Các bit 1 ở các vị trí: 3, 6,
9 và 11 Đổi các số này sang nhị phân:
Vậy từ mã Hamming phát đi là: 10100110101
Giả sử ở bên thu, thu được từ mã: 10000110101 Đổi giá trị chỉ vị trí của các bit 1 sang nhị phân rồi tính XOR tương tự như bên phát:
Từ đây xác định được bit lỗi là bit ở vị trí thứ 3 Vậy từ mã thu được sửa lại là:
10100110101 giống như từ mã phát [3]
Mã chập
Mã chập được đặc trưng bởi ba số nguyên n, k và K, trong đó mã chập (n, k, K) được xây dựng từ các thanh ghi dịch kK bit Loại mã chập phổ biến nhất là mã chập với k = 1, sử dụng bộ mã hóa là thanh ghi dịch K bit Đầu ra từ các vị trí trong thanh ghi được chọn để thực hiện phép cộng modulo-2.
Bộ cộng modulo-2 có n lượng đầu ra, và bộ chuyển mạch sẽ lấy mẫu từng đầu ra này theo nhịp của đồng hồ thanh ghi dịch.
Hình 2.15 minh họa một bộ mã hóa mã chập với k = 1, K = 3, n = 2
Hình 2.16 Ví dụ bộ mã hóa chập tỷ lệ 1/2 a Biểu diễn mã chập bằng đa thức sinh
Bộ mã hóa mã chập có thể được biểu diễn bằng các đa thức sinh, mỗi đa thức này tương ứng với một bộ cộng modulo-2 Đa thức sinh có bậc ≤ K −1 thể hiện mối liên hệ giữa đầu ra của một vị trí trong thanh ghi dịch và bộ cộng modulo-2 Ví dụ, hai đa thức sinh đã được nêu rõ.
Mã hóa chập được định nghĩa bởi hai hàm 𝐺 1 (x) = 1 + x² và 𝐺 2 (x) = 1 + x Khi dãy tin vào là 1100, dãy mã hóa tương ứng sẽ là 11101101, cho thấy mỗi bit tin vào được mã hóa thành hai bit, tạo ra tỷ lệ mã 1/2 Đáp ứng xung của mã hóa, tức là phản ứng của bộ mã hóa khi bit vào là 1, trong trường hợp này là 110110 Với dãy vào 1101, dãy ra được tính bằng cách chập dãy vào với đáp ứng xung, do đó mã này được gọi là mã chập Để trực quan hóa mã chập, có thể sử dụng sơ đồ cây.
Hình 2.16 minh họa sơ đồ cây biểu diễn mã chập cho ví dụ trên, với giả định rằng tất cả các thanh ghi ban đầu được đặt về 0 Khi đọc sơ đồ cây từ trái sang phải, mỗi nhánh cây đại diện cho một từ mã hai bit tương ứng với một bit vào Nếu bit vào là 0, ta di chuyển sang nhánh phải ở phía trên, còn nếu bit vào là 1, ta di chuyển sang nhánh phải ở phía dưới.
Hình 2.17 Sơ đồ cây biểu diễn bộ mã hóa mã chập ở hình 2.15
Khi dãy vào là 110 và theo đường nét đậm trên sơ đồ cây, dãy ra sẽ là 111011 Nếu số bit vào là L, số nhánh trong sơ đồ cây sẽ là 2^L Do đó, khi số bit vào tăng, sơ đồ cây trở nên rất cồng kềnh Bên cạnh đó, mã chập có thể được biểu diễn bằng sơ đồ lưới.
Trong sơ đồ cây, bộ mã hóa mã chập có 4 trạng thái phân biệt, được ký hiệu là a, b, c và d, tương ứng với các cặp bit nhị phân 00.
Sơ đồ cây cho thấy quá trình phân nhánh, với lần đầu tiên tạo ra hai nút, lần thứ hai bốn nút, và số nút tăng gấp đôi sau mỗi lần phân nhánh Sau ba lần phân nhánh, nửa trên và nửa dưới của cây trở nên giống nhau, cho thấy rằng hai nút có cùng trạng thái có thể kết hợp thành một nút Áp dụng điều này cho sơ đồ cây, ta có sơ đồ lưới, trong đó các nút biểu diễn trạng thái của bộ mã hóa Các nút cùng hàng thể hiện cùng một trạng thái, với mỗi nút lưới có hai nhánh: một nhánh cho bit vào là 0 (đường nét liền) và một nhánh cho bit vào là 1 (đường nét đứt) Cấu trúc lưới này được lặp lại sau cột nút thứ K.
Hình 2.18 Sơ đồ lưới biểu diễn bộ mã hóa mã chập ở hình 2.15
2.5.2 Giải mã mã chập bằng thuật toán Viterbi
Khác với mã khối có độ dài cố định, mã chập không có kích thước đặc trưng Tuy nhiên, mã chập vẫn được định hình thành cấu trúc khối bằng cách thêm một số bit 0 vào cuối dãy tin, nhằm đảm bảo rằng toàn bộ dãy tin được dịch qua thanh ghi dịch Các bit 0 này không mang thông tin, dẫn đến tỷ lệ mã sẽ nhỏ hơn k/n Để duy trì tỷ lệ mã gần với k/n, chu kỳ thêm bit 0 thường rất dài.
300 bit tin mới gắn thêm 2 bit 0 Vậy tỷ lệ mã là 300/604 xấp xỉ 1/2
Có ba kiểu giải mã chập chính: tuần tự, ngưỡng và Viterbi, trong đó Viterbi là phương pháp phổ biến nhất Thuật toán Viterbi dựa trên nguyên tắc giải mã lân cận gần nhất và tính toán khoảng cách Hamming (metric) giữa tín hiệu thu vào thời điểm ti và tất cả các đường dẫn đến mỗi trạng thái tại thời điểm đó Khi hai đường dẫn đến cùng một trạng thái, thuật toán chọn đường có khoảng cách Hamming ngắn hơn, được gọi là đường sống (surviving path) Quá trình chọn đường sống này được thực hiện cho tất cả các trạng thái tại mọi thời điểm.
Ta xét lại ví dụ mã hóa mã chập hình 5.15 Giả sử dãy thu là
1010001010, dãy vào bộ mã hóa là 5 bit, trong đó có 3 bit tin và 2 bit 0 thêm vào.Trước hết ta xây dựng lưới giải mã như hình 2.18
Hình 2.19 Sơ đồ lưới giải mã [6]
So sánh và chọn đường có metric thấp hơn, cuối cùng ta giữ lại đường sống được thể hiện bằng nét đậm (bao gồm nét đứt và nét liền) trên hình 2.19 Từ đó, ta suy ra dãy tin giải mã.
Hình 2.20 Đường sống và kết quả giải mã [6]
Bộ giải mã Viterbi bao gồm ba khối chính: khối tính giá trị metric nhánh BMV (Branch Metric Value), khối tính metric đường PMV (Path Metric Value) - tổng hợp các metric nhánh dọc theo một đường trong lưới, và khối xác định đầu ra - chọn đường có metric nhỏ nhất.