Nguyên lý truyền thông phkkhanh NLTT C3 tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả c...
Trang 1Si(t) S0(t)
Nhiễu
Nguồn tin
Kênh tin
Nhận tin
CHƯƠNG 3: MÃ HÓA NGUỒN VÀ MÃ HOÁ KÊNH
THÔNG TIN
1 Khái niệm
1.1 Hệ thống truyền tin
Hình 3.1: Mô hình hệ thống thông tin
Nguồn tin: là tập hợp các tin, hệ thống truyền tin dùng để lập các bản tin khác nhau trong quá trình truyền
+ Nguồn tin được mô hình hoá toán học bằng bốn quá trình sau:
- Quá trình ngẫu nhiên liên tục: Nguồn tiếng nói, âm nhạc, hình ảnh
- Quá trình ngẫu nhiên rời rạc: Một quá trình ngẫu nhiên liên tục sau khi
được lượng tử hóa theo mức
- Chuỗi ngẫu nhiên liên tục: Nguồn liên tục gián đoạn theo thời gian
(PAM, PPM)-không bị lượng tử hóa
- Chuỗi ngẫu nhiên rời rạc: Trong hệ thống thông tin xung có lượng tử hóa
như PCM
Kênh tin: Là nơi diễn ra sự truyền lan của tín hiệu mang tin và chịu tác động của nhiễu
S 0 (t) = N m S i (t) + N a (t)
+ S i (t): Tín hiệu vào & S 0 (t): tín hiệu ra của kênh tin
+ N m (t), N a (t) : Đặc trưng cho nhiễu nhân, nhiễu cộng
Trong thực tế: S0 (t) = N m S i (t)*H(t) + N a (t); H(t): đáp ứng xung của kênh
Nhận tin: Là đầu cuối của hệ thống truyền tin làm nhiệm vụ khôi phục tin tức ban đầu
Giải mã nguồn Hình 3.2: Hệ
thống truyền
tin số (rời rạc)
Trang 2 Hai vấn đề cơ bản của hệ thống truyền tin:
+ Hiệu suất: tốc độ truyền tin của hệ thống
+ Độ chính xác: khả năng chống nhiễu của hệ thống
Mô tả trạng thái truyền tin có nhiễu
Giả sử, một thông báo được truyền đi trên một kênh truyền nhị phân rời rạc
Thông báo cần truyền được mã hóa thành dãy số nhị phân (0,1) và có độ dài
được tính theo đơn vị bit Giả sử 1 bit truyền trên kênh nhiễu với xác suất 1/4
(hay tính trung bình cứ truyền 4 bit thì có thể nhiễu 1 bit)
Minh họa kỹ thuật giảm nhiễu
Trong kỹ thuật truyền tin, người ta có thể làm giảm sai số khi nhận tin bằng cách truyền lặp lại 1 bit với số lẻ lần
Ví dụ: truyền lặp lại 3 cho 1 bit cần truyền (xác suất nhiễu 1 bit bằng 1/4)
Khi nhận 3 bit liền nhau ở cuối kênh được xem như là 1 bit Giá trị của bit này
được hiểu là 0 (hay 1) nếu bit 0 (bit 1) có số lần xuất hiện nhiều hơn trong dãy 3
bit nhận được liền nhau Ta cần chứng minh với phương pháp truyền này thì xác
suất truyền sai thật sự < 1/4 (xác suất nhiễu cho trước của kênh truyền)
Sơ đồ truyền tin:
Bit truyền Truyền lặp 3 lần Nhận 3 bit Giải mã Xác suất
27/64 9/64 9/64 9/64 3/64 3/64 3/64 1/64 1/64 3/64 3/64 3/64 9/64 9/64
Trang 3Giả sử Xi xác định giá trị đúng hay sai của bit thứ i nhận được ở cuối kênh truyền với Xi =1 nếu bit thứ i nhận được là đúng và Xi = 0 nếu bit thứ i nhận được là sai Theo giả thiết ban đầu của kênh truyền thì phân phối xác suất của
Xi có dạng Bernoulli b(1/4):
P 3/4 1/4Gọi Y ={X1 + X2 + X3} là tổng số bit nhận sai sau 3 lần truyền lặp cho 1 bit Trong trường hợp này Y tuân theo phân phối Nhị thức B(p,n), với p=1/4 (xác
suất truyền sai một bit) và q =3/4 (xác suất truyền đúng 1 bit): Y ~ B(i,n)
Hay:
p(Y = i) = ớ ! ! !
Xác suất truyền sai khi Y {2,3} là:
P = p(Y 2) = p(Y = 2) + p(Y = 3) =
1.2 Số đo thông tin
Khi m ký hiệu của nguồn tin có xác suất khác nhau và không độc lập
thống kê với nhau thì:
I(xi) = log [1/p(ai)] (3.1)
Lượng tin chứa trong một chuỗi x gồm n ký hiệu: n lần lượng tin của 1 ký
hiệu (vì đẳng xác suất)
I(x) = n.logm (3.2)
Đơn vị lượng đo thông tin thường được chọn là cơ số 2
Lượng tin chứa trong một a i bất kỳ, do đẳng xác suất nên mỗi tin a i đều có
xác suất là p(a i )=1/m:
I(ai)=logm (3.3)
Lượng tin riêng: Đối với mỗi tin xi của nguồn x đều có một lượng tin
riêng được đánh giá bằng:
Lượng tin còn lại của xi sau khi đã nhận được yj được xác định bằng:
Trang 4 Lượng tin tương hỗ:
Để xác định lượng tin về xi chứa trong yi chúng ta cần phải biết lượng tin ban đầu của xi và lượng tin còn lại của xi sau khi đã nhận được yi, lượng tin tương hỗ sẽ là hiệu của hai lượng tin này:
Lượng tin trung bình: là lượng tin tức trung bình chứa trong m ký hiệu
bất kỳ của nguồn đã cho (trị trung bình theo tập hợp)
Ví dụ: X = {x0, x1} với xác suất P(x0) = 0,99; P(x1) = 0,01
I(X) = -0,99log20,99 – 0,01log20,01 = 0,081 [bit/ký hiệu]
Trong khi đó lượng tin của x1 khá lớn: I(x1) = -log20,01 = 6,5 [bit/ký hiệu]
Lượng tin tương hỗ trung bình:
Lượng tin riêng trung bình có điều kiện:
1.2.2 Entropy nguồn rời rạc
Là một thông số thống kê cơ bản của nguồn Về ý nghĩa vật lý độ bất ngờ và lượng thông tin trái ngược nhau, nhưng về số đo chúng bằng nhau:
Bản thân X và Y đều mang một lượng tin và thông tin về X và Y chưa biết
do chúng là ngẫu nhiên Do đó, X hay Y đều có một lượng tin không chắc chắn
và lượng tin chắc chắn, tổng của 2 lượng tin này là không đổi và thực tế nó bằng
bao nhiêu thì ta chưa thể biết Lượng tin không chắc chắn của X (hay Y) được
gọi là Entropy
Tuy nhiên, nếu X và Y có tương quan nhau thì X cũng có một phần lượng tin
không chắc chắn thông qua lượng tin đã biết của Y (hay thông tin về Y đã được
Trang 5biết) Trong trường hợp này, một phần lượng tin không chắc chắn của thông
qua lượng tin đã biết của Y được gọi là Entropy có điều kiện
Nhận xét về độ đo lượng tin
Rõ ràng, ta cần phải xây dựng một đại lượng toán học rất cụ thể để có thể đo được lượng tin chưa biết từ một biến ngẫu nhiên Một cách trực quan, lượng tin
đó phải thể hiện được các vấn đề sau:
Một sự kiện có xác suất càng nhỏ thì sự kiện đó ít xảy ra, cũng có nghĩa là tính không chắc chắn càng lớn Nếu đo lượng tin của nó thì nó cho một lượng tin không biết càng lớn
Một tập hợp các sự kiện ngẫu nhiên (hay Biến ngẫu nhiên) càng nhiều sự kiện
có phân phối càng đều thì tính không chắc chắn càng lớn Nếu đo lượng tin của
nó thì sẽ được lượng tin không biết càng lớn Hay lượng tin chắc chắn càng nhỏ
Một phân phối xác suất càng lệch nhiều (có xác suất rất nhỏ và rất lớn) thì tính
không chắc chắn càng ít và do đó sẽ có một lượng tin chưa biết càng nhỏ so với phân phối xác suất đều hay lượng tin chắc chắn của nó càng cao
Vậy Entropy là một đại lượng toán học dùng để đo lượng tin không chắc (hay
lượng ngẫu nhiên) của một sự kiện hay của phân phối ngẫu nhiên cho trước
(uncertainty measure)
Đặc tính của Entropy H(X):
+ H(X) 0: luôn luôn dương hoặc bằng 0
+ H(X) = 0 khi nguồn tin chỉ có một ký hiệu (p(xi) = 1)
+ H(X)max khi xác suất xuất hiện các ký hiệu của nguồn bằng nhau
VD: X = {x0, x1} có 2 tin và có xác suất là P0, P1
Vậy theo luật phân bố xác suất : P0 + P1 = 1 P1 = 1 – P0
H(X) = - P0logP0 – P1logP1 = - P0logP0 – (1 – P0)log(1 – P0)
H(X) = 0 khi P0 = 1 hay P1 = 1
H(X)max khi P0 = P1 = ½ H(X)max = 1
Entropy đồng thời: là độ bất định trung bình của một cặp (x,y) bất kỳ
trong tích XY
Trang 6 Entropy có điều kiện:
1.2.3 Thông lượng của kênh thông tin
Tốc độ thiết lập tin của nguồn:
Vd: Con người vì kết cấu của cơ quan phát âm hạn chế nên 1 giây chỉ phát
âm được từ 5 đến 7 ký hiệu âm tiết trong lời nói thông thường, trong khi đó máy điện báo có thể tạo ra từ 50 tới 70 ký hiệu trong 1 giây
+ H(X): Entropy của nguồn
+ n 0 : Số ký hiệu được lập trong một đơn vị thời gian (tốc độ symbol)
Thông lượng của kênh C là lượng thông tin tối đa kênh cho qua đi trong một đơn vị thời gian mà không gây sai nhầm C[bps]
Thông thường R < C, để R tiến tới gần C ta dùng phép mã hoá thống kê
tối ưu để tăng Entropy
3.2.1 Thông lượng kênh rời rạc không nhiễu:
Tốc độ lập tin cực đại trong kênh có nhiễu:
2 Mã hóa nguồn tin
2.1 Mã hiệu
2.1.1 Mã hiệu và các thông số cơ bản của mã hiệu:
Cơ số của mã m là số các ký hiệu khác nhau trong bảng chữ của mã Đối với mã nhị phân m = 2
Độ dài của mã n là số ký hiệu trong một từ mã Nếu độ dài các từ mã như
nhau ta gọi là mã đều, ngược lại là mã không đều
Độ dài trung bình của bộ mã:
(3.18)
Trang 7+ p(x i ): xác suất xuất hiện tin x i của nguồn X được mã hóa
+ n i : độ dài từ mã tương ứng với tin x i
+ N: Tổng số từ mã tương ứng với tổng số các tin của x i
Tổng hợp các tổ hợp mã có thể có được: N0=2n với m=2, nếu:
+ N<N 0 ta gọi là mã vơi
+ N>N 0 ta gọi là mã đầy
ª Điều kiện thiết lập mã hiệu:
Điều kiện chung cho các loại mã là quy luật đảm bảo sự phân tách các tổ hợp mã
Điều kiện riêng cho các loại mã:
+ Đối với mã thống kê tối ưu: độ dài trung bình tối thiểu của mã
+ Đối với mã sửa sai: khả năng phát hiện và sửa sai cao
2.1.2 Bảng mã không tách được
Bảng mã không tách được là bảng mã mà khi mã hóa thông báo Msg ta sẽ nhận được một dãy các từ mã ws, và khi giải mã dãy các từ mã ws thì ta có thể nhận được nhiều thông báo Msg khác nhau
Ví dụ: Xét biến ngẫu nhiên X={x1, x2, x3, x4} có bảng mã W={w1=0,
Nhận xét: Bảng mã giải mã không tách được là bảng mã mà trong đó tồn tại
ít nhất một từ mã này là mã khóa của một hay nhiều từ mã khác trong bộ mã
(ví dụ từ mã w 1 =0 hay w 2 =1 là mã khóa của w 3 )
2.1.3 Bảng mã tách được
Bảng mã tách được là bảng mã mà khi mã hóa thông báo Msg ta sẽ nhận được dãy các từ mã ws, và khi giải mã dãy các từ mã ws thì ta chỉ nhận được một thông báo duy nhất là Msg ban đầu
Ví dụ: Xét biến ngẫu nhiên X = {x1, x2} có bảng mã tương ứng W = {w1 = 0, w2
= 01}
Phương pháp giải mã được sử dụng như sau: chỉ giải mã khi nào đã nhận
Trang 8được đoạn mã với độ dài bằng độ dài của từ mã dài nhất
Giả sử dãy mã nhận được (cần giải mã) là: 0010000101001
Sử dụng phương pháp giải mã trên ta nhận được duy nhất dãy thông báo gốc:
x1x2x1x1x1x2x2x1x2
Có thể chi tiết hóa các bước giải mã dãy từ mã trên như sau:
Nhận được đoạn 00 -> Giải ra x1, còn lại 0
Nhận tiếp 1 ->01 -> Giải ra x2
Nhận tiếp 00 -> Giải ra x1, còn lại 0
Nhận tiếp 0 -> 00 -> Giải ra x1, còn lại 0
Nhận tiếp 0 -> 00 -> Giải ra x1, còn lại 0
Kết luận: Bảng mã tách được là bảng mã mà trong đó không tồn lại từ mã này
là mã khóa từ mã khác, tuy nhiên vẫn có thể tồn tại từ mã này là tiền tố (phần
đầu) của từ mã kia
2.1.4 Phương pháp biểu diễn mã
k: số thứ tự của ký hiệu trong từ mã
m: là cơ số của mã (nhị phân m=2)
Ví dụ: trong số từ mã nhị phân có 4 ký hiệu: 1011
13 2 1 2 1 2 0 2
1 0 1 2 3
b
Trang 9
Mỗi từ mã sẽ hoàn toàn xác định khi ta xác định được cặp (n,b) của nó Như vậy
mỗi từ mã được biểu diễn 1 cặp tọa độ (n,b) duy nhất
Trang 10 Nếu chỉ dùng một tổ hợp cuối , hàm cấu trúc mã sẽ là:
+ Từ (3.20) và (3.21) ta có công thức truy chứng tính G(nj)
G(nj) = G(nj-n1) + G(nj-n2) + …+ G(nj-ni) (3.22) Trong đó: nj +1; G(nj = ) = 1; G(nj < ) = 0
Nếu dùng nhiều tổ hợp cuối để ghép 1, 2, …i, cách ghép các dãy tổ hợp
sơ đẳng với một trong các tổ hợp cuối có nhiều cách
G(nj) = g(nj - 1) + g(nj - 2) + ….+ g(nj - k) (3.23)
Trang 11- Ví dụ: Với bộ mã ở trên ta lấy
2.2 Các loại mã thống kê tối ưu
2.2.1 Một số định lý cơ bản của mã thống kê tối ưu
Định lý giới hạn về độ dài trung bình của từ mã: n
mã thống kê có hai đặc điểm sau:
- Các ký hiệu khác nhau của bộ chữ phải đồng xác suất
- Xác suất xuất hiện các ký hiệu trong từ mã không phụ thuộc sự có mặt của các ký hiệu ra trước
Tiêu chuẩn mã thống kê tối ưu:
(3.25) H(U): Entropy của nguồn
: Độ dài trung bình của từ mã
càng tiến tới 1 hiệu suất của mã càng cao
Mã thống kê có tính prefix
Trang 122.2.2 Mã thống kê tối ưu Shannon
Các bước thực hiện mã thống kê tối ưu Shannon:
Bước 1: Liệt kê các tin của nguồn ui và các xác suất pi tương ứng theo xác
qi = 0,34
0,34 x 2 = 0,68 0,68 x 2 = 1,36 0,36 x 2 = 0,72 0,72 x 2 = 1,44
qi = 0,86
0,86 x 2 = 1,72 0,72 x 2 = 1,44 0,44 x 2 = 0,88 0,88 x 2 = 1,76 0,76 x 2 = 1,52
+ Tính ni theo (3.27)
pi = 0,34 -log2pi = 1,55 ni = 2 từ mã: 00
pi = 0,23 -log2pi = 2,1 ni =3 từ mã: 010
Hiệu suất của mã:
H(U) = - 0,34log0,34 – 0,23log0,23 - … - 0,01log0,01 = 2,37
= 0,34x2 + 0,23x3 + … + 0,01x7 = 2,99
Trang 130,81
2.2.3 Mã thống kê tối ưu Fano:
Các bước thực hiện mã hoá mã thống kê tối ưu Fano:
Bước 1: Liệt kê các tin ni trong một cột theo thứ tự pi giảm dần
Bước 2: Chia làm 2 nhóm có tổng xác suất gần bằng nhau nhất Ký hiệu mã
dùng cho nhóm đầu là 0, thì nhóm thứ 2 là 1
Bước 3: Mỗi nhóm lại chia thành hai nhóm nhỏ có xác suất gần bằng nhau
nhất (ký hiệu 0 và 1) Quá trình cứ tiếp tục cho đến khi chỉ còn một ký hiệu
Trang 140,98
Nhận xét về mã thống kê tối ưu Fano:
Ưu: Với cách chia nhóm đồng xác suất, sự lập mã thống kê tối ưu đồng thời cũng
U5 0,08 1 1 0 1 1 0 1 1 0 0 1 1 0 0 U6 0,08 1 1 1 0 1 1 1 0 1 1 0 1 1 1 0 1 U7 0,08 1 1 1 1 1 1 1 1 1 1 1 1 1 1
= 0,19x2 + 0,19x3 + … + 0,08x4 = 2,46
= 0,19x3 + 0,19x3 + … + 0,08x3 = 2,46
Cùng một bộ mã nên H(U 1 ) = H(U 2 ) suy ra 1 =2.
Để khắc phục nhược điểm của mã thống kê tối ưu Fano ta xét mã thống kê
tối ưu Huffman
0
0
0
0 0 0 1
1
1
1 1 u1 u2
u3 u4
u5 u6
u7
Cách chia 2 Cách chia 1
Hình 3.4: Cây mã theo mã thống kê tối ưu Fano
2.2.4 Mã thống kê tối ưu Huffman
Theo Huffman để có một bộ mã Prefix có độ dài từ mã tối thiểu, điều kiện
cần và đủ là thỏa mãn 3 tính chất sau:
Tính thứ tự độ dài các từ mã: pi p j với i <j thì n i n j
Tính những từ cuối: có độ dài bằng nhau, chỉ khác nhau về trọng số của ký hiệu cuối cùng
Tính liên hệ giữa những từ cuối và từ trước cuối
Các bước thực hiện mã hóa thống kê tối ưu Huffman
0 0 0
0 0
0
1
1
1 1 1
1 u1
u4
Trang 15Bước 1: Các nguồn tin được liệt kê trong cột theo thứ tự xác suất xuất hiện
giảm dần
Bước 2: Hai tin cuối có xác suất bé nhất được hợp thành tin phụ mới có xác
suất bằng tổng xác suất các tin hợp thành
Bước 3: Các tin còn lại với tin phụ mới được liệt kê trong cột phụ thứ nhất
theo thứ tự xác suất giảm dần
Bước 4: Quá trình cứ thế tiếp tục cho đến khi hợp thành một tin phụ có xác
suất xuất hiện bằng 1
0
1
1u1 0,34 0 0,58 00
1u2 0,23 0
1
0,42 0
0 1
1
0,14 0,07
u1(0,34) u2(0,23)
u3(0,19) u4(0,1) u5(0,07)
u6(0,06) u7(0,01)
gèc
Hình 3.5: Cây mã theo mã thống kê tối ưu Huffman
Hiệu suất: = 0,98
Mặc dù tối ưu hơn so với mã Shannon và Fano, nhưng khi bộ mã nguồn có
nhiều tin thì bộ mã trở nên cồng kềnh Khi đó người ta kết hợp 2 phương pháp
mã hóa: Mã Huffman + mã đều
Trang 163 Mã hóa kênh thông tin
3.1 Khái niệm về mã phát hiện và sửa sai:
Sai số của mã được truyền tuỳ thuộc tính chất thống kê của kênh:
- Sai độc lập dẫn đến sai ngẫu nhiên: 1 hoặc 2 sai
- Sai tương quan dẫn đến sai chùm (sai cụm)
Theo thống kê: sai ngẫu nhiên xảy ra 80%, sai chùm xảy ra 20%
Xác suất xuất hiện một từ mã n ký hiệu có t sai bất kỳ:
E 1 , E 2 , E i là tập hợp các vector sai 1, 2 i lỗi
Để phát hiện và sửa hết sai 1 lỗi ta có:
3.1.2 Khả năng phát hiện và sửa sai:
Trọng số Hamming của vector t: ký hiệu, w(t) được xác định theo số các
thành phần khác không của vector
Trang 173.1.3 Hệ số sai không phát hiện được:
Ví dụ: đối với bộ mã (5,2) có trọng số Hamming w =2 ta xác định được hệ số sai
không phát hiện được:
Nếu p = 10-3 p’ 6p2 = 6.10-6 nghĩa là có 10 6 bit truyền đi, 10 3 bit bị sai thì có
6 bit sai không phát hiện được
3.1.4 Phương trình đường truyền –Vector sai – cơ chế sửa lỗi:
- Gọi từ mã phát đi là T
- Gọi từ mã nhận được là R
- Gọi từ mã sai do đường truyền gây ra là E
phương trình đường truyền: R = T E
Trong các hệ thống truyền số liệu có 2 cơ chế sửa lỗi:
Cơ chế ARQ: cơ chế yêu cầu phát lại số liệu một cách tự động (khi phát hiện
sai) cơ chế này có 3 dạng cơ bản:
- Cơ chế ARQ dừng & chờ (stop and wait ARQ)
- Cơ chế ARQ quay ngược N vector (N go back ARQ)
- Cơ chế ARQ chọn lựa lặp lại
Cơ chế FEC (Forward Error Control): phát hiện và tự sửa sai sử dụng các loại
mã sửa lỗi
Trang 18
- Khi có sai đơn (sai 1 ký hiệu) người ta thường dùng các loại mã như: mã
khối tuyến tính, mã Hamming, mã vòng …
- Khi có sai chùm (> 2 sai) người ta thường dùng các loại mã như: mã
BCH, mã tích chập, mã Trellis, mã Turbo, mã Turbo Block, mã tổng hợp GC …
3.2 Mã khối tuyến tính
Giả sử đầu ra của một nguồn tin là một dãy các bit nhị phân 0 và 1 Trong trường
hợp mã khối dãy thông tin nhị phân được chia thành dãy các thông tin có chiều
dài cố định Thường được gọi là message Mỗi message, ký hiệu là u gồm có k bit thông tin Vậy tổng cộng có 2 k message khác nhau và chúng có thể được thể
hiện là các bộ Vector thành phần, trong đó mỗi thành phần vector là 0 hay 1 Bộ
phận mã hóa theo một quy luật nào đó sẽ ánh xạ message u thành một vector n thành phần v (n>k), v được gọi là từ mã (code word) của message u ứng với 2 k
từ mã này được gọi là một mã khối Để mã khối hữu hiệu, 2 k từ mã luôn là các từ
mã phân biệt Do đó sẽ có một ánh xạ 1:1 giữa một message u và một từ mã v Đối với một mã khối có hai từ mã và mỗi từ mã có chiều dài n, việc lưu lại bảng
mã để phục vụ cho việc giải mã sẽ gây khó khăn khi 2 k lớn Do đó có một loại
mã khối có cơ chế hoạt động dễ dàng hơn, có thể áp dụng vào thực tế, đó là mã khối tuyến tính Với cấu trúc của mã khối tuyến tính Sự phức tạp của quá trình
mã hóa và giải mã giảm đi rất nhiều
3.2.1 Định nghĩa
Khi các bit mang tin và các bit kiểm tra được phân thành từng khối tách bạch, mã hóa và giải mã có thể tiến hành theo từng khối bằng các từ mã riêng rẽ và sử dụng các phép tính của đại số tuyến tính
Định nghĩa: mã khối độ dài n & k bits mang tin được gọi là mã khối
tuyến tính C(n,k) nếu và chỉ nếu 2 k từ mã lập thành không gian vector n
chiều 2 n trên trường Galois sơ cấp GF(2)
3.2.2 Phương pháp tạo mã khối tuyến tính
Vì mã khối tuyến tính C(n,k) có không gian con tuyến tính k chiều của
không gian vector n chiều, nên tồn tại k từ mã độc lập tuyến tính g 0 , g 1 ,
…, g k-1 trong C, sao cho mỗi từ mã trong C là tổ hợp tuyến tính của k từ
mã đó:
Trong đó u i = 0 hoặc 1 với 1 i k-1
Gọi G là ma trận sinh của C:
Trong đó: gi = [gi0, gi1, …., gi,n-1] với 0 i k-1
Gọi u là thông báo cần mã hóa:
Với ui = 0 hoặc 1 và 0 i k-1