Tải bản đầy đủ (.docx) (46 trang)

Báo cáo đề tài nghiên cứu khoa học sinh viên-Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (771.63 KB, 46 trang )

Học viện công nghệ bưu chính viễn thông

Báo cáo đề tài nghiên cứu khoa học sinh viên

MỤC LỤC
MỞ ĐẦU..............................................................................................................................................1
PHẦN I. TỔNG QUAN CHUNG VỀ ĐỀ TÀI....................................................................................2
1.

Trong nước.........................................................................................................................2

2.

Quốc tế...............................................................................................................................2

3.

Phần mềm Matlab..............................................................................................................2

3.1.

Khởi động, thoát chương trình Matlab...............................................................................2

a.

Khởi động.......................................................................................................................2

b.

Thoát...............................................................................................................................3


c.

Thực thi lệnh..................................................................................................................3

3.2.

Biểu thức trong Matlab......................................................................................................3

a.

Biểu thức........................................................................................................................3

b.

Biến trong Matlab...........................................................................................................3

c.

Hàm trong Matlab..........................................................................................................4

3.3.

Ma trận trong Matlab.........................................................................................................4

a.

Nhập ma trận..................................................................................................................4

b.


Tổng các cột và chuyển vị..............................................................................................6

c.

Đường chéo của ma trận.................................................................................................6

d.

Trích phần tử..................................................................................................................6

e.

Dùng dấu hai chấm trong chỉ số.....................................................................................7

f. Các phép toán trên ma trận................................................................................................7
3.4.

Function.............................................................................................................................8

3.5.

Hàm phụ.............................................................................................................................9

3.6.

Vẽ đồ thị bằng hàm plot, subplot.....................................................................................10

a.

Cú pháp.........................................................................................................................10


b.

Khai báo màu, kiểu nét và đánh dấu điểm dữ liệu.......................................................11

Vẽ nhiều đồ thị trên cùng figure.............................................................................................13
PHẦN II. TÓM TẮT LÍ THUYẾT MÔN HỌC LÝ THUYẾT THÔNG TIN...................................14
1.

Cơ sở lý thuyết thông tin thống kê.........................................................................................14
Đo lường thông tin.....................................................................................................................14
a.

Định nghĩa....................................................................................................................14

b.

Đơn vị đo lường thông tin............................................................................................14

c.

Lượng thông tin hậu nghiệm........................................................................................14

Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin

Page 1


Học viện công nghệ bưu chính viễn thông


Báo cáo đề tài nghiên cứu khoa học sinh viên

d.

Lượng thôn tin chéo.....................................................................................................14

e.

Lương thông tin tổn hao...............................................................................................14

f. Kênh không nhiễu............................................................................................................14
g.

Kênh đứt (nhiễu tuyệt đối)...........................................................................................14

1.2.

Entropy nguồn rời rạc......................................................................................................14

a.

Định nghĩa....................................................................................................................14

b.

Tính chất:......................................................................................................................15

c.

Phân loại.......................................................................................................................15


d.

Tính chất của entropy hợp và entropy có điều kiện.....................................................15

e.

Lượng thông tin tương hỗ:...........................................................................................16

1.3.

Entropy vi phân của nguồn liên tục.................................................................................16

a.

Một số tính chất cơ bản:...............................................................................................16

b.

Đinh lý:.........................................................................................................................16

c.

Entropy vi phân hợp:....................................................................................................16

d.

Entropy vi phân có điều kiện:.......................................................................................16

e.


Lượng thông tin tương hỗ.............................................................................................16

1.4.

Dung lượng kênh rời rạc..................................................................................................17

a.

Tốc độ phát của nguồn rời rạc......................................................................................17

b.

Lượng thông tin trung bình do nguồn phát trong 1 đơn vị thời gian. Đơn vị bit/s.......17

c.

Độ thừa của nguồn rời rạc............................................................................................17

d.

Lượng thông tin truyền qua kênh trong 1 đơn vị thời gian là......................................17

e.

Khả năng phát của nguồn rời rạc..................................................................................17

f. Khả năng thông qua của kênh..........................................................................................17
g.
2.


Tính chất:......................................................................................................................17

Mã hóa nguồn.........................................................................................................................18
Định nghĩa..................................................................................................................................18
Mã hoá....................................................................................................................................18
2.2.

Bộ mã...............................................................................................................................18

a. Độ dài trung bình.................................................................................................................18
b.

Cơ số mã..........................................................................................................................18

c. Bộ mã đầy, bộ mã vơi..........................................................................................................18
d.

Đánh giá hiệu quả của phép mã hoá................................................................................18

e. Phương sai độ dài trung bình của bộ mã.............................................................................18
2.3.

Mã suy biến:.....................................................................................................................18

Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin

Page 2



Học viện công nghệ bưu chính viễn thông

3.

Báo cáo đề tài nghiên cứu khoa học sinh viên

2.4.

Mã prefix..........................................................................................................................19

2.5.

Mã Huffman.....................................................................................................................19

Mã hóa kênh...........................................................................................................................20

PHẦN III. MỘT SỐ DẠNG BÀI TẬP LÝ THUYẾT THÔNG TIN.................................................21
1.

Dạng bài liên quan đến entropy..............................................................................................21

2. Dạng bài tìm ma trận sinh G, ma trận kiểm tra H ở dạng hệ thống của mã vòng tuyến tính
C(l,k) với đa thức sinh g(x) cho trước............................................................................................22
3.

Dạng bài liệt kê từ mã, đánh giá khả năng phát hiện và sửa lỗi của bộ mã...........................23

4. Dạng bài sử dụng thuật toán chia dịch vòng bẫy lỗi để tìm lại từ mã đã phát C(l,k) khi biết
đa thức sinh g(x), đa thức từ mã nhận được v(x)...........................................................................23
5.


Ứng thuật toán 4 bước tìm từ mã đầu ra của thiết bị mã hoá hệ thống theo phương pháp chia
24

6. Dạng bài Huffman, đánh giá hiệu quả mã hoá, giải mã một từ mã theo từ bộ mã vừa xây
dựng................................................................................................................................................26
7. Dạng bài xây dựng tổng kiểm tra cho một dấu mã, xây dựng sơ đồ chức năng bộ giải mã đa
số, thực hiện giải mã cho 1 từ mã nhận được.................................................................................27
PHẦN IV. XÂY DỰNG HÀM...........................................................................................................28
1.

Hàm tính entropy....................................................................................................................28

2.

Hàm tìm ma trận sinh ma trận kiểm tra dạng hệ thống . Bài tập 2.11 đến 2.18.....................29

3.

Hàm liệt kê từ mã, đánh giá khả năng phát hiện và sửa lỗi của bộ mã..................................30

4.

Hàm chia hai đa thức trong trường nhị phân..........................................................................31

5.

Thuật toán chia dịch vòng bẫy lỗi. Bài tập 2.22-2.25............................................................32

6.


Thuật toán 4 bước. Bài tập 3.14-3.17.....................................................................................33

7.

Hàm thực hiện mã hoá Huffman. Bài tập 3.19-3.23..............................................................35

8.

Hàm thực hiện thiết lập hệ tổng kiểm tra. Bài tập 4.1-4.3.....................................................36

9.

Hàm tìm lại từ mã đã phát bằng phương pháp giải mã ngưỡng.............................................37

PHẦN V. KẾT QUẢ CHẠY MÔ PHỎNG MỘT SỐ HÀM..............................................................40
1.

Ví dụ 1....................................................................................................................................40

2.

Ví dụ 2....................................................................................................................................41

KẾT LUẬN........................................................................................................................................43
TÀI LIỆU THAM KHẢO..................................................................................................................44

Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin

Page 3



Học viện công nghệ bưu chính viễn thông

Báo cáo đề tài nghiên cứu khoa học sinh viên

MỞ ĐẦU
Mục tiêu
-

Giúp sinh viên làm quen với hoạt động nghiên cứu khoa học, rèn luyện kỹ năng làm việc
nhóm.

-

Xây dựng một bộ thư viện Matlab giúp củng cố và hỗ trợ giải các bài toán môn học Lý thuyết
thông tin.

Nội dung
-

Tìm hiểu, sử dụng ngôn ngữ lập trình Matlab.

-

Tóm tắt kiến thức cơ bản môn học Lý thuyết thông tin, phân loại các loại bài tập cơ bản.

-

Áp dụng ngôn ngữ lập trình Matlab xây dựng bộ thu viện hỗ trợ giải các bài toán điển hình

trong môn học Lý thuyết thông tin.
Báo cáo của chúng em sẽ trình bày về các vấn đề sau:

Đề tài: Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin
Phần 1. Tổng quan chung về đề tài và hướng dẫn sử dụng phần mềm Matlab
Phần 2. Tóm tắt lý môn học lý thuyết thông tin
Phần 3. Một số dạng bài lý thuyết thông tin tiêu biểu
Phần 4. Kết quả một số hàm.

Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin

Page 1


Học viện công nghệ bưu chính viễn thông

Báo cáo đề tài nghiên cứu khoa học sinh viên

PHẦN I. TỔNG QUAN CHUNG VỀ ĐỀ TÀI.
1. Trong nước
Ngày nay, các thành tựu của cuộc cách mạng khoa học kĩ thuật đang từng ngày, từng giờ
làm thay đổi cuộc sống của con người. Cùng với sự bùng phát của khoa học công nghệ, nhu cầu
tính toán và xử lí các phép toán một cách nhanh chóng là khá cần thiết. MATLAB ra đời và giúp
chúng ta giải quyết những vấn đề đó. MATLAB cho phép tính toán số với ma trận, vẽ đồ thị hàm số
hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liên kết với những
chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác. MATLAB giúp đơn giản hóa việc
giải quyết các bài toán tính toán kĩ thuật so với các ngôn ngữ lập trình truyền thống như C, C++...
Không chỉ được sử dụng như một môi trường tính toán số mà với nó người dùng còn có thể tự lập
trình ra những hàm, những chương trình phục vụ cho từng mục đích sử dụng của mình. Chính vì thế
MATLAB được sử dụng khá rộng rãi trong hoc tập, giảng dạy cũng như trong các ngành khoa học

kĩ thuật.
Ở Việt Nam, MATLAB đã và đang được sử dụng rộng rãi trong các nghành công nghệ kĩ
thuật như : Công nghệ kĩ thuật điện - điện tử, Kĩ thuật điều khiển tự động hoá, Kĩ thuật xây dựng,
Công nghệ hoá học, Công nghệ sinh học… Matlab còn là một công cụ hữu hiệu hỗ trợ đắc lực cho
thầy trò trong việc học tập, giảng dạy và nghiên cứu.
Không ngoại lệ đối với Lý thuyết thông tin, MATLAB tỏ ra là một công cụ tính toán, xử lý
vô cùng hiệu quả. Đề tài này, chúng em sẽ thực hiện giải các bài toán Lý thuyết thông tin bằng công
cụ MATLAB. Chúng em hy vọng rằng việc thực hiện các bài toán Lý thuyết thông tin trên công cụ
này sẽ giúp việc dạy và học của thầy trò thêm trực quan, dễ tiếp cận và gây nhiều hứng thú cho học
trò. Từ đó giúp công việc dạy và học được trở nên hiệu quả nhất, khắc sâu kiến thức cho sinh viên.
Với kiến thức vững chắc thì chúng em thiết nghĩ sinh viên sẽ trở thành những kĩ sư Điện tử, Viễn
thông giỏi, không chỉ vững vàng khi bắt tay vào công việc mà còn có thể có nhiều công trình
nghiên cứu, đóng góp cho nền khoa học công nghệ nước nhà.
2. Quốc tế
Các nhà nghiên cứu trên thế giới đã tập trung tìm hiểu, triển khai các ứng dụng Matlab nhiều
năm qua. MATLAB là một công cụ được sử dụng trong nhiều lĩnh vực, bao gồm xử lý tín hiệu và
ảnh, truyền thông, thiết kế điều khiển tự động, đo lường kiểm tra, phân tích mô hình tài chính, hay
tính toán sinh học. Với hàng triệu kĩ sư và nhà khoa học làm việc trong môi trường công nghiệp
cũng như ở môi trường hàn lâm, MATLAB là ngôn ngữ của tính toán khoa học.
3. Phần mềm Matlab
MATLAB là sản phẩm phần mềm của công ty MathWorks Inc. Ưu điểm nổi bật của
MATLAB là khả năng tính toán và biểu diễn đồ hoạ kỹ thuật nhanh chóng, đa dạng và chính xác
cao. Thư viện hàm của MATLAB bao gồm rất nhiều chương trình tính toán con; Các chương trình
con này giúp người sử dụng giải quyết nhiều loại bài toán khác nhau, đặc biệt là các bài toán về ma
trận, số phức, hệ phương trình tuyến tính cũng như phi tuyến. MATLAB cũng cho phép xử lý dữ
liệu và biểu diễn đồ hoạ trong không gian 2D và 3D với nhiều dạng đồ thị thích hợp, giúp người sử
dụng có thể trình bày kết quả tính toán một cách trực quan và thuyết phục hơn. Thêm vào đó, các
phiên bản MATLAB ngày càng phát triển nhiều module phần mềm bổ sung, gọi là các Toolbox (bộ
công cụ) với phạm vi chức năng chuyên dụng cho từng chuyên ngành cụ thể.
3.1.


Khởi động, thoát chương trình Matlab

a. Khởi động
Cách 1. Nhấp đúp trái chuột vào biểu tượng Matlab trên desktop.
Cách 2. Start \ Programs \ Matlab …
Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin

Page 2


Học viện công nghệ bưu chính viễn thông

Báo cáo đề tài nghiên cứu khoa học sinh viên

b. Thoát
Cách 1. File \ Exit
Cách 2. Crtl + Q
Cách 3. >> quit
c. Thực thi lệnh
>> 2 + 3

nhấn Enter

3.2.

Biểu thức trong Matlab

a. Biểu thức
Một biểu thức trong Matlab chứa các:

 Biến (variable)
 Con số (number) / hằng số (constant)
 Phép toán (operator)
 Hàm (function)
Một số ví dụ
>> a = (1+sqrt(5))/2
a=
1.6180
>> b = abs(3+4i)
b=
5
>> c = exp(log(realmax))
huge =
1.7977e+308
b. Biến trong Matlab
 Không cần khai báo kiểu, số chiều, độ dài biến.
 Mỗi khi một cái tên mới xuất hiện với phép gán, Matlab tạo biến và cấp phát bộ nhớ cho nó.
 Nếu đó là biến cũ, nó sẽ thay đổi nội dung mới nếu thực hiện phép gán.
 Biến đặc biệt “ans”: lưu giá trị phép toán vừa tính.
 Lệnh “who” và “whos”: cho biết thông tin về các biến đang hiện hữu.
Ví dụ:
>> x = 3
x=
3
>> y = 5
y=
Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin

Page 3



Học viện công nghệ bưu chính viễn thông

Báo cáo đề tài nghiên cứu khoa học sinh viên

5
>> x + y
ans =
8
Quy tắc đặt tên biến:
 Bắt đầu bằng 1 chữ cái, tiếp theo là chữ cái, chữ số hoặc dấu gạch dưới “_”.
 Các chữ cái phân biệt chữ hoa, chữ thường.
Ví dụ:
Hợp lệ: “x”, “a_b1”, “v1”
Không hợp lệ: “_a”, “1x”, “abc*”
c. Hàm trong Matlab
Matlab cung cấp rất phong phú và đa dạng cáchàm toán học, từ sơ cấp đến cao cấp.
Có 2 loại hàm trong Matlab
Built-in fuction: hàm sẵn có.
Ví dụ: sin(), sqrt(), exp(), …
M-file function: hàm viết trong các tập tin .m của Matlab.
Ví dụ: gamma(), sinh(), …
Chú ý: Không thể thấy source code của các hàm built-in.
Ngược lại, có thể xem và chỉnh sửa source code của các hàm lưu trong các file .m.
Để biết thêm thông tin về một số hàm có sẵn trong Matlab ta sử dụng “>>help”:

3.3.

Mục đích


Cách thực hiện

Xem cách sử dụng một hàm

>> help ten_ham

Tìm kiếm một hàm trong một lĩnh
vực nào đó

>>help\Funtions-Categorical List
hoặc dùng chức năng Search

Tìm tên hàm

>>help \ Functions –
Alphabetical List hoặc tìm
trong Index

Tìm hiểu về một vấn đề gì đó

Chẳng hạn lĩnh vực toán >>help \
Mathematics

Ma trận trong Matlab

Thế mạnh của Matlab so với các ngôn ngữ lập trình khác là tính toán rất nhanh trên ma trận.
a. Nhập ma trận
 Nhập trực tiếp danh sách các phần tử
Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin


Page 4


Học viện công nghệ bưu chính viễn thông

Báo cáo đề tài nghiên cứu khoa học sinh viên

VD: Nhập trực tiếp danh sách các phần tử:
>>A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]
A=
16

3

2

13

5

10

11

8

9

6


7

12

4

15

14

1

Dấu [ và ] mở đầu và kết thúc nhập ma trận.
Dấu ; kết thúc một dòng.
Các phần tử cách nhau bằng khoảng trắng hoặc dấu ,
 Phát sinh ma trận bằng các hàm sẵn có
>>zeros(n)

Ma trận 0

>>ones(m,n)

Ma trận 1

>>eye(n)

Ma trận đơn vị

>>diag([a, b, c,…])


Ma trận đường chéo

>>magic(n)

Ma phương

>>Rand(m,n)

Ma trận các số thực ngẫu nhiên

Ví dụ:
>>Z = zeros(2,4)
Z=
0000
0000
>>F = 5*ones(2,3)
F=
555
555
 Nhập từ file
Giả sử ta có một file “matrix.txt” có nội dung như sau (các số cách nhau bởi khoảng trắng)
16.0

3.0

2.0

13.0

5.0


10.0

11.0

8.0

9.0

6.0

7.0

12.0

4.0

15.0

14.0

1.0

Dòng lệnh
>>load matrix.txt sẽ đọc file “matrix.txt”, tạo biến có tên là magik, là ma trận các phần tử có trong
file matrĩ.txt
Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin

Page 5



Học viện công nghệ bưu chính viễn thông

Báo cáo đề tài nghiên cứu khoa học sinh viên

 Tạo ma trận bằng các file .m
File .m là một file văn bản ghi các dòng lệnhMatlab.
Có thể soạn thảo bằng MATLAB Editor hoặc bất kỳ trình soạn thảo văn bản nào.
Lưu file có đuôi .m
Gõ tên file để thực thi nội dung các dòng lệnh trong file.
Ví dụ: tạo một file có nội dung như
sau:
A=[
16.0

3.0

2.0

13.0

5.0

10.0

11.0

8.0

9.0


6.0

7.0

12.0

4.0

15.0

14.0

1.0];

Lưu với tên matrix.m. Dòng lệnh >>matrix sẽ đọc file và tạo biến A là ma trận như trên.
b. Tổng các cột và chuyển vị
A=
16
5
9
4

3
10
6
15

>> sum(A)
ans =

34
34
>> A’
ans =
16
5
3
10
2
11
13
8
>> sum(A’)
ans =
34
34

2
11
7
14

13
8
12
1

34

34


9
6
7
12

4
15
14
1

34

34

c. Đường chéo của ma trận
A=
16
5
9
4

3
10
6
15

2
11
7

14

13
8
12
1

>> diag(A)
ans =
16
10
Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin

Page 6


Học viện công nghệ bưu chính viễn thông

Báo cáo đề tài nghiên cứu khoa học sinh viên

7
1
d. Trích phần tử
Trích một phần tử
>>A(4,2)
ans =
15
Trích nhiều phần tử
Sử dụng dấu “[,]” để liệt kê vị trí cần trích
Ví dụ:

A = [2 4 3; 8 6 7], x = [9 4 2 1]
A([2,1],2) → [6 4]’ , x([2,4]) →4 1
Có thể sử dụng dấu “:” để trích dãy các phần tử
Ví dụ:
A(2,1:3) 8 6 7 , x(3:-1:1) 2 4 9
e. Dùng dấu hai chấm trong chỉ số
Ví dụ: A(1:k,j) gồm k số đầu tiên ở cột thứ j của ma trận A.
>>sum(A(1:4,4)) //tính tổng 4 số đầu tiên ở cột thứ 4 của ma trận A.
Dấu hai chấm đứng một mình sẽ chỉ toàn bộ phần tử của dòng hoặc cột.
Từ khoá “end” chỉ chỉ số cuối cùng của dòng hoặc cột.
Ví dụ:
>>A(:,end)
//chỉ toàn bộ phần tử ở cột cuối cùng
f. Các phép toán trên ma trận
Cho 2 ma trận
A=

012
723
541

B=

352
427
146
A+B

3 6 4
11 4 10

68 7

A-B

3 -4 0
3 0 -4
4 0 -5

A*B

6 10 19
32 51 46
32 37 44

A^m

>>A^2 =

Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin

Page 7


Học viện công nghệ bưu chính viễn thông

Báo cáo đề tài nghiên cứu khoa học sinh viên

17 10 5
29 23 23
33 17 23


Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin

Page 8


Học viện công nghệ bưu chính viễn thông

Báo cáo đề tài nghiên cứu khoa học sinh viên

Một số phép tính khác
012
A=723
541
A’

Ma trận chuyển vị

075
124
231

A^(-1)
inv(A)

Ma trận nghịch đảo

-0.2273 0.1591 -0.0227
0.1818 -0.2273 0.3182
0.4091 0.1136 -0.1591


det(A)

Định thức ma trận

44

rref(A)

Rút gọn dòng dạng bậc
thang rút gọn

100
010
001

rank(A)

Hạng của ma trận

3

Phép chia 2 ma trận
Phép toán A \ B được ứng dụng trong việc giải hệ pttt: A*X = B
Giải hệ:
A=

142
-2 0 1
321


B=

15
1
10

>>X = A -1 B = A\B
X=
1
2
3
3.4.

Function

Hàm trong Matlab là một file.m có thể nhận tham số và trả về các giá trị.
Tên hàm phải trùng với tên file.m. Gọi lệnh bằng cáchgõ tên hàm (tên file.m)

Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin

Page 9


Học viện công nghệ bưu chính viễn thông

Báo cáo đề tài nghiên cứu khoa học sinh viên

Cú pháp:
function gia_tri_tra_ve = ten_ham (tham_so)

... ...
Ví dụ: % chương trình tính lượng thông tin trung bình thống kê entropy
function h = entro(p)
if (sum(p)~= 1)|(length(p(p<0&p>1))~= 0)
fprintf('Du lieu nhap sai \n')
return
end
h=-sum(p.*log2(p));
end
Chạy chương trình:
Gõ lệnh:
>>h = entro([0.2 0.3 0.5]) % h sẽ bằng 1.4855
3.5.

Hàm phụ

Hàm phụ (khác tên hàm chính) chỉ nhằm hỗ trợ tính toán cho hàm chính trong script hàm
Hàm phụ nằm sau hàm chính
Ví dụ:
function giaiptb2(a,b,c)
x1 = (-b+sqrt(support(a,b,c)))/(2*a);
x2 = (-b-sqrt(support(a,b,c)))/(2*a);
function d = support(a,b,c)
d = b*b - 4*a*c;
end
x1
x2
end
Chạy chương trình:
Gọi hàm:

>> giaiptb2(5,-2,-3)
x1 =
1
x2 =
Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin

Page 10


Học viện công nghệ bưu chính viễn thông

Báo cáo đề tài nghiên cứu khoa học sinh viên

-0.6000
3.6.

Vẽ đồ thị bằng hàm plot, subplot

Hàm plot vẽ đồ thị 2D dựa trên hai mảng dữ liệu số do người dùng tạo trước. Nếu dùng hàm plot để
vẽ đồ thị hàm số thì số điểm dữ liệu càng nhiều, hình vẽ càng đúng với đồ thị hàm số liên tục
(đường cong trơn và liên tục).
a. Cú pháp
plot(x,y) //vẽ đồ thị y theo x.
Ví dụ: Vẽ đồ thị các hàm sau:
y1= x^2+3*x + 5 trong khoảng [0,10]
y2= sin(x) trong khoảng [0,3π]
Thực hiện trong MATLAB:
>> x=[0: 0.01: 10]; % tạo mảng x có giá trị từ 0 đến 10 với bước nhảy 0,01
>> y1=x.^2+3*x+5; % tạo mảng y (= tính các giá trị tương ứng của y)
>> plot(x,y1) % vẽ đồ thị y1 theo x

>> x=[0: 0.01: 3*pi];
>> y2=sin(x);
>> plot(x,y2)
Khi đó đồ thị của y1:

Đồ thị của y2:
Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin

Page 11


Học viện công nghệ bưu chính viễn thông

Báo cáo đề tài nghiên cứu khoa học sinh viên

b. Khai báo màu, kiểu nét và đánh dấu điểm dữ liệu
Cú pháp lệnh: plot(x,y,S)
Trong đó tham số S là chuỗi ký tự tuỳ chọn để khai báo màu vẽ, kiểu nét hoặc ký hiệu đánh dấu tại
các điểm dữ liệu. Nếu không dùng tham số S thì mặc định là màu xanh dương (blue), nét liền
(solid), không có ký hiệu đánh dấu.
Màu (color)
b = blue m = magenta
g = green y = yellow
r = red k = black
c = cyan w = white
Kiểu nét (linestyle) và ký hiệu đánh dấu (marker)

Các tiện ích

Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin


Page 12


Học viện công nghệ bưu chính viễn thông

Báo cáo đề tài nghiên cứu khoa học sinh viên

1. title('tên đồ thị') % tạo tiêu đề đồ thị
2. xlabel('nhãn trục x') % tạo nhãn cho trục x
3. ylabel('nhãn trục y') % tạo nhãn cho trục y
4. text(x,y,'nhãn') % tạo nhãn tại vị trí có toạ độ (x,y)
5. grid hoặc grid on % hiện các ô lưới toạ độ.
6. hold hoặc hold on % giữ nguyên đồ thị để vẽ tiếp trên cùng hệ trục toạ độ.
7. legend('chúthích1', 'chúthích2',...) % tạo ô chú thích khi vẽ nhiều đồ thị .
Ví dụ:
>> x=[0:0.1:2*pi];
>> y1=sin(x);
>> plot(x,y1,'k');
>> hold on
>> y2=cos(x);
>> plot(x,y2,'b--');
>> title('Do thi sin(x) va cos(x)')
>> xlabel('truc x')
>> ylabel('truc y')
>> legend('sin(x)','cos(x)')
>> grid
Kết quả :

Các tiện ích với đồ thị


Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin

Page 13


Học viện công nghệ bưu chính viễn thông

Báo cáo đề tài nghiên cứu khoa học sinh viên

Vẽ nhiều đồ thị trên cùng figure
Sử dụng hàm subplot( )
Ví dụ: Vẽ đồ thị các hàm y= sin(x); z= cos(x); u= 2*sin(x).*cos(x); v= tan(x); trên cùng một figure
>>x= linspace(0,2*pi,30); % tạo mảng x từ 0 đến 2*pi có 30 phần tử
>>y= sin(x); z= cos(x);
>>u= 2*sin(x).*cos(x); v= tan(x);
>>figure % mở mới một cửa sổ figure trống.
>>subplot(2,2,1) % tạo 4 subplot và chọn subplot 1 ở góc trên trái .
>>plot(x,y), axis([0 2*pi -1 1]), title('sin(x)')
>>subplot(2,2,2) % chọn subplot 2 ở góc trên phải .
>>plot(x,z), axis([0 2*pi -1 1]), title('cos(x)')
>>subplot(2,2,3) % chọn subplot 3 ở góc duới trái .
>>plot(x,u), axis([0 2*pi -1 1]), title('2sin(x)cox(x)')
>>subplot(2,2,4) % chọn subplot 4 ở góc dưới phải .
>>plot(x,v), axis([0 2*pi -1 1]), title('tan(x)')
Kết quả:

Vẽ 4 đồ thị trên cùng figure
Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin


Page 14


Học viện công nghệ bưu chính viễn thông

Báo cáo đề tài nghiên cứu khoa học sinh viên

PHẦN II. TÓM TẮT LÍ THUYẾT MÔN HỌC LÝ THUYẾT THÔNG TIN
1. Cơ sở lý thuyết thông tin thống kê
Đo lường thông tin
a. Định nghĩa
Độ bất định là đặc trưng quan trọng trong đo lường thông tin
Độ bất định tỉ lệ thuận với lượng thông tin
Một tin (sự kiện) x với xác suất xuất hiện p(x) thì việc n xuất hiện sẽ mang lại lượng thông
tin, hay còn gọi là lượng tin riêng/ lượng thông tin tiên nghiệm được xác đinh bởi công thức:
Nếu x, y là 2 tin độc lập ta có

b. Đơn vị đo lường thông tin
Logarith:
Cơ số 2: đơn vị [bít]
Cơ số e: đơn vị [nat]
Cơ số 10: đơn vị [hartley]
c. Lượng thông tin hậu nghiệm
.
d. Lượng thôn tin chéo
:.
e. Lương thông tin tổn hao
.
f. Kênh không nhiễu
;.

g. Kênh đứt (nhiễu tuyệt đối)
;.
1.2.Entropy nguồn rời rạc
a. Định nghĩa
Entropy của nguồn rời rạc X là trung bình thống kê của lượng thông tin riêng của các phần tử xk
(xung khắc) thuộc nguồn, ký hiệu là H(X).

H(X) còn được gọi là entropy 1 chiều của nguồn rời rạc.
Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin

Page 15


Học viện công nghệ bưu chính viễn thông

Báo cáo đề tài nghiên cứu khoa học sinh viên

H(X) có đơn vị giống đơn vị của lượng thông tin.
b. Tính chất:
 , khi và chỉ khi và
khi và chỉ khi các có phân bố xác suất đồng đều



 H(X) là 1 hàm chỉ phụ thuộc vào đặc tình thông kế của nguồn
 ,là Entropy đươc được tính bởi cơ số a. (Quy ước H(X) cơ số 2)
c. Phân loại


Entropy hợp: Entropy của các sự kiện đồng thời

.



Entropy điều kiện từng phần: Entropy của nguồn tin này khi nhận được 1 tin của
nguồn tin kia



Entropy có điều kiện: Entropy của nguồn tin này khi đã nhân được nguồn kia

d. Tính chất của entropy hợp và entropy có điều kiện
 ;
o Đạt đẳng thức bên trái khi và chỉ khi X, Y độc lập (Kênh đứt).
o Đạt đẳng thức bên phải khi và chỉ khi kênh lý tưởng.
 Nếu X, Y độc lập:
o ;
o ;


Đẳng thức khi và chỉ khi X, Y độc lập (Kênh đứt).
e. Lượng thông tin tương hỗ:
Cho 2 nguồn rời rạc X, Y lượng thông tin tương hỗ hay còn gọi là lượng thôn tin chéo trung bình
được xác định bởi công thức

Tính chất:
Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin

Page 16



Học viện công nghệ bưu chính viễn thông

Báo cáo đề tài nghiên cứu khoa học sinh viên

 (Xảy ra đẳng thức khi và chỉ khi X, Y độc lập)




1.3. Entropy vi phân của nguồn liên tục
a. Một số tính chất cơ bản:
o h(X) có thể âm, dương.
o h(X) có giá trị hữu hạn
o

với c là hằng số

o

với C là hằng số #0

b. Đinh lý:
Trong số những quá trình ngẫu nhiên (tín hiệu) có cùng công suất trung bình , quá trình (tín hiệu) có
hàm mật độ phân bố chuẩn (phân bố Gausse) sẽ cho Entropy vi phân lớn nhất
c. Entropy vi phân hợp:
d. Entropy vi phân có điều kiện:

e.


Lượng thông tin tương hỗ

1.4.

Dung lượng kênh rời rạc.

a. Tốc độ phát của nguồn rời rạc
là tốc độ trung bình của mỗi xung phát
số xung phát trong 1 đơn vị thời gian, đơn vị là [baud]
b. Lượng thông tin trung bình do nguồn phát trong 1 đơn vị thời gian. Đơn vị bit/s
c. Độ thừa của nguồn rời rạc
là tỉ số nén tin
D đặc trưng cho hiệu suất, khả năng chống nhiễu, mật độ tin: D lớn hiệu suất thấp nhưng khả năng
chống nhiễu cao
d. Lượng thông tin truyền qua kênh trong 1 đơn vị thời gian là
Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin

Page 17


Học viện công nghệ bưu chính viễn thông

Báo cáo đề tài nghiên cứu khoa học sinh viên

Tk > Tn: Kênh giãn tin
Tk = Tn: Kênh thông thường
Tk < Tn: Kênh nén tin
e. Khả năng phát của nguồn rời rạc
f. Khả năng thông qua của kênh


khả năng thông qua của kênh đối với mỗi dấu.
g. Tính chất:
+ C’ 0, C’ = 0 khi và chỉ khi kênh bị đứt.
+ C’ (N là độ lớn của nguồn X).
+ C’ (M là độ lớn của nguồn Y).
Các định lý:
Đinh lý 1: Nếu khả năng phát H’(X) của nguồn rời rạc X nhỏ hơn khả năng thông qua của kênh ()
thì tồn tại phép mã hóa và giải mã sao cho việc truyền tin qua kênh có xác suất lỗi nhỏ tùy ý khi độ
dài từ mã đủ lớn. Ngược lại không tồn tại một phép mã hóa nào như vậy.
Đinh lý 2: Nếu tốc độ dữ liệu truyền qua kênh (R) có dung lượng C’ thỏa mãn thì tồn tại phép mã
hóa và giải mã sao cho việc truyền tin qua kênh có xác suất lỗi nhỏ tùy ý khi độ dài từ mã đủ lớn.
Ngược lại không có phép mã hóa nào như vậy.
Kênh Gausse: Kênh Gausse không đổi là một kênh liên lục có tập tin lối vào và tập tin lối ra liên
hệ theo công thức
Trong đó ; n(t) là nhiễu cộng còn gọi là nhiễu trắng có phân bố chuẩn .

2. Mã hóa nguồn
Định nghĩa
Mã hoá
Mã hóa là phép ánh xạ 1 – 1 từ các tập tin rời rạc lên tập các từ mã là tổ hợp có thể của các dấu
là đọ dài từ mã thứ k: số dấu mã tạo thành từ mã
là từ mã:
+ là thường các phần tử của 1 cấu trúc đại số.
+ Các dấu mã thường được chọn từ 1 trường nào đó.
2.2.

Bộ mã

Bộ mã là tập hợp các từ mã, là sản phẩm của phép mã hóa.
a. Độ dài trung bình

Độ dài trung bình là trung bình thống kê độ dài các từ mã:
Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin

Page 18


Học viện công nghệ bưu chính viễn thông

Báo cáo đề tài nghiên cứu khoa học sinh viên

b. Cơ số mã
Số dấu mã khác nhau được sử dụng trong bộ mã.
c. Bộ mã đầy, bộ mã vơi
Bộ mã mà tất cả tổ hợp các dấu mã là từ mã gọi là bộ mã đầy, ngược lại gọi là mã vơi.
d. Đánh giá hiệu quả của phép mã hoá
Tính hiệu quả của phép mã hóa
e. Phương sai độ dài trung bình của bộ mã
2.3. Mã suy biến:
Một bộ mã gọi là không suy biến nếu mọi tin của nguồn ánh xạ thành từ các mã khác nhau của bộ
mã.
2.4. Mã prefix
Mã prefix còn gọi là mã có khả năng giải mã tức thời nếu không có bất kì từ mã nào là phần tiền tố
của từ mã khác trong cùng bộ mã.
2.5. Mã Huffman
Thuộc lớp mã hóa Entropy, mã hóa nén dữ liệu không tổn hao
Lớp mã với độ dài từ mã thay đổi.
Bộ mã thu được có tính prefix.
Yêu cầu biết trước phân bố xác suất của nguồn,
Là thuật toán mã hóa tối ưu.
Đinh lý: Mã hóa Huffman là mã hóa tối ưu. Gọi là độ dài mã trung bình từ mã của bộ mã sau khi

mã hóa Huffman, là độ dài trung bình từ mã của bộ mã sau khi mã hóa bằng 1 phương pháp nào đó
thì ta có:
Bài toán mã hóa:
Nhập vào: với các xác suất phân bố tương ứng,
In ra: Các từ mã nhị phân tương ứng với tin .
B1: Khởi động cây nhị phân có các nút là các xác suất phân bố tương ứng với các
tin , sắp xếp theo thứ tự tang dần từ trái qua phải.
B2: Thực hiện các bước sau cho đến khi thu được 1 nút duy nhất:
+Tìm 2 cây T’ và T” trong danh sách các nút gốc có trọng lượng tối thiểu
là p’ và p”. Thay thế chúng bằng 1 cây có nút gốc có trọng bằng p’ + p” và các cây con là T’ và T”.
+ Đánh nhãn 0 và 1 lên các nhánh từ gốc mới đến các cây T’ và T”.
+ Sắp xếp các nút theo thứ tự tang dần của xác suất.
Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin

Page 19


Học viện công nghệ bưu chính viễn thông

Báo cáo đề tài nghiên cứu khoa học sinh viên

B3: Duyệt từ gốc cuối cùng đến các nút lá với các bit là các nhãn t đươc từ mã tương ứng với các
tin
Bài toán giải mã:
Nhập vào: Chuỗi bit thông tin.
In ra: Dãy tin tương ứng.
B1: Khởi động đặt con trỏ P đến nút gốc (root) của cây. Gán con trỏ bit b rỗng.
B2: Lặp lại các bước sau đến khi giải mã xong chuối thông tin:
+ Gán b bằng bit tiếp theo của chuỗi. Nếu b = 0, dịch con trỏ P theo nhánh
có nhãn 0, và ngược lại dịch con trỏ P theo nhãn 1.

+ Nếu P chỉ đến nút lá thì in ra tin tương ứng với mã, sau đó khởi động lại
con trỏ trở lại gốc.

3. Mã hóa kênh.

Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin

Page 20


Học viện công nghệ bưu chính viễn thông

Báo cáo đề tài nghiên cứu khoa học sinh viên

PHẦN III. MỘT SỐ DẠNG BÀI TẬP LÝ THUYẾT THÔNG TIN.
1. Dạng bài liên quan đến entropy
Ví dụ:
Câu hỏi 2.1 (NHCH) Một thành phố nọ có 1% dân số là sinh viên. Trong số sinh viên có 50% là
nam thanh niên. Số nam thanh niên trong thành phố là 32% dân số. Giả sử ta gặp một nam thanh
niên. Hãy tính lượng thông tin chứa trong tin khi biết đó là một nam thanh niên.
Giải
Gọi x1 là sự xuất hiện gặp được 1 sinh viên trong thành phố.
P(x1)=1% =0,01
Gọi x2 là sự xuất hiện gặp được 1 nam thanh niên.
P(x2) = 32% =0,32
P(x2/x1) = (nam thanh niên/sinh viên) = 50% =0,5
P(A)=P{sinh viên / nam thanh niên} = p(x1/x2)
Theo ct nhân xác suất:
P(x1/x2) = p(x1).p(x2/x1) = p(x2).p(x1/x2)
P(x1/x2) = p(A)


=

( p(x1).p(x2/x1))/(p(x2)) = 0,01.0,5/0,32 = 1/64

Lượng thông tin chứa trong tin là:
I(A) = -logp(A) = -log(1/64) = 6 [bit].
Câu hỏi 2.2 (NHCH) Một bình đựng gồm 2 viên bi đen và 3 viên bi trắng. Thực hiện lấy hai lần
liên tiếp một cách ngẫu nhiên ra mỗi lần một viên bi, bi được lấy ra thì không bỏ lại vào bình. Quan
sát thứ tự màu các viên bi lấy được. Gọi A là thông điệp (tin) cho chúng ta biết đã lấy được viên bi
thứ hai là viên bi đen. Hãy tính lượng tin mang lại của thông điệp A.
Giải
Xác suất lấy được viên bi thứ nhất màu đen là: p(b1)
Xác suất lấy được viên bi thứ hai màu đen là: p(b2)
Xác suất lấy được viên bi thứ nhất màu trắng là : p(w1)
Xác suất lấy được viên bi thứ hai màu trắng là: p(w2)
Xác suất lấy được viên bi thứ hai là viên bi đen :
P(A) = p(b1).p(b2/b1) + p(w1).p(b2/w1)
= 2/5.1/4 + 3/5.2/4 = 2/5
Lượng thông tin mang lại của thông điệp A
I(A) = -logp(A) = -log2/5 =1,32 [bit].
Câu hỏi 2.3 (NHCH) Một bình đựng gồm 2 viên bi đen và 3 viên bi trắng. Thực hiện lấy hai lần
liên tiếp một cách ngẫu nhiên ra mỗi lần một viên bi, bi được lấy ra thì không bỏ lại vào bình. Quan
sát thứ tự màu các viên bi lấy được. Gọi A là thông điệp (tin) cho chúng ta biết đã lấy được hai viên
bi trắng. Hãy tính lượng tin mang lại của thông điệp A.
Giải
Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin

Page 21



Học viện công nghệ bưu chính viễn thông

Báo cáo đề tài nghiên cứu khoa học sinh viên

Xác suất lấy được viên bi thứ nhất màu trắng là: p(w1)
Xác suất lấy được viên bi thứ hai màu trắng là: p(w2)
Xác suất lấy được 2 viên bi trắng:
P(A) = p(w1).p(w2/w1) = 3/5.2/4 = 3/10
Lượng thông tin mang lại của thông điệp A:
I(A) = -logp(A) = -log3/10 = 1.74 [bit].

2. Dạng bài tìm ma trận sinh G, ma trận kiểm tra H ở dạng hệ thống của mã vòng
tuyến tính C(l,k) với đa thức sinh g(x) cho trước.
Phương pháp giải:
Cho i chạy từ 0 đến (l-k)
Tính P(x) = xl-k+i mod g(x)
gi(x) = xl-k+i + P(x)
Suy ra các vector gi và ma trận sinh ở dạng hệ thống
Khi đó ma trận sinh có dạng G = [ P | Ik ]
 Ma trận kiểm tra H = [ Il-k | PT]
Ví dụ:
Câu 2.11 (NHCH) Cho mã xyclic C(7,4) có đa thức sinh g(x) = 1 + x + x2. Hãy xây dựng ma trận
sinh G và ma trận kiểm tra H ở dạng hệ thống của mã này
Giải
Cho i chạy trong khoảng [0,3]
Với P0(x) = x3 mod (1 + x + x3) = 1 + x  g0(x) = 1 + x + x3.
g0(x) = 1 1 0 1 0 0 0
Với P1(x) = x4 mod (1 + x + x3) = x + x2  g1(x) = x + x2 + x4.
g1(x) = 0 1 1 0 1 0 0

Với P2(x) = x5 mod (1 + x + x3) = 1 + x + x2  g2(x) = 1 + x + x2 + x5.
g2(x) = 1 1 1 0 0 1 0
Với P3(x) = x6 mod (1 + x + x3) = 1+ x2  g2(x) = 1 + x2 + x6.
g3(x) = 1 0 1 0 0 0 1
Vậy ta có ma trận sinh, ma trận kiểm tra ở dạng hệ thống như sau:
G=

3. Dạng bài liệt kê từ mã, đánh giá khả năng phát hiện và sửa lỗi của bộ mã.
Phương pháp giải
Mã khối nhị phân tuyến tính dạng hệ thống (l,k)
Số từ mã :
Ứng dụng Matlab vào giải các bài toán Lý thuyết thông tin

Page 22


×