Mô Phỏng Httts - 2020

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 187

MỤC LỤC

CHƯƠNG I...............................................................................................................1
SƠ LƯỢC VỀ MÔ PHỎNG CÁC HỆ THỐNG THÔNG TIN...........................1
1.1. Hệ thống thông tin, các vấn đề trong thiết kế và đánh giá........................................1
1.1.1. Các hệ thống thông tin.......................................................................................1
1.1.2. Các vấn đề trong thiết kế và đánh giá hệ thống.................................................2
1.2. Áp dụng mô phỏng trong thiết kế và đánh giá hệ thống...........................................4
1.2.1. Quá trình mô phỏng hệ thống thông tin.............................................................4
1.2.2. Áp dụng mô phỏng trong thiết kế và đánh giá hệ thống thông tin.....................6
1.2.3. Các ứng dụng khác của mô phỏng.....................................................................6
1.3. Mức mô phỏng sử dụng............................................................................................7
1.4. Phương pháp mô phỏng..........................................................................................15
1.5. Công cụ mô phỏng.................................................................................................20
1.5.1. Giới thiệu về MATLAB..................................................................................20
1.5.2. Simulink..........................................................................................................20
CHƯƠNG II............................................................................................................26
MÔ PHỎNG MÃ HÓA NGUỒN..........................................................................26
2.1. Giới thiệu...............................................................................................................26
2.2. Một số khái niệm cơ bản về mã hóa.......................................................................27
2.3. Mã hóa...................................................................................................................32
2.4. Mã hóa nguồn.........................................................................................................37
2.5. Mã Huffman...........................................................................................................39
CHƯƠNG III..........................................................................................................44
MÔ PHỎNG MÃ HÓA KÊNH.............................................................................44
3.1. Giới thiệu...............................................................................................................44
3.2. Mã khối.................................................................................................................. 46
3.2.1. Mã khối...........................................................................................................46
3.2.2. Mã Hamming..................................................................................................50
3.3. Mã chập.................................................................................................................. 52
3.4. Mô phỏng mã hóa kênh trong Matlab....................................................................61
3.4.1. Mô phỏng mã hóa Hamming...........................................................................62
3.4.2. Xây dựng hệ thống sử dụng khối mã xoắn......................................................73
Chương IV...............................................................................................................86
Mô phỏng điều chế số.............................................................................................86
4.1. Giới thiệu...............................................................................................................86
4.2. Điều chế QPSK......................................................................................................87
4.3. Điều chế QAM.......................................................................................................91
4.4. Điều chế MSK........................................................................................................95
4.5. Mô phỏng...............................................................................................................99
4.5.1. Mô phỏng điều chế QPSK...............................................................................99
4.5.2. Mô phỏng điều chế QAM..............................................................................107
4.5.3. Mô phỏng điều chế MSK..............................................................................115
4.5.4. Các hàm hỗ trợ mô phỏng điều chế...............................................................122
CHƯƠNG V..........................................................................................................129
MÔ PHỎNG KÊNH TRUYỀN...........................................................................129
5.1. Kênh nhị phân đối xứng BSC...............................................................................129
5.1.1. Kênh nhị phân đối xứng................................................................................129
5.1.2. Mô phỏng......................................................................................................131
5.2. Kênh AWGN........................................................................................................137
5.3. Kênh Fading Rayleigh..........................................................................................142
5.3.1. Kênh fading Rayleigh....................................................................................142
5.3.2. Mô phỏng......................................................................................................147
5.4. Nhiễu ồn pha........................................................................................................158
5.4.1. Nhiễu ồn pha.................................................................................................158
5.4.2. Mô phỏng nhiễu ồn pha.................................................................................159
5.5. Mô phỏng một vài hệ thống thông tin số hiện tại.................................................165
TÀI LIỆU THAM KHẢO...................................................................................169
MỤC LỤC HÌNH VẼ
Hình 1.1. Sơ đồ khối tương đương băng gốc hệ thống vi ba M-QAM................................4
Hình 1.2. Mô hình phân cấp của hệ thống truyền thông......................................................7
Hình 1.3. Minh họa quá trình mô hình hóa hệ thống.........................................................10
Hình 1.4. Các lĩnh vực ảnh hưởng lên nghiên cứu mô phỏng các hệ thống truyền thông. 12
Hình 1.5. Minh họa các điểm ngẫu nhiên phân bố đều.....................................................16
Hình 1.6. Ước tính Monte Carlo của diện tích..................................................................16
Hình 1.7. Mô hình mô phỏng để xác định BER................................................................17
Hình 1.8. Cách vào toolbox simulink trong Matlab..........................................................21
Hình 1.9. Simulink icon trên giao diện Matlab................................................................22
Hình 1.10. Cửa sổ thư viện simulink.................................................................................22
Hình 1.11. Cách tạo mô hình.............................................................................................23
Hình 1.12. Cửa sổ xây dựng mô hình................................................................................23
Hình 1.13. Cách tạo các khối............................................................................................23
Hình 1.14. Lưu trữ mô hình..............................................................................................24
Hình 1.15. Di chuyển các khối..........................................................................................24
Hình 1.16. Nối tín hiệu......................................................................................................24
Hình 1.17. Mô phỏng mô hình..........................................................................................25
Hình 1.18. Đặt thông số mô phỏng...................................................................................25
Hình 1.19. Đặt thông số mô phỏng...................................................................................25
Hình 2.1. Biểu diễn một bộ mã trên mặt phẳng tọa độ......................................................35
Hình 2.2. Cây mã nhị phân cho bộ mã 00, 01, 10, 1101, 11001........................................36
Hình 2.3. Đồ hình kết cấu của bộ mã 00, 01, 100, 1010, 1011..........................................36
Hình 2.4. Sơ đồ tạo cây mã...............................................................................................41
Hình 2.5. Cây mã..............................................................................................................41
Hình 3.1. Phân loại mã kênh.............................................................................................46
Hình 3.2. Cấu trúc mã khối...............................................................................................47
Hình 3.3. Sơ đồ mã chập (n,k,N).......................................................................................53
Hình 3.4. Bộ mã chập (3,2,2)............................................................................................55
Hình 3.5. Sơ đồ bộ mã chập với N=3, k=1, n=3................................................................56
Hình 3.6. Mã chập (2,1,3).................................................................................................56
Hình 3.7. Mã chập (2,1,3).................................................................................................56
Hình 3.8. Sơ đồ hình cây của bộ mã (2,1,3).....................................................................57
Hình 3.9. Sơ đồ hình lưới bộ mã chập (2,1,3)...................................................................58
Hình 3.10. Sơ đồ trạng thái của bộ mã chập (2,1,3)..........................................................59
Hình 3.11. Khối phát dữ liệu.............................................................................................62
Hình 3.12. Khối điều chế BPSK.......................................................................................63
Hình 3.13. Khối giải điều chế BPSK.................................................................................63
Hình 3.14. Khối kênh AWGN...........................................................................................63
Hình 3.15. Khối mã hóa Hamming...................................................................................63
Hình 3.16. Khối giải mã Hamming...................................................................................64
Hình 3.17. Khối tính toán tỷ lệ lỗi bit................................................................................64
Hình 3.18. Khối hiển thị....................................................................................................64
Hình 3.19. Sơ đồ khối mô phỏng hệ thống sử dụng mã Hamming....................................64
Hình 3.20. Thiết lập thông số cho khối tạo bit ban đầu.....................................................65
Hình 3.21. Thiết lập thông số cho khối mã hóa Hamming................................................66
Hình 3.22. Thiết lập thông số cho khối điều chế BPSK....................................................66
Hình 3.23. Các thông số của khối AWGN Channel..........................................................67
Hình 3.24. Thông số của khối tính toán lỗi.......................................................................69
Hình 3.25. Thông số khối hiển thị.....................................................................................69
Hình 3.26. Tỉ lệ lỗi bit = 0.04391 với SNR = 0.1 dB........................................................70
Hình 3.27. Khối tạo dữ liệu ban đầu.................................................................................74
Hình 3.28. Khối mã hóa chập............................................................................................74
Hình 3.29. Khối điều chế BPSK.......................................................................................74
Hình 3.30. Khối giải điều chế BPSK.................................................................................75
Hình 3.31. Khối kênh AWGN...........................................................................................75
Hình 3.32. Khối chuyển đổi tín hiệu.................................................................................75
Hình 3.33. Khối giải mã chập...........................................................................................75
Hình 3.34. Khối tính toán tỷ lệ lỗi bit................................................................................75
Hình 3.35. Khối hiển thị....................................................................................................76
Hình 3.36. Sơ đồ khối hệ thống sử dụng mã Xoắn............................................................76
Hình 3.37. Thông số khối Bernoulli Binary Generator.....................................................76
Hình 3.38. Thông số khối mã chập...................................................................................77
Hình 3.39. Tham số khối điều chế BPSK..........................................................................77
Hình 3.40. Tham số khối kênh AWGN.............................................................................78
Hình 3.41. Tham số khối chuyển đổi tín hiệu...................................................................78
Hình 3.42. Tham số khối tính toán tỷ lệ lỗi bit..................................................................79
Hình 3.43. Tỉ lệ lỗi bit = 0.08532 với Es/No = 0.1 dB........................................................79
Hình 3.44. Bộ mã chập tỷ lệ 2/3........................................................................................84
Hình 4.1. Sơ đồ khối hệ thống thông tin đầy đủ................................................................86
Hình 4.2. Sơ đồ mô tả quá trình điều chế và giải điều chế số............................................87
Hình 4.3. Phương pháp điều chế QPSK............................................................................89
Hình 4.4.Phương pháp giải điều chế QPSK......................................................................89
Hình 4.5. Sơ đồ tái lập sóng mang cho giải điều chế QPSK.............................................90
Hình 4.6.Sơ đồ nguyên lý điều chế tín hiệu M-QAM.......................................................91
Hình 4.7. Biểu đồ không gian tín hiệu 16-QAM...............................................................92
Hình 4.8.Biểu đồ không gian tín hiệu QAM nhiều trạng thái............................................92
Hình 4.9. Sơ đồ khối mạch điều chế 8-QAM....................................................................92
Hình 4.10. Giản đồ vị trí các điểm đặc trưng các tribit.....................................................93
Hình 4.11. Sơ đồ khối Mạch điều chế 16-QAM................................................................93
Hình 4.12. Giản đồ 16-QAM............................................................................................94
Hình 4.13. Sơ đồ nguyên lý giải điều chế M-QAM..........................................................95
Hình 4.14. Phase tín hiệu MSK.........................................................................................97
Hình 4.15. Sơ đồ điều chế MSK.......................................................................................98
Hình 4.16. Giản đồ chòm sao biểu diễn sự thay đổi pha của tín hiệu MSK......................99
Hình 4.17. Tín hiệu MSK..................................................................................................99
Hình 4.18. Khối điều chế QPSK.....................................................................................100
Hình 4.19. Khối giải điều chế QPSK..............................................................................100
Hình 4.20. Khối giản đồ chòm sao..................................................................................100
Hình 4.21. Sơ đồ khối hệ thống sử dụng điều chế QPSK................................................101
Hình 4.22. Thiết lập tham số khối nguồn phát................................................................101
Hình 4.23. Thiết lập tham số khối mã xoắn.....................................................................102
Hình 4.24. Tham số khối điều chế QPSK........................................................................102
Hình 4.25. Tham số khối kênh AWGN...........................................................................103
Hình 4.26. Tham số khối giải điều chế QPSK.................................................................103
Hình 4.27. Tham số khối giải mã xoắn...........................................................................104
Hình 4.28. Tham số khối tính toán tỷ lệ lỗi bit................................................................104
Hình 4.29. Tham số khối giản đồ chòm sao....................................................................105
Hình 4.30. Tỷ lệ lỗi bit = 0.0009107 với Es/No = 5dB...................................................105
Hình 4.31. Giản đồ chòm sao khi chưa có tác động của AWGN....................................106
Hình 4.32. Giản đồ chòm sao khi có tác động của AWGN với Es/No = 5dB.................107
Hình 4.33. Khối phát số nguyên ngẫu nhiên...................................................................108
Hình 4.34. Khối điều chế QAM......................................................................................108
Hình 4.35. Khối giải điều chế QAM...............................................................................108
Hình 4.36. Sơ đồ khối hệ thống sử dụng điều chế QAM.................................................108
Hình 4.37. Tham số khối nguồn phát..............................................................................109
Hình 4.38. Tham số khối điều chế QAM........................................................................110
Hình 4.39. Tham số khối kênh AWGN...........................................................................111
Hình 4.40. Thiết lập tham số khối giải điều chế QAM....................................................111
Hình 4.41. Tham số khối tính toán tỷ lệ lỗi bit................................................................112
Hình 4.42. Tham số khối giản đồ chòm sao....................................................................113
Hình 4.43. Tỉ lệ lỗi bit = 0.00102 với Es/No = 30dB......................................................113
Hình 4.44. Giản đồ chòm sao tín hiệu sau khi điều chế 256- QAM................................114
Hình 4.45. Giản đồ chòm sao tín hiệu sau khi đi qua kênh truyền AWGN.....................114
Hình 4.46. Khối điều chế MSK.......................................................................................116
Hình 4.47. Khối giải điều chế MSK................................................................................116
Hình 4.48. Sơ đồ mô phỏng điều chế MSK.....................................................................116
Hình 4.49. Tham số khối nguồn phát..............................................................................117
Hình 4.50. Tham số khối mã xoắn..................................................................................117
Hình 4.51. Tham số khối điều chế MSK.........................................................................118
Hình 4.52. Tham số khối giải điều chế MSK..................................................................119
Hình 4.53. Tham số khối kênh AWGN...........................................................................120
Hình 4.54. Tham số khối giải mã xoắn...........................................................................120
Hình 4.55. Tham số khối tính toán tỷ lệ lỗi bit................................................................121
Hình 4.56. Kết quả tỷ lệ lỗi bit với Es/No=5dB là 0.02886.............................................121
Hình 4.57. Giản đồ chòm sao tín hiệu điều chế MSK.....................................................122
Hình 4.58. Giản đồ chòm sao tín hiệu MSK sau khi qua kênh AWGN...........................122
Hình 4.59. Giản đồ xung tín hiệu....................................................................................125
Hình 4.60. Tín hiệu điều chế QAM.................................................................................128
Hình 5.1. Hệ thống truyền thông với mô hình kênh rời rạc.............................................129
Hình 5.2. Mô hình kênh đối xứng nhị phân BSC............................................................130
Hình 5.3. Khối nhị phân Bernoulli..................................................................................132
Hình 5.4. Khối mã hóa Hamming...................................................................................132
Hình 5.5. Khối kênh truyền BSC....................................................................................132
Hình 5.6. Khối giải mã Hamming...................................................................................132
Hình 5.7. Khối tính toán tỷ lệ lỗi bit................................................................................133
Hình 5.8. Khối hiển thị....................................................................................................133
Hình 5.9. Mô hình kênh BSC..........................................................................................133
Hình 5.10. Thiết lập thông số cho khối mã hóa Hamming..............................................134
Hình 5.11. Thiết lập thông số khối kênh BSC.................................................................135
Hình 5.12. Thông số của khối tính toán lỗi.....................................................................135
Hình 5.13. Thông số khối hiển thị...................................................................................136
Hình 5.14. Kết quả chạy mô phỏng kênh BSC................................................................136
Hình 5.15. Mô tả tạp âm Gauss.......................................................................................138
Hình 5.16. Hàm mật độ xác suất Gauss...........................................................................138
Hình 5.17. Mật độ phổ công suất và hàm tự tương quan của tạp âm trắng......................139
Hình 5.18. Tín hiệu điều chế BPSK phía phát và thu có tác động của nhiễu AWGN.....142
Hình 5.19. Mô hình truyền sóng đa đường......................................................................143
Hình 5.20. Phân bố Rayleigh..........................................................................................147
Hình 5.21. Khối fading Rayleigh....................................................................................147
Hình 5.22. Sơ đồ khối hệ thống dưới sự tác động kênh Rayleigh Fading.......................148
Hình 5.23. Thiết lập tham số khối phát số nguyên ngẫu nhiên........................................148
Hình 5.24. Tham số khối mã xoắn..................................................................................149
Hình 5.25. Thiết lập tham số khối điều chế QPSK..........................................................150
HÌnh 5.26. Thiết lập tham số khối fading Rayleigh.........................................................150
Hình 5.27. Thiết lập tham số khối giải điều chế QPSK...................................................151
Hình 5.28. Tham số khối giải mã xoắn...........................................................................151
Hình 5.29. Thiết lập tham số khối giản đồ chòm sao......................................................152
Hình 5.30. Tỉ lệ lỗi bit = 0.5 với độ dịch tần là 40Hz......................................................152
Hình 5.31. Giản đồ chòm sao khi chưa có tác động của..................................................153
Fading Rayleigh..............................................................................................................153
Hình 5.32. Giản đồ chòm sao khi có tác động của Fading Rayleigh...............................153
Hình 5.33. Công suất tín hiệu bị fading...........................................................................157
Hình 5.34. Khối nhiễu ồn pha.........................................................................................159
Hình 5.35. Mô hình mô phỏng nhiễu ồn pha...................................................................160
Hình 5.36. Tham số khối tạo nguồn tín hiệu...................................................................160
Hình 5.37. Tham số khối mã hóa chập............................................................................161
Hình 5.38. Tham số khối điều chế BPSK........................................................................161
Hình 5.39. Tham số khối giải điều chế BPSK.................................................................162
Hình 5.40. Tham số khối kênh truyền AWGN................................................................162
Hình 5.41. Tham số khối nhiễu ồn pha...........................................................................163
Hình 5.42. Tham số khối giải mã chập............................................................................163
Hình 5.43. Kết quả chạy mô phỏng nhiễu ồn pha với Es/No=1dB..................................164
Hình 5.44. Giản đồ chòm sao tín hiệu sau khi điều chế BPSK........................................164
Hình 5.45. Giản đồ chòm sao của tín hiệu có tác động của nhiễu ồn pha........................165
Hình 5.46. Lớp vật lý của hệ thống CDMA 1xRTT........................................................166
Hình 5.47. Hệ thống DVB - S2.......................................................................................166
Hình 5.48. Lớp vật lý của hệ thống WCDMA.................................................................167
Hình 5.49. Hệ thống DVB - C.........................................................................................167
Hình 5.50. Hệ thống DVB - T.........................................................................................168
Hình 5.51. Lớp liên kết vật lý của hệ thống OFDM........................................................168
MỤC LỤC BẢNG
Bảng 2.1. Bảng mã các tin trong nguồn tin A...................................................................34
Bảng 3.1. Bảng trạng thái của bộ mã 00, 01, 10, 11..........................................................58
Bảng 3.2. Kết quả mô phỏng sử dụng khối mã hóa Hamming..........................................70
Bảng 3.3. Kết quả mô phỏng sử dụng khối mã hóa Convolution......................................79
Bảng 3.4. Các trường của một cấu trúc trellis...................................................................80
Bảng 3.5. Ý nghĩa của các giá trị lối vào...........................................................................82
Bảng 4.1. Kết quả mô phỏng sử dụng điều chế QPSK....................................................106
Bảng 4.2. Kết quả mô phỏng phương pháp điều chế QAM.............................................114
Bảng 4.3. Các hàm MATLAB hỗ trợ mô phỏng điều chế số...........................................124
LỜI NÓI ĐẦU
Trong thiết kế, phân tích và đánh giá các hệ thống thông tin hiện đại có ba phương
pháp chủ yếu, không loại trừ lẫn nhau đó là phương pháp giải tích, phương pháp chế thử
mẫu và đo lường, phương pháp mô phỏng. Đối với phương pháp mô phỏng, quá trình mô
phỏng thực chất là tạo giả hệ thống trên cơ sở mô hình hóa hệ thống viễn thông bao gồm
tạo giả tín hiệu, mô hình quá các khối chức năng của hệ thống và các tác động khác nhau
và cho tín hiệu “chạy” suốt qua hệ thống và đánh giá BER theo một số cách thức khác
nhau, Trên cơ sở đó đáp ứng các mục đích đề ra đối với công tác thiết kế và đánh giá các
hệ thống viễn thông.
Quá trình mô phỏng một hệ thống viễn thông là cung cấp một cái nhìn toàn diện và
sâu sắc đối với các vấn đề kỹ thuật của hệ thống; Đánh giá phản ứng của hệ thống cần mô
phỏng với các tác động khác nhau; Kiểm tra chất lượng hệ thống và so sánh với các chỉ
tiêu; Đánh giá chất lượng của hệ thống đó thông qua tỷ số lỗi bit (BER – Bit Error Ratio);
Khảo sát ảnh hưởng của các yếu tố khác nhau tới chất lượng của hệ thống.
Giáo trình mô phỏng các hệ thống viễn thông trình bày cấu trúc của một hệ thống
viễn thông và việc mô phỏng các hệ thống viễn thông sử dụng công cụ simulink của
MATLAB để giúp sinh viên nắm được các thành phần của một hệ thống viễn thông cụ thể
như mã hóa nguồn, mã hóa kênh, điều chế, kênh truyền…. và thực hiện mô phỏng được
trên máy tính dưới dạng sơ đồ khối để khảo sát, đánh giá chất lượng của từng hệ thống với
từng tác động cụ thể.
Nội dung cụ thể của giáo trình gồm 5 chương:
Chương 1: Sơ lược về mô phỏng các hệ thống thông tin
Chương 2: Mô phỏng mã hóa nguồn
Chương 3: Mô phỏng mã hóa kênh
Chương 4: Mô phỏng điều chế số
Chương 5: Mô phỏng kênh truyền
Trong quá trình biên soạn, việc trình bày các nội dung có thể còn đôi chỗ còn thiếu
sót, chưa thật chính xác, tác giả rất mong nhận được các ý kiến đóng góp của độc giả.
CHƯƠNG I

SƠ LƯỢC VỀ MÔ PHỎNG CÁC HỆ THỐNG THÔNG TIN

1.1. Hệ thống thông tin, các vấn đề trong thiết kế và đánh giá
1.1.1. Các hệ thống thông tin
Các hệ thống thông tin có chức năng truyền đưa thông tin từ nơi này đến nơi
khác. Theo các đặc tính của mình, các hệ thống thông tin có thể được phân loại theo
nhiều cách.Theo loại tín hiệu được dùng để truyền tin tức, các hệ thống thông tin được
chia thành các hệ thống thông tin tương tự (analog) hay số (digital). Theo các phương
tiện truyền dẫn, các hệ thống thông tin cũng có thể được phân loại thành các hệ thống
thông tin dùng cáp đồng, các hệ thống thông tin quang sợi (fiber optic) hay các hệ
thống thông tin sóng cực ngắn (microwave)…, trong đó các hệ thống thông tin sóng
cực ngắn lại có thể phân tiếp thành các hệ thống thông tin vệ tinh, thông tin vô tuyến
tiếp sức (thông tin vi ba) và thông tin di động.
Các thành phần chủ yếu của hệ thống thông tin bao gồm:
 Các nguồn tín hiệu bao gồm tín hiệu có ích, tạp âm và can nhiễu. Mặc dù tạp
âm và can nhiễu cũng là các tín hiệu điện song trong khuôn khổ giáo trình
này ta sẽ sử dụng từ “tín hiệu” để chỉ riêng thành phần tín hiệu có ích.
 Các thiết bị truyền dẫn tin tức bao gồm các bộ điều chế và giải điều chế, các
bộ lọc, các bộ khuếch đại, các mạch lọc thích nghi dùng làm mạch san bằng
đặc tính đường truyền, các mạch duy trì đồng bộ…
 Môi trường truyền dẫn hay đôi khi cũng được gọi là kênh truyền.
 Các thiết bị xử lý tin tức và tín hiệu.
Các yếu tố trở ngại chủ yếu trong truyền đưa thông tin gây suy giảm chất lượng
hệ thống bao gồm:
 Pha-đing gây bởi truyền dẫn đa đường trong thông tin vô tuyến tiếp sức,
thông tin di động…
 Các méo tín hiệu do đặc tính đường truyền không lý tưởng (bao gồm các méo
tuyến tính và méo phi tuyến), do trải giữ chậm (delay spreading) gây bởi
truyền dẫn đa đường (multipath).

1
 Các can nhiễu bao gồm can nhiễu khí quyển, can nhiễu từ các hệ thống khác,
can nhiễu từ các kênh lân cận cùng hệ thống hay can nhiễu nội tại (can nhiễu
gây bởi đặc tính phi tuyến của tuyến truyền dẫn).
 Tạp âm lượng tử và tạp âm nhiệt gây bởi các linh kiện điện tử.
 Tán sắc trong thông tin quang.
Chất lượng của các hệ thống thông tin số nói chung được đánh giá thông qua rất
nhiều tham số như mẫu mắt (eye-pattern), mật độ phổ nhiễu, độ nhạy máy thu, xác
suất lỗi bit… trong đó chỉ tiêu quan trọng nhất là xác suất lỗi bít của hệ thống.
1.1.2. Các vấn đề trong thiết kế và đánh giá hệ thống
Trong thiết kế, phân tích và đánh giá các hệ thống thông tin hiện đại có ba
phương pháp chủ yếu, không loại trừ lẫn nhau, đó là:
 Phương pháp giải tích: Là phương pháp dựa trên các công thức nhằm tính
toán các mạch điện, các khối chức năng cấu thành hệ thống và đánh giá chất
lượng hệ thống dưới tác động của các yếu tố khác nhau cũng được biểu diễn
thông qua các công thức toán học.
 Phương pháp chế thử mẫu và đo lường: Là phương pháp trên cơ sở tính toán
sơ bộ người thiết kế chế tạo mẫu thử và tiến hành đo kiểm tra các chỉ tiêu
chất lượng. Đặc điểm của phương pháp này là mặc dù phương pháp cho các
kết quả tin cậy nhất song khá cứng nhắc và tốn kém, do vậy chỉ áp dụng
trong các bước sau trong quá trình thiết kế và phân tích hệ thống.
 Phương pháp mô phỏng
Trong vài thập kỷ gần đây các hệ thống thông tin và xử lý tín hiệu đã phát triển
đặc biệt mạnh mẽ. Trong thời gian này sự ra đời của một loạt các kỹ thuật mới như các
phần cứng với giá thành khá rẻ, xử lí nhanh chóng tín hiệu, cáp sợi quang học, các
thiết bị quang học tích hợp và các mạch tích hợp sóng cực ngắn… đã có những ảnh
hưởng rất quan trọng tới việc thực hiện các hệ thống thông tin liên lạc. Mức độ phức
tạp ngày càng tăng của các hệ thống thông tin đòi hỏi những cố gắng và thời gian ngày
càng lớn trong thiết kế và phân tích hệ thống với chi phí ngày càng cao. Sự cần thiết
phải nhanh chóng đưa các kỹ thuật mới vào các sản phẩm thương mại nhằm cải thiện
và phát triển các dịch vụ kỹ thuật, tăng khả năng cạnh tranh của các thiết bị ở dạng

2
thương phẩm đòi hỏi việc thiết kế và đánh giá chất lượng hệ thống thông tin phải được
tiến hành theo một cách thức mới, tiết kiệm về thời gian, dễ dàng và rẻ tiền. Các hệ
thống thông tin liên lạc hiện đại là các cấu trúc rất phức tạp gồm các phần tử khác nhau
mà những phần tử này tự thân cũng có các đặc tính phức tạp. Do độ phức tạp rất cao
và ngày một phức tạp hơn của các hệ thống thông tin liên lạc hiện đại, cách đề cập giải
tích về các phản ứng của cách hệ thống xem ra là một nhiệm vụ không thể thực hiện
được. Các thử nghiệm trên các hệ thống thực theo phương pháp chế thử mẫu và đo
lường, mặt khác lại quá tốn kém, nhất là trong các giai đoạn đầu của quá trình thiết kế,
phát triển và cải tiến hệ thống. Do vậy, như thực tế cho thấy, các yêu cầu về độ chính
xác cũng như hiệu quả về thời gian và chi phí cho quá trình thiết kế, phân tích và đánh
giá hệ thống chỉ có thể thỏa mãn được thông qua việc sử dụng các công cụ thiết kế và
phân tích có sự trợ giúp của máy tính mạnh.
Một số lượng lớn các kỹ thuật được trợ giúp bởi máy tính (computeraided) đã
được phát triển trong vài chục năm trở lại đây nhằm hỗ trợ quá trình mô hình hóa,
phân tích và thiết kế các hệ thống thông tin liên lạc. Các kỹ thuật này được chia làm
hai loại:
- Các giải pháp dựa trên công thức (formula-based techniques), trong đó máy
tính được sử dụng để đánh giá và tính toán theo các công thức phức tạp. Kỹ thuật này
dựa trên các mô hình được đơn giản hóa, cho phép có được cái nhìn tương đối về
tương quan giữa các thông số và các chỉ tiêu chất lượng của hệ thống cần khảo sát và
do vậy chúng có ích trong các giai đoạn đầu của công việc thiết kế. Tuy nhiên, ngoại
trừ một số trường hợp tương đối lý tưởng hoặc được đơn giản hóa cao, việc đánh giá
chất lượng hệ thống thông tin phức tạp dùng các tính toán giải tích để đạt được độ
chính xác mong muốn là hết sức khó khăn.
- Các giải pháp dựa trên mô phỏng (simulation-based techniques), trong đó máy
tính được sử dụng để mô phỏng các dạng sóng hay các tín hiệu trong quá trình truyền
qua suốt hệ thống.
Kỹ thuật mô phỏng các hệ thống thông tin liên lạc là kỹ thuật dùng máy tính
với các sản phầm phần mềm thích hợp để tạo giả và bắt chước hệ thống ở mức dạng
sóng tín hiệu nhằm xem xét, phân tích, đánh giá phản ứng của nó.

3
Mô phỏng máy tính là công cụ hữu hiệu trong nghiên cứu, đánh giá cũng như
thiết kế hệ thống. Mặc dù các kết quả mô phỏng không thể hoàn toàn chính xác so với
các kết quả đo thử nghiệm trên thực tế (do các phép tính gần đúng, do tính gần đúng
của các mô hình sử dụng trong mô phỏng…), song như thực tế đã cho thấy, các kết
quả thu được bằng mô phỏng với các phần mềm tốt và được sử dụng đúng đắn thì hoàn
toàn có thể tin cậy được. Trong rất nhiều trường hợp các kết quả mô phỏng rất khớp
với các số liệu đo kiểm nghiệm. Các ưu điểm nổi bật của mô phỏng bằng máy tính là
nhanh chóng, kinh tế, hết sức mềm dẻo trong ứng dụng và trong rất nhiều trường hợp
nó cho phép giải cả những bài toán không có khả năng giải quyết bằng thực nghiệm
cũng như tính toán một cách giải tích.

1.2. Áp dụng mô phỏng trong thiết kế và đánh giá hệ thống


1.2.1. Quá trình mô phỏng hệ thống thông tin
Mục đích của mô phỏng hệ thống thông tin là:
 Cung cấp một cái nhìn toàn diện và sâu sắc đối với các vấn đề kỹ thuật của hệ
thống.
 Đánh giá phản ứng của hệ thống cần mô phỏng với các tác động khác nhau.
 Kiểm tra chất lượng hệ thống và so sánh với các chỉ tiêu.
Để hiểu rõ về quá trình mô phỏng hệ thống thông tin ta xét một thí dụ với hệ
thống vi ba M-QAM (M-ary Quadrature Amplitude Modulation: Điều chế biên độ
vuông góc M mức) có sơ đồ khối tương đương băng gốc như hình sau:

Hình 1.1. Sơ đồ khối tương đương băng gốc hệ thống vi ba M-QAM

Trong đó:
S.S (Symbol Source): Nguồn ký hiệu
Tx.F (Transmitter Filter): Bộ lọc phát
MOD (Modulator): Bộ điều chế
HPA (High Power Amplifier): Bộ khuếch đại công suất
CHAN (Channel): Kênh truyền

4
Rx.F (Receiver Filter): Bộ lọc thu
DEM (Demodulator): Bộ giải điều chế
n(t): Tạp âm nhiệt
Mục đích của việc đánh giá, thiết kế là:
 Đánh giá chất lượng hệ thống thông qua tham số BER (Bit Error Ratio: Tỷ lệ
lỗi bit). Thông thường, BER là một hàm của tỷ số tín/tạp, cụ thể là một hàm

của tỷ số năng lượng một bit


Eb với năng lượng N o của tạp âm (thường được

giả thiết là tạp âm trắng chuẩn) tính trên một bit, tức là BER = f(
Eb / N o ).

 Khảo sát ảnh hưởng của các yếu tố khác nhau tới chất lượng của hệ thống.
 Giải pháp giải tích là trên cơ sở mô hình hóa hệ thống bằng các công thức
toán học, tính toán BER dưới tác động của rất nhiều yếu tố như méo do lọc,
méo phi tuyến do khuếch đại công suất, méo do đường truyền, sai pha sóng

mang thu sai lệch tín hiệu đồng hồ,…, tức là tính toán BER = f(
Eb / N o ) méo

đường truyền, méo phi tuyến (  ,  ) trong đó  ,  lần lượt là các sai
lệch pha sóng mang và sai lệch tín hiệu đồng hồ giữa phần thu với phần
phát.Do có phần tử phi tuyến (bộ khuếch đại công suất) phương pháp xếp
chồng không thể áp dụng được, hơn nữa do băng tần hạn chế nên trong tín
hiệu đầu ra tồn tại xuyên nhiễu giữa các dấu ISI (InterSymbol Interference),
…nên việc tính toán theo phương pháp giải tích trở nên quá phức tạp đến nỗi
có thể xem như không thể thực hiện nổi.
Đối với phương pháp mô phỏng, quá trình mô phỏng thực chất là tạo giả hệ
thống trên cơ sở mô hình hóa hệ thống bao gồm giả tín hiệu, mô hình hóa các khối
chức năng của hệ thống và các tác động khác nhau và cho tín hiệu chạy suốt qua hệ
thống và đánh giá BER theo một số cách thức khác nhau. Trên cơ sở đó đáp ứng các
mục đích đề ra đối với công tác thiết kế và đánh giá hệ thống. Như vậy, quá trình mô
phỏng bằng máy tính các hệ thống thông tin bao gồm:
+ Tạo giả tín hiệu ở dạng xử lý máy tính được (bằng cách tạo mẫu các tín hiệu
tới mức dạng sóng trong các miền tần số hay thời gian một cách thích hợp.

5
+ Mô hình hóa các khối của hệ thống theo các thuật toán học mô tả chức năng
của từng khối, liên kết các khối chức năng của hệ thống theo sơ đồ khối dùng để mô
phỏng.
+ Cho các mẫu tín hiệu dạng sóng chạy qua toàn hệ thống, tạo ra các mẫu tín
hiệu dạng sóng lối ra hệ thống.
+ Đánh giá BER theo một số phương pháp, chẳng hạn bằng cách so sánh chuỗi
ký hiệu nhận được ở lối ra so với chuỗi ký hiệu được tạo ra ở lối vào (phương pháp
Monte-Carlo).
1.2.2. Áp dụng mô phỏng trong thiết kế và đánh giá hệ thống thông tin
Trong thiết kế hệ thống, mô phỏng hệ thống được tiến hành như sau:
 Lập sơ đồ hệ thống giả định (định thiết kế).
 Mô hình hóa các thành phần của hệ thống với các thông số cơ bản.
 Mô phỏng hệ thống với các thông số khác nhau nhằm tìm phương án thiết kế
tối ưu thỏa mãn các chỉ tiêu đã được đề ra đối với hệ thống cần thiết kế.
Đánh giá hệ thống trong quá trình phát triển: Để đảm bảo tính xác thực của mô
phỏng, kết quả mô phỏng cần phải được kiểm nghiệm bằng cách so sánh với kết quả
trên các hệ thống thực hiện có trong quá trình phát triển phần mềm mô phỏng. Với các
phần mềm mô phỏng đã được kiểm nghiệm, căn cứ vào các tham số thực của hệ thống
cần phát triển, hệ thống cần đánh giá được đưa vào mô phỏng nhằm có được các kết
luận về chất lượng hệ thống khi được phát triển.
1.2.3. Các ứng dụng khác của mô phỏng
Khi đã có hệ thống đang khai thác, việc mô phỏng hệ thống có thể giúp ích cho
việc phát hiện và loại bỏ hỏng hóc. Ngoài ra, mô phỏng máy tính còn có thể được sử
dụng như một công cụ hữu hiệu và rẻ tiền trong huấn luyện, giảng dạy, nghiên cứu,
cho phép giải thích, quan sát một cách sâu sắc và trực quan các khái niệm, các tính
chất của hệ thống thông tin. Trong đào tạo tại nhiều trường và trung tâm khoa học lớn
trên thế giới, mô phỏng máy tính các hệ thống thông tin đang trở thành công nghệ huấn
luyện thực hành mới, thay thế cho các công nghệ cứng nhắc, thiếu tính tổng quát và
tốn kém trước đây là thực hành trên hệ thống thực hay trên các mô hình đơn giản hóa.

6
1.3. Mức mô phỏng sử dụng
Mô phỏng được sử dụng rộng rãi trong nhiều giai đoạn của quá trình thiết kế và
triển khai hệ thống truyền thông hiện đại. Mô phỏng không những chủ yếu được sử
dụng để ước lượng hiệu năng và nghiên cứu dung hòa trong thiết kế (tối ưu tham số)
mà còn được dùng để thiết lập các thủ tục kiểm tra và kiểm chuẩn, các dự đoán tuổi
thọ cũng như nghiên cứu tính bất thường sau khi hệ thống được triển khai trong thực
tế. Cả phương pháp luận mô phỏng và mô hình mô phỏng đều được sử dụng để biểu
diễn hệ thống phụ thuộc vào các giai đoạn khác nhau của quá trình thiết kế, thực thi và
vòng đời của hệ thống. Phương pháp luận mô phỏng cũng sẽ được kiểm soát hoặc định
hướng bởi trình tự thiết kế tổng thể. Ta minh họa trình tự thiết kế và sử dụng mô phỏng
trong các giai đoạn thiết kế khác nhau và vòng đời của hệ thống truyền thông.
Theo nghĩa rộng, thuật ngữ hệ thống truyền thông có thể coi như một mạng lưới
truyền thông toàn cầu, truyền thông vệ tinh địa tĩnh, thông tin vi ba mặt đấthoặc một
modem tích hợp sẵn trong máy tính cá nhân. Mô hình phân cấp thường được sử dụng
để mô tả các hệ thống thông tin liên lạc được thể hiện trong hình dưới đây:

Hình 1.2. Mô hình phân cấp của hệ thống truyền thông

Cấp cao nhất là mạng truyền thông được tạo thành từ các nút truyền thông
thông qua liên kết truyền thông hoặc hệ thống truyền tải như các lớp bên dưới. Một
liên kết truyền thông được tạo thành từ các yếu tố như điều chế, mã hóa, lọc, khuếch

7
đại, giải mã, giải điều chế và các thành phần khác như thực hiện các hoạt động xử lý
tín hiệu. Những yếu tố này có thể là mạch tương tự, mạch kỹ thuật số hoặc một thuật
toán thực hiện trên một bộ xử lý tín hiệu số (DSP). Chi tiết của những yếu tố này đại
diện trong lớp dưới cùng của hệ thống phân cấp.
Quá trình thiết kế một hệ thống truyền thông phức tạp được thực hiện từ đỉnh
xuống, ngược lại thực thi phần cứng thường từ đáy lên. Theo đó, khi thiết kế hệ thống
ta bắt đầu tại mức hệ thống (mức trừu tượng cao nhất) và hoàn thiện chi tiết thiết kế từ
mức hệ thống, xuống mức hệ thống con và cuối cùng là mức thành phần. Sau đó đạt
tới mức đáy mà ở đó tính chi tiết của bộ phận thiết bị thành phần được nhận dạng. Vì
vậy, trình tự xây dựng một hệ thống gồm:
- Tạo ra các thành phần
- Hợp các thành phần thành hệ thống con
- Xây dựng hệ thống tổng thể từ các hệ thống con
- Triển khai mô phỏng theo giải pháp từ đỉnh xuống
Ta bắt đầu bằng việc mô phỏng mức hệ thống có mức trừu tượng cao tăng dần
tính chi tiết, các mô phỏng các hệ thống con và các thành phần. Do thực thi khởi đầu
nên các đặc tính đo của các thành phần và các phần hệ được chứa trong mô hình mô
phỏng
Dù ta đang giải quyết bài toán thiết kế chi tiết hay ước tính hiệu năng mức hệ
thống thì điểm bắt đầu luôn là sơ đồ khối chi tiết, trình bày phần hệ thống cần được mô
phỏng. Trình bày sơ đồ khối khởi đầu thường chi tiết hơn mức cần thiết. Tuy nhiên, là
thói quen và hữu hiệu vì tại điểm bắt đầu bao gồm mọi thứ mà ta có thể nghĩ về sơ đồ
khối toàn diện khởi đầu. Mô hình mô phong cuối cùng được tạo ra từ sơ đồ khối khởi
đầu được đơn giản hóa. Ứng dụng ba lớp kỹ thuật sau để tạo lập mô hình mô phỏng là:
Trình bày phân cấp; phân chia hóa và điều kiện hóa; đơn giản hóa (xấp xỉ, giả định)
Trình bày phân cấp: Phân cấp là giải pháp thường dùng để giảm tính phức tạp
trong mô hình hóa, thiết kế phần mềm và các ứng dụng khác. Trong viễn cảnh hệ
thống truyền thông, phân cấp được sử dụng để quản lý và giảm tính phức tạp của mô
hình mô phỏng, giảm tải tính toán trong quá trình mô phỏng mô hình. Trình bày phân
cấp được thực hiện trong các lớp khác nhau bắt đầu từ mô hình mức hệ thống và qua

8
các lớp phân hệ, lớp thành phần và lớp vật lý. Minh hoạ các lớp cho một hệ thống
truyền thông cụ thể được cho bởi hình 1.3.
Trong trình bày phân cấp hoặc lập mô hình hệ thống, các khối ở các lớp thấp
hơn trong phân cấp sẽ chi tiết hơn, ngược lại các khối tại các lớp cao hơn trừu tượng
hơn và thuộc về chức năng tổng thể của khối. Phân giải thành các lớp thấp hơn cho đến
khi không thể. Mức thấp nhất thường dựa trên các thành phần như điện trở, tụ điện và
vi mạch.
Trong toàn cảnh hệ thống truyền thông, mô hình mức hệ thống được cho ở hình
1.3(a) gồm các khối chức năng như nguồn thông tin, bộ mã hóa, bộ giải mã, bộ điều
chế, bộ giải điều chế, bộ lọc và kênh. Mỗi khối chức năng là một phân hệ và được
phân giải để được chi tiết hơn. Ví dụ phân hệ khôi phục định thời được phân tích
thành: hai bộ lọc thông dải, bộ phi tuyến bậc 4 và vòng khóa pha PLL như ở hình
1.3(b). Phân tính hơn nữa nhận được mô hình mức thành phần. Ví dụ, bộ lọc thông
băng được cho ở hình 1.3(b) có thể là bộ lọc tương tự, bộ lọc siêu cao hay bộ lọc số.
Trường hợp bộ lọc tương tự, có thể khai triển thành các mô hình mức mạch điện.
Trường hợp bộ lọc số, việc phân tích sẽ đi xuống mức bit như các bộ cộng, bộ nhân,
bộ tích lũy. Dưới lớp này chứa các transistor và các cổng logic cụ thể. Tuy nhiên, trong
viễn cảnh mô phỏng mức dạng sóng ta rất hiếm khi đi xuống mức chi tiết này. Mô hình
lớp thành phần cho PLL được minh hoa ở hình 1.3(c).

9
Hình  1.3. Minh họa quá trình mô hình hóa hệ thống
Tại mức hệ thống, mô phỏng được thực hiện ở mức trừu tượng cao nhất sử
dụng các mô hình tính cách (các hàm truyền đạt) chứ không phải là các mô hình vật lý.
Dạng chức năng của mô hình tính cách thường được giả định hoặc từ các phép đo.
Phân chia hóa và điều kiện hóa: Phân chia hóa bài toán phức tạp thành một
tập các bài toán nhưng độc lập nhau, được giải quyết riêng biệt và kết hợp các nghiệm,
là một kỹ thuật hữu hiệu khác làm giảm tính phức tạp và tải tính toán. Trong khi phân
cấp bàn về mức độ trừu tượng thì phân chia hóa cũng bàn về tính trừu tượng nhưng ở
các khia cạnh khác nhau của bài toán đó là: mô phỏng riêng biệt và kết hợp các kết
quả. Vì vậy, phân chia hóa, cho phép quan sát và kiểm tra sơ đồ khối theo chiều ngang
trong khi phân cấp cho phép xét theo chiều đứng. Trong viễn cảnh được cho ở hình 1.3
có thể tách biệt phần đồng bộ hóa, mã hóa ra khỏi bài toán và mô phỏng chúng riêng
biệt.
Điều kiện hóa là một kỹ thuật khác rất giống với phân chia hóa, đơn giản ta cố
định điều kiện hay trạng thái của một phần hệ thống và mô phỏng phần còn lại của hệ

10
thống dưới các giá trị khác nhau của các biến điều kiện hay trạng thái. Mô phỏng riêng
cho phần hệ thống được điều kiện hóa và các kết quả đạt được trong phần đầu được lấy
trung bình theo phân bố của biến điều kiện đạt được trong phần thứ hai.
Đơn giản hóa và xấp xỉ hóa: Tại điểm bắt đầu mô hình sơ đồ khối ban đầu
thường được chi tiết hóa tới mức có thể. Tính phức tạp của mô hình tổng thể và các mô
hình phân hệ được giảm bằng việc loại bỏ các khối ít ảnh hưởng lên bài toán, xấp xỉ
hóa và đơn giản hóa bằng cách kết hợp các khối.
Ví dụ về cách rút gọn sơ đồ khối, xét bài toán ước tính hiệu năng mức hệ thống.
Nếu coi kênh là kênh thay đổi rất chập theo thời gian và hệ thống đang hoạt động tại
SNR cao thì có thể cho rằng các lỗi đồng bộ sẽ rất nhỏ và vì vậy có thể bỏ qua ảnh
hưởng của đồng bộ trong quá trình ước tính hiệu năng. Khi này, không cần mô phỏng
các phần khôi phục định thời và có thể xóa bỏ ra khỏi sơ đồ khối.
Mở rộng việc dùng xấp xỉ hóa và giả định để đơn giản mô hình mô phỏng. Giả
định và xấp xỉ hóa được sử dụng phổ biến nhất bao gồm việc tuyến tính hóa và bất
biến hóa theo thời gian. Hầu hết các hệ thống thực tế, khi được quan trắc trong thời
gian dài và trên dải tín hiệu đầu vào thay đổi độ rộng, có thể biểu lộ tính phi tuyến và
thay đổi theo thời gian nhưng chúng có thể được xấp xỉ tốt bởi các mô hình tuyến tính
và bất biến theo thời gian trong các khoảng thời gian ngắn và các mức tín hiệu thấp.
Bất biến theo thời gian ngụ ý rằng trong khoảng thời gian mô phỏng, các đặc
tính của tín hiệu và các thành phần hệ thống đang được mô phỏng là không thay đổi.
Thực tế, khái niệm bất biến theo thời gian là tương đối. Nếu tham số hệ thống thay đổi
chậm thì có thể coi một số tình huống là cố định trong khoảng thời gian mô phỏng.
Chẳng hạn, xét bài toán ước lượng tính BER trên kênh vô tuyến trong đó các ăng ten
phát và thu là dừng. Nếu nhưng thay đổi trong đặc tính kênh là do thay đổi điều kiện
khí quyển, tốc độ ký hiệu truyền dẫn là vài triệu ký hiệu trên giây thì có thể coi kênh là
tựa tĩnh. Điều đó nói rằng kênh vẫn duy trì cùng một số điều kiện trong vài trăm triệu
ký hiệu đi qua nó và đặc biệt có ý nghĩa khi xác định xác suất lỗi tức thời trong điều
3
kiện kênh cho trước. Nếu BER được ước tính là khoảng 10 thì chỉ cần mô phỏng vài
nghìn ký hiệu để ước tính BER. Điều này thể hiện khoảng thời gian mô phỏng là vài
ms trong khi hằng số thời gian của kênh là khoảng vài phút vì vậy nó là hợp lý để coi

11
kênh là tĩnh trong khoảng thời gian mô phỏng. Việc lấy xấp xỉ tựa tĩnh có vai trò rất
quan trọng để đơn giản hóa các mô hình mô phỏng.
Hiển nhiên, kiến thức lý thuyết truyền thông là rất quan trọng. Cấu trúc hệ
thống, đặc tính hoạt động của các phân hệ (bộ giải điều chế, bộ cân bằng, chi tiết hóa
các mô hình kênh…) phải được hiểu rõ trước khi triển khai mô phỏng. Khi sử dụng mô
phỏng để xác định các giá trị của tham số hệ thống, cần phải lưu ý đến dải giá trị của
nó có ý nghĩa thực tế trước khi triển khai mô phỏng. Cần phải có những hiểu biết sâu
sắc về tính cách hệ thống để đảm bảo hoạt động mô phỏng chính xác và kết quả hợp
lý.

Hình 1.4. Các lĩnh vực ảnh hưởng lên nghiên cứu mô phỏng các hệ thống truyền thông
Trong nhiều thập kỷ qua nhiều gói phần mềm đã được triển khai và đang được
sử dụng rộng rãi để mô phỏng các hệ thống truyền thông ở mức dạng sóng. Các thành
phần cốt yếu của cấu trúc khung mô phỏng cho các hệ thống truyền thông gồm:
- Bộ xây dựng mô hình
- Thư viện mô hình
- Nhân mô phỏng
- Bộ hậu xử lý
Bất kể dùng gói mô phỏng nào, bước đầu tiên trong mô phỏng hệ thống truyền
thông là xây dựng các mô hình mô phỏng cho các phân hệ khác nhau, sau đó cấu hình
hóa các phân hệ thành một mô phỏng hệ thống đầu cuối - đầu cuối. Các mô hình mô

12
phỏng có thể được xây dựng bằng ngôn ngữ lập trình mục đích chung và viết mã thích
hợp hoặc sử dụng bộ xây dựng mô hình đồ họa. Với bộ xây dựng đồ họa, triển khai các
mô hình mô phỏng cho các phân hệ và cho toàn hệ thống truyền thông các khối cơ bản
có sẵn từ các thư viện mô hình. Các biểu tượng biểu diễn các khối chức năng như các
nguồn tin, bộ mã hóa, bộ điều chế, bộ ghép/phân kênh, các mô hình kênh, tạp âm và
nguồn nhiễu, bộ lọc, bộ giải điều chế, bộ giải mã được chọn từ các thư viện mô hình.
Kết nối các biểu tượng này sẽ tạo mô hình mô phỏng ở dạng sơ đồ khối phân cấp. Điển
hình như Simulink trong Matlab là gói mô phỏng đơn giản sử dụng giải pháp bộ xây
dựng mô hình đồ họa.
Sau khi mô hình mô phỏng được triển khai thì các tham số mô phỏng (như tốc
độ lấy mẫu, các con số gốc của bộ tạo số ngẫu nhiên và thời gian mô phỏng) và các
tham số thiết kế (như độ rộng băng tần bộ lọc, tỷ lệ mã, SNR) phải được định rõ. Sau
đó thực hiện mô phỏng. Liên kết tất cả các mô hình với nhau sẽ tạo mã khả thi (có khả
năng thực hiện mô phỏng), bắt đầu mô phỏng, lưu các giá trị mẫu của các dạng sóng
được tạo bởi mô phỏng và giám sát tiến trình mô phỏng là các hàm thường được thực
hiện bởi nhân mô phỏng/bộ quản lý.
Sau khi hoàn tất mô phỏng, tính các phép đo hiệu năng như BER, SNR từ các
dạng sóng mô phỏng, sử dụng các bộ hậu xử lý để trực quan hóa kết quả mô phỏng là
hàm của các tham số thiết kế. Cho phép khảo sát phổ, dạng sóng, biểu đồ tán xạ, biểu
đồ mắt theo các tham số đặc trưng của mô hình mô phỏng một cách chi tiết, trực quan
và gỡ rối mô phỏng.
Trường hợp đơn giản nhất là mô phỏng điều khiển thời gian, khi này có một
đồng hồ mô phỏng và mỗi khối chức năng trong mô hình mô phỏng được thực hiện tại
mỗi « tick » của đồng hồ mô phỏng. Sau đó đồng hồ mô phỏng được nhịp lên một chu
kỳ lấy mẫu (chu kỳ đồng hồ bằng chu kỳ lấy mẫu). Tất cả các khối chức năng trong
mô hình được kích hoạt tại mỗi chu kỳ đồng hồ vì vậy mỗi mô hình có thể cập nhật
trạng thái ứng với giá trị mới của đồng hồ mô phỏng.
Trường hợp mô phỏng điều khiển sự kiện, đặt trước đồng hồ một lượng nào đó
cho thời gian biểu của sự kiện tiếp theo và mỗi khối chức năng cập nhật trạng thái ứng
với giá trị của thời điểm mô phỏng mới. Một cách điển hình, chỉ vài khối cần được

13
kích hoạt để cập nhật trạng thái riêng và không cần xử lý trong khoảng thời gian liên
kết sự kiện. Mô phỏng các hệ thống hàng đợi thường được triển khai theo cách này.
Mục đích cơ bản của hệ thống truyền thông là xử lý dạng sóng và ký hiệu, vì
vậy mô phỏng hệ thống truyền thông là tìm cách phỏng tạo quá trình này bằng cách tạo
và xử lý các giá trị mẫu của những dạng sóng này. Theo đó cần phải:
- Mô hình hóa các hoạt động xử lý tín hiệu (được thực hiện bởi các khối chức
năng trong hệ thống).
- Tạo các dạng sóng đầu vào để thâm nhập vào các điểm khác nhau của hệ
thống.
- Điểu khiển các mô hình bằng các dạng sóng đầu vào phù hợp để tạo các dạng
sóng đầu ra (là đầu vào của khối chức năng khác).
- Phân tích những dạng sóng này để tối ưu các tham số thiết kế, hoặc để đạt
được các phép đo hiệu năng.
Các bước tiến hành mô phỏng:
Bước thứ nhất, là mô hình và xác định tham số. Giải pháp tổng thể để mô phỏng
mức dạng sóng hệ thống truyền thông khá dễ hiểu. Ta bắt đầu bằng việc mô tả phân
chia hệ thống để mô phỏng hệ thống ở dạng sơ đồ khối, trong đó mỗi khối chức năng
thực hiện một hoạt động xử lý tín hiệu cụ thể. Mô hình mô phỏng cho mỗi khối chức
năng được chọn từ thư viện các mô hình khả dụng và tạo mô hình sơ đồ khối bằng
cách kết nối tập các khối được chọn. Trước khi thực hiện mô phỏng, cần phải xác định
rõ các giá trị cụ thể hoặc khoảng các giá trị được phép cho các tham số của mỗi khối
(chẳng hạn như băng thông của bộ lọc). Đơn giản hóa sơ đồ khối đến mức có thể và
chia nhỏ nếu cần thiết. Việc ánh xạ bài toán thiết kế hoặc ước tính hiệu năng thành mô
hình mô phỏng là một trong những bước khó nhất trong phương pháp luận. Thời gian
mô phỏng và độ chính xác của kết quả mô phỏng phụ thuộc vào cách thực hiện điều
này.
Bước thứ hai, là thực hiện mô phỏng. Thực hiện mô phỏng bao gồm tạo các giá
trị mẫu của tất cả dạng sóng đầu vào hoặc tác nhân kích thích điều khiển mô hình mô
phỏng. Các tín hiệu, tạp âm, nhiễu được biểu diễn bởi các quá trình ngẫu nhiên và sử
dụng các bộ tạo số ngẫu nhiên để tạp các giá trị mẫu của các quá trình ngẫu nhiên.

14
Trong mô phỏng, các đầu ra của các bộ tạo số ngẫy nhiên được đưa vào các khối để:
Điều khiển mô hình mô phỏng ; tạo các giá trị mẫu tạo các đầu ra của các khối chức
năng. Một số đầu ra được ghi lại và được phân tích trong khi đang thực hiện mô phỏng
hoặc tại thời điểm kết thúc mô phỏng, ước tính các phép đo hiệu năng như: Tỉ số tín
hiệu trên tạp âm (SNR), sai số trung bình bình phương (MSE), xác suất lỗi.
Bước cuối cùng, là xác định tính hợp lệ. Cũng là bước rất quan trọng trong mô
phỏng, ta xác định tính hợp lý của các kết quả mô phỏng bằng cách dùng các xấp xỉ
giải tích, các giới hạn hoặc các kết quả đo khả dụng. Các kết quả đo cụ thể chỉ khả
dụng đối với thời điểm kết thúc chu kỳ thiết kế sau khi nguyên mẫu được xây dựng.
Thậm chí, khi hệ thống nguyên mẫu là khả dụng nhưng chỉ thực hiện hữu hạn các phép
đo. Bản chất tốn kém của đo kiểm là nhân tố chính dẫn đến thực hiện mô phỏng.

1.4. Phương pháp mô phỏng


Một trong những mục đích chính của mô phỏng là ước tính hiệu năng. Đối với
hệ thống truyền thông tương tự, phép đo hiệu năng cơ bản là tỷ số tín hiệu trên tạp âm
đầu ra (SNR). Với hệ thống truyền thông số, phép đo hiệu năng là tỉ số lỗi bit (BER)
hoặc tỉ số lỗi khung (FER). Tỉ số tín hiệu trên tạp âm (SNR) cũng là phép đo hiệu năng
thứ cấp trong các hệ thống truyền thông số (vì BER là một hàm đơn vị của SNR). Kỹ
thuật Monte Carlo được dùng để ước tính phép đo hiệu năng.
Các mô phỏng Monte – Carlo dựa trên những trò chơi may rủi. Tất nhiên, là lý
do của tên Monte- Carlo, thành phố thuộc Địa trung hải nổi tiếng về các casino. Ta sử
dụng hai thuật ngữ quan hệ mật thiết ước tính Monte – Carlo và mô phỏng Monte –
Carlo có thể thay thế cho nhau. Mô phỏng Monte – Carlo mô tả mô phỏng trong đó
một tham số của hệ thống như tỷ số lỗi bit (BER) được ước tính bằng cách sử dụng kỹ
thuật Monte – Carlo. Ước tính Monte Carlo là quá trình ước tính giá trị của một tham
số bằng cách thực hiện quá trình stochastic cơ bản hay thí nghiệm ngẫu nhiên.
*Ước tính Monte Carlo
Xét một ví dụ đơn giản về bộ ước tính Monte Carlo, xác định diện tích của vùng
có hình dạng không bình thường. Giả sử vùng được ước tính hoàn toàn được giới hạn
trong diện tích của một hộp đã biết. Định nghĩa thí nghiệm ngẫu nhiên là: lấy ra các
mẫu ngẫu nhiên trong hộp giới hạn đó và định nghĩa sự kiện quan tâm A (sự kiện mà

15
một mẫu nằm trong vùng diện tích sẽ được xác định). Vì bộ ước tính vùng không biết
đó không chệch, nên các điểm mẫu ngẫu nhiên được phân bố đều trong vùng lấy giới
hạn của diện tích đã cho. Điều này được thực hiện một cách dễ dàng bằng chương
trình máy tính với hai bộ tạo số ngẫu nhiên đều. Kết quả của việc tạo N =500 điểm lấy
mẫu phân bố đều được minh họa ở hình dưới đây. Mã chương trình Matlab dưới đâu
thực hiện cho vấn đề này :
X=rand(1,500) ;
Y=rand(1,500) ;
Plot(x,y,’k+’) ;
Asis square

Hình 1.5. Minh họa các điểm ngẫu nhiên phân bố đều
Bước tiếp theo là định nghĩa sự kiện A. Ta mong muốn ước tính diện tích hình
sao bôi đen được minh họa như hình dưới đây :

16
Hình 1.6. Ước tính Monte Carlo của diện tích

Định nghĩa các đại lương


N h và N s là số điểm mẫu nằm trong hộp bao và trong

vùng hình sao. Vì các điểm mẫu được phân bố đều trong hộp bao, nên tỉ số giữa diện

tích hình sao trên diện tích hộp bao


As / Ah là xấp xỉ bằng tỉ số giữa số điểm mẫu nằm

trong diện tích hình sao và số điểm mẫu nằm trong diện tích hộp bao
Ns / Nh .

Ns
As  Ah
Ta có Nh

Với điều kiện các điểm mẫu được phân bố đều, phép xấp xỉ sẽ chính xác hơn
khi số điểm mẫu được tăng lên.
Để minh họa các mặt của phương pháp luận cho mô phỏng Monte Carlo và ước
tính hiệu năng, ta xét bài toán ước tính xác suất lỗi trong các hệ thống truyền thông số.
Mô hình mô phỏng được cho ở hình sau :

17
Nguồn dữ
Bộ điều chế QPSK Bộ lọc phát
liệu

Tạp âm Gausse
trắng
Trễ
Kênh AWGN

PE So sánh và đếm Lấy mẫu và Bộ cân bằng


Bộ lọc thu
lỗi quyết định tuyến tính

Hình 1.7. Mô hình mô phỏng để xác định BER


Hiệu năng BER được mô phỏng bằng việc đưa chuỗi bit ngẫu nhiên vào bộ điều
chế, qua các khối chức năng của mô hình được cho ở hình trên, sau đó được so sánh và
đếm lỗi để xác định BER. Lưu ý rằng vì mục đích mô phỏng xác định BER không mã
hóa kiểm soát lỗi nên không cần đến nguồn dữ liệu thực tế, bộ giải mã hóa nguồn, bộ
mã hóa kiểm soát lỗi, bộ đan xen (vì ảnh hưởng của những khối này là tạo ra chuỗi
nhị phân ngẫu nhiên). Việc đơn giản hóa này phải được thực hiện trước khi mô phỏng
ước tính hiệu năng (động cơ chủ yếu để đơn giản hóa là giảm thời gian mô phỏng). Vì
vậy, chỉ các thành phần có ảnh hưởng đáng kể lên hiệu năng được chứa trong sơ đồ
khối.
BER được xác định theo phương pháp Monte Carlo, BER không thể là tất định
mà đúng hơn là được ước tính bằng cách cho N ký hiệu qua hệ thống và đếm lỗi. Giả

sử rằng đếm được


N e lỗi trong số N ký hiệu đi qua hệ thống thì BER là:
 N (1.1)
PE  e
N
Là một ước tính của xác suất lỗi.
Ne (1.2)
PE  lim
N  N

18
Tổng quát, ước tính Monte Carlo không bị lệch. Khi các giá trị của N nhỏ dẫn
đến các ước tính lỗi có phương sai lớn (khi phương sai của ước tính lớn thì ước tính
kém chính xác), và khi các giá trị của N là lớn cho ta các ước tính lỗi có phương sai

P P
nhỏ. Ước tính E hội tụ về E (giá trị đúng của xác suất) khi N   , vì vậy thực tế
thường dùng N lớn nhất có thể (cần sự dung hòa các tham số đối nghịch: thời gian mô
phỏng và tính chính xác của kết quả mô phỏng).
*Mô phỏng Monte-Carlo: Thực hiện tính toán dựa vào việc lấy mẫu ngẫu nhiên
lặp lại để đánh giả tỉ số lỗi ký hiệu (symbol error rate) mà hệ thống có thể thực hiện
được.
Ý tưởng:
- Mô phỏng hệ thống lặp lại
- Mỗi lần chạy mô phỏng, đếm số lượng ký hiệu được phát đi và số lượng
lỗi ký hiệu.
- Ước tính tốc độ lỗi ký hiệu như là tỉ lệ giữa tổng số lỗi quan sát được
trên tổng số ký hiệu phát đi.
Khoảng tin cậy: Mong muốn |P
^ e−Pe| là nhỏ, trong đó Pe là ước tính lỗi bằng

pˆ  p  sc
mô phỏng, ^P e là tốc độ lỗi thực.Cụ thể,đảm bảo xácsuất pcđể e e là cao (ví dụ:

pc = 95%).

Trong đó scđược gọi là khoảng tin cậy,nó phụ thuộc vào độ tin cậy pc,xác suất
lỗi Pe và số lượng ký hiệu phát. Nó được chứng minh rằng:
pe (1  pe )
sc  zc (1.3)
N
Trong đó zc phụ thuộc vào độ tin cậy pc .

Cụ thể,Q(zc)=(1- pc )/2.Vídụ:pc=95%,zc=1,96.

Đối với mô phỏng Monte-Carlo, tiêu chuẩn dừng có thể được xác định từ: Độ
tin cậy pcmong muốn(hayzc), khoảng tin cậy sccó thể chấp nhận được, tốc độ lỗiPe

Giải phương trình tìm N ta có được:

19
2
z 
N  pe .  1  pe   c  (1.4)
 sc 
Mô phỏng Monte-Carlo dừng sau khi thực hiện mô phỏng truyền dẫn được N
ký hiệu.
-3 -4
Ví dụ:Vớipc=95%,Pe=10 ,vàsc=10 N400000.

Khi mô phỏng các hệ thống truyền thông, tốc độ lỗi thường rất nhỏ  đáng
mong muốn để xác định khoảng tin cậy là một phần nhỏ của tốc độ lỗi.
Khoảng tin cậy có dạng sc=c.Pe(ví dụ:c=0,1cho 10%sai sốước tính có thể

chấp nhận được).


Biến đổi biểu thức tìm N và sắp xếp lại số hạng ta có được:
Zc 2 Zc 2
Pe . N =( 1−Pe )
( )( )
αc

αc
(1.5)
Ở đây Pe.N là số lượng lỗi được kỳ vọng. Nghĩa là:mô phỏng sẽ dừng khi số

lượng lỗi đạt đến (zc/c)2.Theo kinh nghiệm: Chạy mô phỏng cho đến khi khoảng 400

lỗi xảy ra (pc= 95% vàc= 10%).

1.5. Công cụ mô phỏng


1.5.1. Giới thiệu về MATLAB
MATLAB là sản phẩm phần mềm của công ty MathWorks Inc viết cho máy
tính PC nhằm hỗ trợ cho các tính toán khoa học và kĩ thuật với các phần tử cơ bản là
các ma trận trên máy tính cá nhân, do công ty “The MATHWORKS” lập trình.
Thuật ngữ MATLAB có được là do hai từ MATRIX và LABORATORY ghép
lại. MATLAB là ngôn ngữ lập trình bậc cao, ngôn ngữ kỹ thuật, ngôn ngữ chuyên gia
có thư viện toán cực mạnh, giao diện đồ họa phong phú, khả năng thích ứng các ngôn
ngữ khác, cho phép tạo giao diện người dùng tiện lợi. Đặc biệt cho phép ứng dụng kết
nối điều khiển thiết bị phần cứng, thực tế rất nhiều hãng sản xuất thiết bị viễn thông
như: hãng sản xuất thiết bị đo Agilent Technology (được tách ra từ HP), hãng
Motorola…ở đó việc thiết kế, sản xuất thiết bị hệ thống trên cơ sở phân lớp công đoạn
sản xuất chẳng hạn: Xét hệ thống theo quan điểm chức năng, sau khi công thức hóa

20
các khối chức năng, xây dựng quan hệ hàm biến cho các khối chức năng, đánh giá khối
chức năng theo các tiêu chí đặc thù (các thông số tối ưu hóa, các tiêu chuẩn đánh giá),
mô phỏng khối chức năng trong nhiều miền tín hiệu (miền tần số, miền thời gian, miền
Z…) thông qua các biểu đồ, đồ thị…Tiếp theo là công đoạn thiết kế các mạch điện cụ
thể cho các khối chức năng, trong công đoạn này tính liên kết của Matlab được thể
hiện cực mạnh ở đây. Matlab cho phép liên kết với các chương trình thiết kế mạch điện
chuyên dụng như CiruitMaker…Cuối cùng sản xuất thiết bị viễn thông trong dây
chuyền sản xuất, các thiết bị được đánh giá thông qua tín hiệu phản hồi trở về
MATLAB cứ như thế cho đến khi đạt được chất lượng mong muốn. MATLAB có ưu
việt nổi trội là khả năng mô phỏng hệ thống động, cho phép thể hiện tín hiệu và hệ
thống trong nhiều miền xét (miền thời gian, miền tần số, miền Z…). Hơn nữa, tính cô
đọng (nhiều thuật toán phức tạp được trình bày bằng rất ít dòng lệnh của mã), sự hỗ trợ
của đồ họa, tính modul…
1.5.2. Simulink
Simulink là một phần mềm mở rộng của MATLAB (một toolbox của
MATLAB) dùng để mô hình hóa, mô phỏng và phân tích một hệ thống động. Thông
thường dùng để thiết kế hệ thống điều khiển, thiết kế DSP (Digital Signal Processing -
xử lý tín hiệu số), hệ thống thông tin và các ứng dụng mô phỏng khác.
Simulink là thuật ngữ mô phỏng dễ nhớ được ghép bởi hai từ Simulation và
Link. Simulink cho phép mô tả hệ thống tuyến tính, hệ phi tuyến, các mô hình trong
miền thời gian liên tục, hay gián đoạn hoặc một hệ gồm cả liên tục và gián đoạn.
Để mô hình hóa, Simulink cung cấp một giao diện đồ họa để sử dụng và xây
dựng mô hình sử dụng thao tác “nhấn và kéo thả”. Với giao diện đồ họa ta có thể xây
dựng mô hình và khảo sát mô hình một cách trực quan hơn. Đây là sự khác xa phần
mềm trước đó mà người sử dụng phải đưa vào các phương trình vi phân và các phương
trình sai phân bằng một ngôn ngữ lập trình.
Điểm nhấn mạnh quan trọng trong việc mô phỏng một quá trình là việc thành
lập được mô hình. Để sử dụng tốt chương trình này, người sử dụng phải có kiến thức
cơ bản về điều khiển, xây dựng mô hình toán học theo quan điểm của lý thuyết điều
khiển và từ đó thành lập nên mô hình của bài toán.

21
 Khởi tạo SIMULINK
Để vào Simulink trong Matlab, có hai cách như sau:
- Cách 1: Từ cửa sổ lệnh của Matlab đánh dòng lệnh: >>simulink

Hình 1.8. Cách vào toolbox simulink trong Matlab


- Cách 2: Trên khung giao diện chính của Matlab, ta click vào biểu tượng như
hình dưới (Simulink icon).

Hình 1.9. Simulink icon trên giao diện Matlab


Khi khởi động Simulink xong ta được màn hình cửa sổ Simulink. Cửa sổ này
hoạt động liên kết với cửa sổ lệnh MATLAB.

22
Hình 1.10. Cửa sổ thư viện simulink
Khối thư viện simulink bao gồm các thư viện con Sources (các khối nguồn tín
hiệu). Sinks (các khối xuất tín hiệu), Math (các khối ghép nối toán học) và Signals &
Systems (các khối tín hiệu và hệ con), các nhóm Continous (các khối liên tục),
Nonlinear (các khối phi tuyến) và Functions &Tables, các khối thuộc nhóm Discrete
(các khối gián đoạn).
Thư viện simulink bao gồm các khối chuẩn trên, người sử dụng cũng có thể
thay đổi hay tạo ra các khối cho riêng mình. Simulink cũng giống như các phần mềm
mô phỏng thiết kế mạch điện tử như MicroSim Eval, EWB, Circuit Maker…
 Xây dựng mô hình mô phỏng
Tạo một mô hình mới: Có hai cách tạo một mô hình mới như sau:
- Cách 1: Click vào icon New model hoặc gõ Ctrl-N

Hình 1.11. Cách tạo mô hình

23
- Cách 2: Click vào menu file  New  Model
Cửa sổ xây dựng mô hình sẽ xuất hiện:

Hình 1.12. Cửa sổ xây dựng mô hình


Tạo các khối: Từ thư viện Simulink chọn khối cần dùng, nhấp chuột vào và kéo
ra cửa sổ mô hình.

Hình 1.13. Cách tạo các khối

Lưu trữ mô hình bằng cách click vào menu file/ Save hoặc file/Save As trong
cửa sổ mô phỏng) hoặc nhấp vào icon Save. Một file Simulink sẽ có đuôi .mdl.

24
Hình 1.14. Lưu trữ mô hình
Di chuyển các khối: Đơn giản bằng cách nhấp chuột vào khối đó và kéo thả.

Hình 1.15. Di chuyển các khối


Nối tín hiệu: Đưa chuột tới đầu ra của khối (dấu “>”), khi đó chuột sẽ có dạng
“+”. Kéo rê chuột tới đầu vào của một khối khác và thả ra để kết nối tín hiệu.

Hình 1.16. Nối tín hiệu

25
Mô phỏng mô hình: Dùng lệnh Start (Menu Simulation Start) hoặc nhấp
chuột vào icon Start.

Hình 1.17. Mô phỏng mô hình


Muốn chỉnh thông số của một khối chúng ta kích đúp chuột vào khối cần chỉnh.
Trước khi mô phỏng mô hình simulink, chúng ta cần đặt các thông số mô phỏng
bằng cách chọn menu Simulation  Configuration Parameters.

Hình 1.18. Đặt thông số mô phỏng


Ở cửa sổ Configuration Parameters, chúng ta có thể đặt một số thông số như
Start time, Stop time (second - giây), và phương pháp giải Solver, Solver options, …
sau đó nhấn nút OK.

26
Hình 1.19. Đặt thông số mô phỏng

27
CHƯƠNG II

MÔ PHỎNG MÃ HÓA NGUỒN

2.1. Giới thiệu


Hệ thống thông tin được sử dụng để truyền tin tức từ nguồn tin đến nơi nhận tin.
Nguồn tin sinh ra dưới nhiều dạng khác nhau, ví dụ âm thanh trong hệ thống radio, tín
hiệu video trong hệ thống vô tuyến truyền hình…
Nguồn tin này có thể được đưa trực tiếp vào kênh để truyền đi, nhưng trong
thực tế, nguồn tin này thường được biến đổi rồi đưa vào kênh truyền. Ví dụ như tin là
văn bản tiếng Anh, nguồn tin có khoảng 40 ký tự (symbol) khác nhau, gồm các mẫu ký
tự alphabet, con số, dấu chấm câu,….Về nguyên tắc ta có thể dùng 40 dạng sóng điện
áp khác nhau để hiển thị 40 ký tự này. Tuy nhiên thực tế thì phương pháp này không
phù hợp, quá khó thực hiện hay thậm chí không thể được, vì:
- Kênh truyền không phù hợp về mặt vật lý để có thể mang nhiều ký tự khác
nhau như vậy.
- Dải tần đòi hỏi sẽ rất rộng.
- Việc lưu trữ hay xử lý tín hiệu trước khi truyền rất khó, trong khi nếu
chuyển sang nhị phân thì mọi việc sẽ dễ dàng hơn nhiều.
Vậy ta thấy cần phải thay đổi dạng của tin khác đi so với dạng ban đầu do
nguồn cung cấp. Công việc thay đổi dạng này được gọi là mã hóa (encoding).
Cơ sở lý thuyết của mã hóa là lý thuyết thông tin (information theory). Lý
thuyết tin liên quan đến việc biểu diễn tin bằng các ký tự, đưa ra giới hạn lý thuyết cho
việc thực hiện hệ thống thông tin, cho phép đánh giá hiệu suất của hệ thống thực tế.
Nền tảng của lý thuyết tin do Hartley và Nyquist đưa ra từ những năm 1920 và được
Shannon hoàn chỉnh và tổng kết vào năm 1948. Về các mục đích của mã hóa, ta có thể
tóm tắt như sau:
- Định dạng: Để chuyển tin từ dạng gốc tự nhiên sang dạng chuẩn. Ví dụ sang
dạng số PCM.
- Mã hóa đường (line coding): Làm cho bản tin hay dạng sóng của ký tự truyền
đi phù hợp với các các đặc điểm của kênh truyền.

28
- Mã hóa nguồn (source encoding): Nhằm giảm bớt số ký tự trung bình yêu
cầu để truyền bản tin. Điển hình của loại mã này là mã Huffman.
- Mật mã hóa (encryption): Để mã hóa bản tin bằng một khóa mật mã nhằm
tránh sự thâm nhập trái phép, đảm bảo độ an toàn cho bản tin.
- Mã hóa kênh truyền (channel encoding): Đảm bảo cho thông tin chống lại
các tác động kênh truyền, có khả năng phát hiện, sửa lỗi.

2.2. Một số khái niệm cơ bản về mã hóa


 Đo tin tức
Để đánh giá định lượng cho tin tức, người ta đưa ra khái niệm lượng tin
(information content). Lượng tin liên quan đến giá trị của tin, hay nói cách khác là khả
năng dự đoán được (predictability) của tin: một tin có khả năng đoán trước càng nhiều
thì càng chứa ít tin. Ví dụ, bản tin về tỷ số trận bóng Manchester United - Bradford
Academicals là 7-0 chứa rất ít tin nhưng kết quả ngược lại thì gây chấn động, và do đó
chứa rất nhiều tin. Vậy xác suất càng cao thì bản tin càng chứa ít tin và ngược lại.
P(bản tin) = 1 không mang tin.
P(bản tin) =0 mang một lượng tin vô hạn.
Từ nhận xét trên, ta thấy tin càng có ý nghĩa khi nó càng hiếm gặp, nên độ lớn
của nó phải tỷ lệ nghịch với xác suất xuất hiện của tin.
Giả sử có một nguồn tin x rời rạc sinh ra các tin i với xác suất là p(i), lượng tin
của tin i phải là một hàm có đặc điểm sau:
- Tỷ lệ nghịch với xác suất xuất hiện p(i), hay đó là hàm f(1/p(i).
- Hàm này phải là 0 khi p(i)=1.
- Nếu hai tin độc lập thống kê là i và j đồng thời xuất hiện, ta có tin là (i,j),
lượng tin chung của chúng phải bằng tổng lượng tin của từng tin, nghĩa là:
f(1/p(i,j))=f(1/p(i))+f(1/p(j)) (2.1)
Theo luật nhân xác suất ta có:
P(i,j)=p(i).p(j) (2.2)
Do đó:
F(1/(p(i).p(j)))=f(1/p(i))+f(1/p(j)) (2.3)

29
Ta thấy hàm loga thỏa mãn tất cả các yêu cầu này. Vậy hàm log(1/p(i)) được
chọn để đánh giá định lượng cho tin. Lượng tin của một tin i được ký hiệu là I(i). Định
nghĩa lượng tin của một tin i là:
1 (2.4)
I (i )  log
  log p(i )
p (i )
Đơn vị đo của lượng tin tùy thuộc vào cơ số của loga. Đơn vị của lượng tin là
bit, nat hay hartley khi cơ số của loga lần lượt là 1, e hay 10. Trong đó cơ số 2 thường
được chọn hơn cả. Khi chọn cơ số 2 thì lượng tin của i là:
1 (2.5)
I (i )  log 2   log 2 p(i)
p(i ) (bit)
Vậy có thể định nghĩa bit như sau: bit là lượng tin mang trong một ký tự có xác
suất xuất hiện là p=0.5.
 Entropy của nguồn tin
Entropy H được định nghĩa là giá trị trung bình thống kê của lượng tin. Đó là
lượng tin trung bình chứa trong một ký tự bất kỳ của nguồn tin.
Xét một nguồn tin sinh ra M ký tự độc lập thống kê. Nguồn tin này được gọi là
nguồn rời rạc không nhớ. Entropy của nguồn này là:
M
1 (2.6)
H   p(m) log 2
m 1 p ( m) (bit/ký tự)
M
(2.7)
H   p(m) log 2 p(m)
m 1 (bit/ký tự)
Trong đó p(m) là xác suất chọn ký tự thứ m.

Lý thuyết đã chứng minh giá trị lớn nhất của entropy là


H max  log 2 M , đạt được

khi các ký tự độc lập và đồng xác suất, nghĩa là: p(m)=1/M, m  1, m
Đối với nguồn tin ASCII có M=128 thì entropy cực đại là:
H max   log 2 (1/128)  7 (bit/ký tự)

Thực tế thì điều này khó xảy ra nên entropy của nguồn ASCII là:
128
1 (2.8)
H   p (m) log 2 7
m 1 p ( m)
(bit/ký tự)
Đối với nguồn tin nhị phân có M=2, nếu p(1)=1 và p(0)=1-p thì entropy là:

30
2
1 1 1 (2.9)
H   p(m) log 2  p log 2  (1  p ) log 2
m 1 p ( m) p 1  p (bit/ký tự)
 Entropy có điều kiện và độ dư
Đối với các nguồn tin trong đó việc sinh ra ký tự sau không độc lập thống kê
với các ký tự trước đó (nguồn có nhớ) thì công thức entropy trên không đủ tổng quát
để tính được entropy chính xác. Trong trường hợp này phải xét đến xác suất có điều
kiện. Ví dụ với nguồn có nhớ một ký tự, nghĩa là ký tự sau được chọn phụ thuộc vào
một ký tự trước đó, entropy được tính như sau:
1
H   p ( j , i ) log 2 (2.10)
i j p( j | i ) (bit/ký tự)
Ở đây p(j,i) là xác suất nguồn chọn i và j, p(j|i) là xác suất nguồn chọn j nếu
trước đó đã chọn i. Theo định lý Bayes, ta có:
P(j,i)=p(i)p(j|i) (2.11)
Vậy:
1
H   p (i ) p ( j | i ) log 2 (2.12)
i j p( j | i)
(bit/ký tự)
Sự khác nhau giữa entropy thực sự của nguồn và entropy cực đại gọi là độ dư
của nguồn. Ký hiệu là r:
1
r  H max  H  log 2 M   p(i) p ( j | i ) log 2 (2.13)
i j p( j | i ) (bit/ký tự)
Độ dư tương đối của nguồn được định nghĩa như sau:
H max  H H
r* 
 1 (2.14)
H max H max
 Sự mất mát tin do nhiễu

Gọi ký tự nguồn thứ i được truyền đi là


iTX , xác suất xuất hiện iTX là p (iTX ) ,

lượng tin của


iTX là ITX (iTX ) .

1
ITX (iTX )  log 2 (2.15)
p(iTX ) (bit)
Đối với kênh không nhiễu (noiseless channel), giả sử điện áp
VRX tương ứng

với ký tự phát là
iTX , khi bên nhận tin tách được VRX thì có thể biết chắc chắn ký tự

31
phát ở nguồn là
iTX . Lượng tin trong trường hợp này được bảo toàn khi truyền qua

kênh:
1
I RX (VRX : iTX )  ITX (iTX )  log (2.16)
(bit) p (iTX )
Tuy nhiên, đối với kênh có nhiễu (noise channel) khi bên nhận tin tách được

điện áp
VRX thì không thể kết luận chắc chắn về ký tự thực phát ở nguồn. Sự không

chắc chắn này liên quan đến xác suất


p(iTX | VRX ) , đây là xác suất phát ký tự thứ i và

tách được điện áp


VRX ở bên nhận (đối với kênh không nhiễu, xác suất này là 1). Đối

với kênh có nhiễu, tin nhận dược ít hơn tin truyền đi một lượng liên quan đến độ không
chắc chắn của quyết định. Thực tế, lượng tin nhận được là:
p (iTX | VRX )
I RX (VRX : iTX )  log (2.17)
p (iTX ) (bit)
Giả sử bên nhận tin thực hiện quyết định cứng, điện áp
VRX chuyển đổi trực tiếp

thành ký tự nhận là
iRX . Trong trường hợp này, lượng tin nhận được là:

p(iTX | iRX )
I RX (iRX )  log (2.18)
(bit)p (iTX )
Sự suy giảm lượng tin trong mỗi ký tự do nhiễu có nghĩa là entropy nhận nhỏ
hơn entropy phát. Entropy nhận chính là entropy hiệu quả (effective entropy) của các

H eff
ký tự nhận. Ký hiệu entropy hiệu quả là và được tính như sau:

H eff   p(iRX ) I RX (iRX ) (2.19)


i (bit/ký tự)
H eff
Sự khác nhau giữa và entropy phát gọi là độnghi ngờ (equivocation) E:
H eff  H  E (2.20)
(bit/ký tự)
Độ nghi ngờ được tính từ việc ta không chắc là ký tự truyền đi có giống với ký
nhận hay không. Sự không chắc chắn này là do kênh truyền có nhiễu nên có thể xem
nhiễu chính là tin âm cộng vào dòng ký tự phát.Độ nghi ngờ được định nghĩa là:

32
1 1
E   p (iTX , jTX ) log 2   p ( jRX ) p (iTX | jRX ) log 2 (2.21)
i j p (iTX | jRX ) j i p (iTX | jRX )

Ở đây
p( jRX ) là xác suất nhận ký tự thứ j, p(iTX | jRX ) liên quan đến xác suất lỗi

ký tự.
 Tốc độ lập tin của nguồn tin
Ngoài thông số cơ bản của nguồn là entropy tuỳ thuộc vào cấu trúc thống
kê của nguồn, còn có một thông số khác tuỳ thuộc vào tính chất vật lý của
nguồn. Đó là tốc độ thiết lập tin (information rate)của nguồn, ký hiệu là R. Thông số
này chỉ ra sự hình thành tin nhanh hay chậm để đưa vào kênh. Ví dụ con người,
do kết cấu của cơ quan phát âm nên mỗi giây chỉ phát âm được từ 5 đến 7 tiếng,
trong khi một thiết bị đầu cuối số liệu có thể đạt đến hàng ngàn ký hiệu trong
một giây.
Tốc độ thiết lập tin của nguồn có đơn vị là lượng tin trên đơn vị thời gian
(trường hợp dùng loga cơ số 2 thì đơn vị là bit/s) và được tính là tích của
entropy với số ký hiệu lập được trong một đơn vị thời gian:
R  n0 H (bit/s) (2.22)

Trong đó
n0 là số ký hiệu lập được trong một đơn vị thời gian, tuỳ thuộc

vào tính chất vật lý của nguồn.


Ta thấy để nâng cao tốc độ thiết lập tin của nguồn cần thiết phải nâng cao
entropy. Tốc độ lập tin của nguồn sẽ cực đại khi entropy của nguồn cực đại.
 Dung lượng kênh
Định nghĩa dung lượng của kênh (channel capacity) là lượng tin tối đa kênh cho
đi qua trong một đơn vị thời gian mà không gây lỗi. Ký hiệu thông lượng kênh là C và
đơn vị đo giống như đơn vị của tốc độ lập tin (bit/s).
Thông thường tốc độ lập tin bé hơn nhiều so với thông lượng kênh:
R<<C
- Đối với kênh không nhiễu: Khi kênh không nhiễu, toàn bộ tin tức đều được
truyền qua kênh mà không bị lỗi. Lượng tin tối đa mà kênh cho qua cũng bằng với
lượng tin tối đa mà nguồn có thể thiết lập. Vậy thông lượng kênh là:

33
C  Rmax  n0 H max
(bit/s) (2.23)
Theo Shannon, nếu R<C thì có thể mã hóa để làm cho tốc độ lập tin của nguồn
tiếp cận với thông lượng kênh:
C  R   ,  là vô cùng bé
- Đối với kênh có nhiễu: Lượng tin truyền đi bị hao hụt một phần do nhiễu nên
thông lượng kênh bị giảm đi. Lượng giảm đi đó chính là lượng tin bị nhiễu phá hủy

trong một đơn vị thời gian, được tính bằng


n0 E . Vậy thông lượng kênh có nhiễu là:

R  n0 H max  n0 E  n0 ( H max  E ) (2.24)


Theo Shannon, nếu R<C thì có thể mã hóa để tin được truyền đi trong kênh với
xác suất lỗi bé tùy ý và nếu R>C thì không thể truyền tin đi mà không bị lỗi. Phương
pháp mã hóa để giảm xác suất lỗi được gọi là mã hóa điều khiển lỗi.
Để so sánh các loại hệ thống thông tin khác nhau, ta có thể xét kênh truyền cho
thuận tiện. Xét kênh có nhiễu gausse trắng, tỷ số tín hiệu trên nhiễu trung bình là S/N,
băng thông của kênh là B. Theo định lý Harley-Shannon, thông lượng của kênh này là:
C  B log 2 (1  S / N ) (bit/s) (2.25)

2.3. Mã hóa
x1, x2 ,....., xi ,....xN
Cho nguồn tin rời rạc X sinh ra N tin hay ký tự độc lập ( ). Xét

m1 , m2 ,....mq
một tập M có q phần tử hữu hạn ( ).

Mã hóa (encoding) nguồn tin X bằng tập M có nghĩa là biến đổi mỗi tin
xi của

nguồn tin thành một tập các phần tử thuộc M thỏa mã một yêu cầu nào đó của hệ thống
thông tin:
xi 
 mi1mi 2 ...mil
Phép biến đổi ngược lại:
mi1mi 2 ...mil 
 xi
Được gọi là giải mã (decoding)
Thông thường, số tin của nguồn tin rất lớn nên số ký hiệu mã không thể bằng
hoặc nhiều hơn số tin.

34
 Các tham số cơ bản của mã hóa

Tập M được gọi là mã hiệu (code), các phần tử


mk gọi là ký hiệu mã (symbol),

số ký hiệu mã khác nhau trong mã gọi là cơ số của mã. Mã nhị phân là mã cơ số 2,


trong đó mã chỉ có 2 ký hiệu mã là 0 và 1.
Dãy liên tục các ký hiệu mã dùng để mã hóa một tin của nguồn được gọi là từ

mã (codeword). Ở đây từ mã tương ứng với tin


xi là mi1mi 2 ...mil .

Số ký hiệu mã có trong một từ mã được gọi là độ dài của từ mã (codeword


length), ký hiệu là l. Ví dụ từ mã 00100 có độ dài là 5.
Tham số tiếp theo là trọng lượng từ mã (codeword weigh), đó là tổng số các ký
hiệu khác 0 có mặt trong từ mã, ký hiệu là w. Ví dụ từ mã 110001 có trọng lượng là 3.
Khoảng cách mã (distance), ký hiệu là d. Đó là số ký hiệu cùng vị trí khác nhau
giữa hai từ mã dài bằng nhau. Ví dụ khoảng cách giữa hai từ mã 110001 và 101000 là
3.

Gọi
C1 và C2 là hai từ mã dài bằng nhau. Khoảng cách mã giữa hai từ mã này

là:
d (C1 , C2 )  w(C1  C2 ) (2.26)
 Phân loại mã: Ta có thể phân loại mã theo nhiều cách khác nhau:
- Dựa vào độ dài của từ mã: mã có độ dài không đổi (mã đều) và mã có độ dài
thay đổi (mã không đều).
Tổng độ dài trung bình của từ mã:
M
l   p (m)lm (2.27)
m 1

-Dựa vào trọng lượng của từ mã có mã có trọng lượng không đổi và mã có


trọng lượng thay đổi.
-Dựa vào khoảng cách mã giữa hai từ mã kề nhau, có mã có khoảng cách không
đổi và mã có khoảng cách thay đổi.
-Dựa vào cơ số của mã, có mã nhị phân (cơ số 2), mã bát phân (mã cơ số 8), mã
hexa (mã cơ số 16)…Trong đó mã nhị phân là mã thông dụng nhất.

35
-Dựa vào độ tin cậy, ta phân ra mã có khả năng phát hiện và sửa lỗi và mã
không có khả năng phát hiện và sửa lỗi.
-Dựa vào hiệu suất thông tin, ta phân ra mã tối ưu và mã chưa tối ưu.
 Các phương pháp biểu diễn mã
Phương pháp liệt kê: Đây là cách trình bầy đơn giản nhất, phương pháp này
thực hiện liệt kê trong một bảng những tin của nguồn và chỉ rõ các từ mã tương ứng.
Ví dụ: Nguồn tin A={a1,a2,a3,a4,a5}, các lớp tin của nó được mã hóa như bảng
sau:
Tin a1 a2 a3 a4 a5
Từ mã 00 01 100 1010 1001
Bảng 2.1. Bảng mã các tin trong nguồn tin A
Cách biểu diễn này tuy rõ ràng nhưng không thích hợp cho trường hợp bộ mã
lớn và cồng kềnh.
Phương pháp mặt phẳng tọa độ của mã: Phương pháp này chỉ thích hợp cho
các loại mã có trọng số. Dựa trên hai thông số là độ dài n và trọng số b của từ mã để
lập nên một mặt phẳng tọa độ. Mỗi từ mã được biểu diễn bằng một điểm trên mặt
phẳng tọa độ (n,b).
Nếu từ mã v = (v0,v1,……vn) được mã hóa bởi một bộ mã M có cơ số là m: v i∈
M với i = 1, 2,….n. Trong đó quy ước vị trí đầu tiên bên trái ứng với kí hiệu v 1 là vi trí
có trọng số nhỏ nhất: m0, vị trí thứ i tính từ trái sang phải ứng với kí hiệu v i có trọng số
là mi-1, vị trí cuối cùng (thứ n) tương ứng với v n có trọng số là mn-1. Khi đó, trọng số b
của từ mã là tổng trọng số các ký hiệu trong từ mã được tính theo công thức sau:
n

v m
i 1
i
i 1
(2.28)
Trong đó:

- vi: giá trị của kí hiệu thứ i trong từ mã, vi∈ M.


- i: số thứ tự của ký hiệu trong từ mã, i=1, 2……n.
- m: cơ số của mã.

Ví dụ:
Trọng số của từ mã 1011 bằng: b=1x20+0x21+1x22+1x23=13.
Như vậy mỗi từ mã được biểu diễn bằng một điểm duy nhất có tọa độ là (n,b).

36
Định lý:
Không có hai từ mã của cùng bộ mã nào đồng thời thỏa mãn: n i= nj, bi=bj (i≠j),
nghĩa là không thể có hai từ mã có thể cùng biểu diễn bởi cùng một điểm trong mặt
phẳng tọa độ (n,b).
Ví dụ: Bộ mã 00, 01, 100, 1010, 1011 tương tự ví dụ trên sẽ được biểu diễn như
sau:

Hình 2.1. Biểu diễn một bộ mã trên mặt phẳng tọa độ


Phương pháp cây: Cây mã gồm có nút lá, nút gốc và các nút trung gian. Gốc
của cây gọi là nút gốc (mức 0). Từ một nút không phải là nút lá có thể phát đi tối đa m
nhánh (tương ứng với cơ số m) hoặc ít hơn, mỗi nhánh mang một giá trị và kết thúc ở
nút n+1. Nút lá biểu diễn cho một từ mã mà thứ tự các giá trị ký hiệu đi từ nút gốc đến
nút lá qua các nút trung gian.
Ví dụ:
Cây mã cho bộ mã 00,01,10,1101,1010,11001 được biểu diễn như sau:

37
Hình 2.2. Cây mã nhị phân cho bộ mã 00, 01, 10, 1101, 11001
Phương pháp đồ hình kết cấu: Gồm những nút và những nhánh có hướng. Đây
là một cách biểu diễn cây mã rút gọn. Mỗi từ mã được biểu diễn bằng một vòng kín
xuất phát từ nút gốc theo các nhánh có hướng (chiều dài mũi tên) qua các nút trung
gian và trở về kết thúc tại nút gốc. Thứ tự giá trị ký hiệu lấy theo thứ tự giá trị các
nhánh trên đường đi.

Gốc 1
0 0v1

2
1

0
0

3
0v1

Hình 2.3. Đồ hình kết cấu của bộ mã 00, 01, 100, 1010, 1011
Trị các nhánh được ghi ở đầu xuất phát của nhánh. Dấu v biểu diễn toán tử hoặc
(OR), các nút được đánh số theo thứ tự xa dần nút gốc (số ghi trong vòng tròn của
nút). Đồ hình kết cấu không những chỉ dùng mô tả mã mà còn được dùng để xem xét
cách vận hành thiết bị mã hóa và giải mã.
Phương pháp hàm cấu trúc mã: Phương pháp này mô tả rõ ràng một đặc tính
quan trọng của mã là sự phân bố các từ mã có độ dài khác nhau, ký hiệu là G(n i).
Ví dụ:
Bộ mã 00,01,100,1010,1011 có G(n) dưới dạng sau:

38
2,∧ni=0

{
G(ni)¿ 1,∧ni=3
2 , ni=4

Từ hàm cấu trúc có thể phân biệt được mã đều hoặc không đều.
Phương pháp dùng ma trận sinh: Phương pháp này là mô hình toán để biểu
diễn mã tuyến tính. Đây là công cụ toán học được dùng để tạo mã tuyến tính.
Phương pháp dùng đa thức sinh: Phương pháp này dùng làm mô hình toán để
biểu diễn mã đa thức (mã vòng). Nhờ công cụ toán này có thể dễ dàng tạo mã và giải
mã đối với mã vòng.

2.4. Mã hóa nguồn


Hệ thống thông tin được sử dụng để truyền tin tức từ nguồn tin đến nơi nhận tin.
Nguồn tin có rất nhiều dạng khác nhau, nhưng có thể phân thành hai loại chính là
nguồn liên tục (continous source) như nguồn âm thanh, nguồn video… và nguồn rời
rạc (discrete source) như nguồn dữ liệu từ máy tính.
Thông thường, quy luật phân bố xác suất sinh ra các ký tự là không đều nên độ
dư của nguồn lớn, entropy của nguồn bé, tốc độ lập tin của nguồn còn xa mới đạt đến
thông lượng kênh. Lúc đó nhiệm vụ của mã hóa nguồn rời rạc là làm cho cấu trúc
thống kê của nguồn trở nên hợp lý bằng cách tăng entropy của các ký tự dùng để mã
hóa nguồn.
Nguyên tắc của mã hóa nguồn rời rạc là mã hóa các ký tự có xác suất sinh ra
lớn bằng các từ mã ngắn và mã hóa các ký tự có xác suất sinh ra bé bằng các từ mã dài.
Loại mã này gọi là mã hóa thống kê. Việc truyền tin sẽ trở nên kinh tế hơn nếu mã
thống kê có độ dài trung bình của từ mã là nhỏ nhất.
 Giới hạn của độ dài từ mã trung bình

Giả sử nguồn tin X sinh ra các ký tự


xi độc lập. Mã hóa nguồn tin X bằng một

bộ mã nhị phân M, các ký hiệu mã 0 và 1 có xác suất bằng nhau p(0)=p(1)=0.5.


Lượng tin riêng của một ký hiệu 0 hay 1 bằng với lượng tin trung bình và đạt
giá trị cực đại:

I(0)=I(1)=
log 2 2 =1 (bit/ký hiệu) (2.29)

39
Mã hóa ký tự
xi bằng một từ mã dài li . Như vậy lượng tin chứa trong từ mã này

l
sẽ là i (bit). Lượng tin trung bình chứa trong một từ mã sẽ là độ dài trung bình của từ
mã, là L (bit).
Để cho phép mã hóa đạt hiệu quả cao, toàn bộ lượng tin riêng trong mỗi ký tự
nguồn phải được chuyển hết sang cho từ mã tương ứng, hay lượng tin trung bình của
từ mã phải lớn hơn hoặc bằng lượng tin trung bình của ký tự nguồn. Lượng tin trung
bình của một ký tự nguồn chính là entropy của nguồn H. Vậy:
LH (2.30)
Đây là giới hạn dưới của độ dài trung bình của từ mã. Dấu bằng chỉ xảy ra khi
độ dài của một từ mã bất kỳ bằng với lượng tin riêng của ký tự mà nó mã hóa:
li   log p( xi ) (2.31)
l
Vì i là số nguyên nên
 log p( xi ) phải là số nguyên. Khi đó dộ dài trung bình

của từ mã sẽ đạt tối thiểu


L  Lmin . Ta có bộ mã thống kê tối ưu. Thường thì

 log p( xi ) không phải là số nguyên nên L  H chỉ là một điều kiện giới hạn.

Ta có thể thấy: để độ dài từ mã trung bình nhỏ nhất khi


 log p( xi ) không phải

là số nguyên thì L phải thỏa mãn bất đẳng thức sau:


H  L  H 1 (2.32)
Vậy giới hạn trên của độ dài từ mã trung bình là H+1. Một bộ mã có độ dài từ
mã trung bình thỏa điều kiện này được gọi là mã thống kê tối ưu.
 Hiệu suất mã
Định nghĩa hiệu suất mã là tỷ số giữa entropy của nguồn tin có các ký tự độc
lập và entropy cực đại của nguồn đó :
M
1
H  p(m) log 2
p ( m) (2.33)
 x100%  m 1
x100%
H max log 2 M
Nếu các ký tự nguồn được mã hóa thành từ mã nhị phân thì có một cách khác
để tính hiệu suất mã:

40
H H
 x100%  M
x100%
L (2.34)
 p ( m )l m
m 1 (bit/từ mã nhị phân)
Ở đây
lm là độ dài của mỗi từ mã nhị phân và L là độ dài từ mã trung bình.

 Giải mã trong trường hợp từ mã có độ dài thay đổi


Nói chung là chúng ta đi tìm một cách mã hóa hữu hiệu có thể biểu diễn các tin
giống nhau mà trung bình dùng ít số nhị phân hơn. Kết quả là độ dài của từ mã biểu
diễn các ký tự khác nhau sẽ khác nhau. Vấn đề đặt ra là làm thế nào để bên giải mã
nhận ra được điểm bắt đầu và kết thúc của các từ mã dài khác nhau như vậy. Sau đây
là các đặc điểm cần phải có để giải mã với các từ mã dài khác nhau :
- Tính duy nhất (giải mã duy nhất): Điều này là cần thiết để cho các bản tin thu
chỉ có một nghĩa duy nhất. Xét một nguồn tin gồm 4 ký tự alphabet, các ký tự
được mã hóa bằng các từ mã nhị phân như sau:
A=0, B=01, C=11, D=00
Nếu bên thu nhận được dãy từ mã 0011 thi không biết bên phát truyền đi DC
hay là AAC.
Vậy ví dụ trên không thỏa tính giải mã duy nhất.
- Giải mã tức thời: Mã phải có tính prefix (tiền tố). Đôi khi mã không có tính
prefix nhưng vẫn đảm bảo giải mã duy nhất, tuy nhiên lúc này không thể giải mã tức
thời được mà phải mất thêm thời gian để xem xét các số tiếp theo trước khi kết luận
chính xác được điểm kết thúc của từ mã.

2.5. Mã Huffman
Nhận thấy xác suất xuất hiện của các ký tự trong nguồn tin là không bằng nhau,
có những ký tự xuất hiện thường xuyên hơn những ký tự khác, năm 1952, Huffman đã
đưa ra một thuật toán mã hóa dựa trên xác suất xuất hiện các ký tự. Thuật toán này tối
ưu theo nghĩa độ dài từ mã trung bình là nhỏ nhất. Mã hóa Huffman không có đặc tính
sửa lỗi nhưng có tính giải mã duy nhất và tức thời.
Giả sử có một số bản tin được truyền giữa hai máy tính qua mạng PSTN. Các
bản tin chỉ chứa các ký hiệu từ A đến H. Theo kết quả thống kê cho thấy xác suất xuất
hiện của các ký tự như sau:

41
Ký tự A B C D E F G H
Xác suất 0.1 0.18 0.4 0.05 0.06 0.1 0.07 0.04
Entropy của nguồn là:
8
1
H   p (m) log 2  2.55
m 1 p ( m) (bit/ký tự)
Entropy cực đại của nguồn là:
H  log 2 8  3 (bit/ký tự)

Như vậy hiệu suất của nguồn là:


2.55
 x100%  85%
3
Nếu mỗi ký tự trên được mã hóa thành 3 bit thì hiệu suất mã hóa sẽ giữ nguyên
không thay đổi là 85%.
Mã hóa Huffman thực hiện mã hóa sử dụng ít bit hơn cho các ký tự có xác suất
xuất hiện cao vì chúng được truyền đi thường xuyên hơn và ngược lại, nhiều bit hơn
cho các ký tự có xác suất xuất hiện thấp nên có thể tăng được hiệu suất.
Thuật toán mã hóa Huffman gồm các bước sau:
(1) Sắp xếp các ký tự theo thứ tự xác suất giảm dần.
(2) Gán cho hai ký tự có xác suất xuất hiện thấp nhất với hai nhánh (0) và (1)
của cây mã. Từ hai ký tự có xác suất thấp nhất giảm còn một ký tự với xác
suất bằng tổng của hai xác suất.
(3) Lập lại từ bước (1) cho đến khi chỉ còn lại một ký tự duy nhất với xác suất là
1.
(4) Duyệt cây mã để tìm ra từ mã tương ứng với từng ký tự của nguồn.
Ví dụ : Mã hóa Huffman cho nguồn tin trên. Nếu ta quy ước gán cho nhánh đi
ra từ ký hiệu có xác suất cao hơn là 1 và nhánh kia là 0, nhánh 0 vẽ ở bên trái, nhánh 1
vẽ ở bên phải thì ta có thể vẽ lại cây mã Huffman vừa lập được như dưới đây:

42
Hình 2.4. Sơ đồ tạo cây mã

Hình 2.5. Cây mã


Thứ tự trọng số: 0.04, 0.05, 0.06, 0.07, 0.09, 0.10, 0.10, 0.13, 0.18, 0.019, 0.23,
0.37, 0.40, 0.60
Gọi trọng số của các nút trong cây mã là xác suất của nút đó, ta nhận thấy cây
mã Huffman vừa lập là cây mã tối ưu theo nghĩa thứ tự trọng số của các nút tăng dần
theo chiều từ dưới lên trên và trái sang phải.
Nhìn vào cây mã, ta thấy kết quả mã hóa Huffman của nguồn tin trên như sau:
Ký tự C B A F G E D H
Từ mã 0 110 100 1111 1011 1010 11101 11100
Độ dài từ mã trung bình bây giờ là:
L=1.0.04+3.(0.18+0.10)+4.(0.10+0.07+0.06)+5.(0.05+0.04)=2.61 (bit/ký tự)
Vậy độ lợi mã hóa là:
H 2.55
 x100%  x100%  97.7%
L 2.61
Qua ví dụ trên ta thấy hiệu suất 85% khi không mã hóa đã tăng lên đến 97.7%
khi mã hóa Huffman.

43
Ta thấy rằng phương pháp mã hóa Huffman không phải chỉ cho một bộ mã duy
nhất, vì ta có thể ký hiệu bất cứ nhánh nào là 0 hay 1 chứ không bắt buộc. Tất nhiên
khi đó hiệu suất mã hóa sẽ không thay đổi, nhưng thứ tự trọng số của các nút sẽ thay
đổi.
Do từ mã Huffman khác nhau đối với các tập ký tự khác nhau nên để bên thu có
thể giải mã được thì yêu cầu bên thu phải biết các từ mã liên quan đến dữ liệu phát. Có
thể thực hiện điều này bằng hai cách. Hoặc là bên phát gửi bảng mã trước khi phát dữ
liệu, hoặc là bên thu phải có sẵn bảng mã.
Mô phỏng mã Huffman trong Matlab:
Để thành lập một bộ mã Huffman, MATLAB có hàm huffmandict, ta chỉ cần
cung cấp các thông tin về tính chất thống kê của tập dữ liệu nguồn:
>> [dict,avlen] = huffmandict(sym,prob,N,var)
Hàm này trảvề bộmã Huffman dict cùng với chiều dài trung bình avlen của các
từ mã của bộmã. Các thông số nhập vào tối thiểu gồm có tập các ký hiệu của nguồn
dữliệu (sym).và xác suất xuất hiện của từng ký hiệu trong tập ký hiệu này (cho bởi
vector prob). Ngoài ra còn có thểcung cấp thêm hai thông sốnhập khác:
o Nếu dùng các từ mã N-ary thay vì mã nhị phân thì ta phải nhập thêm giá trị
N. Lưu ý là N là một số nguyên có giá trị từ 2 đến 10 và không được vượt quá số ký
hiệu của tập nguồn.
o Một cách mặc định, MATLAB sẽ dùng giải thuật variance lớn nhất. Nếu
chọn giải thuật variance cực tiểu, ta phải cung cấp thêm thông số varvới giá trị là
‘min’.
Sau đây là một ví dụ đơn giản để minh hoạ cách sử dụng hàm huffmandict:
symbols = [1:5] % Tập ký hiệu
prob = [.3 .3 .2 .1 .1] % Xác suất xuất hiện tương ứng
[dict,avglen] = huffmandict(symbols,prob);
% Hiển thịbảng mã.
temp = dict;
for i = 1:length(temp)
temp{i,2} = num2str(temp{i,2});

44
end
avglen
temp
Kết quả hiển thị như sau:
avglen =
2.2000
temp =
[1] '0 1'
[2] '0 0'
[3] '1 0'
[4] '1 1 1'
[5] '1 1 0'
Để thực hiện mã hoá và giải mã theo phương pháp Huffman, ta có thể sử dụng
các hàm huffmanencovà huffmandeco:
>> sig_encode = huffmanenco(sig,dict)
Hàm này thực hiện mã hoá Huffman cho chuỗi dữ liệu sig với bộ mã Huffman
tương ứng là dict. Bộ mã này được tạo từ hàm huffmandict.
>> sig = huffmandnco(comp,dict)
Hàm này thực hiện quá trình giải mã với comp là dữ liệu đã được mã hoá

45
CHƯƠNG III

MÔ PHỎNG MÃ HÓA KÊNH

3.1. Giới thiệu


Theo quan điểm của ngành thông tin, tài nguyên thông tin chủ yếu là công suất,
thời gian và băng thông của tín hiệu. Đối với một môi trường thông tin cho trước, ba
tài nguyên này có thể mâu thuẫn nhau. Việc cân đối các mâu thuẫn này tùy vào từng
trường hợp cụ thể. Tuy nhiên, nhìn chung thì ta có thể đạt được tốc độ truyền số liệu
cao nhất trong một băng thông nhỏ nhất trong khi giữ cho chất lượng truyền dẫn ở mức
chấp nhận được. Trong thông tin số thì chất lượng truyền dẫn có liên quan mật thiết
với xác suất lỗi bit tại đầu thu.
Trong thực tế, yêu cầu của việc thiết kế là phải thực hiện được một tốc độ
truyền số liệu yêu cầu trong một băng thông hạn chế của một kênh truyền sẵn có và
một công suất hạn chế tùy ứng dụng cụ thể. Hơn nữa, còn phải đạt được tốc độ này với
một tỷ số BER (Bit Error Rate) và thời gian trễ chấp nhận được. Nếu một tuyến truyền
dẫn PCM không đạt được tỷ số BER yêu cầu với các ràng buộc này thì cần phải sử
dụng các phương pháp mã hóa điều khiển lỗi.
Mã hóa điều khiển lỗi, còn được gọi là mã hóa kênh (channel encoding) được
sử dụng để phát hiện và sửa các ký tự hay các bit thu bị lỗi. Mã hóa phát hiện lỗi (error
detection coding) được sử dụng như là bước đầu tiên của quá trình sửa lỗi bằng cách
kích cho đầu cuối thu phát ra tín hiệu yêu cầu lặp lại tự động ARQ (Automatic Repeat
reQuest), truyền theo hướng ngược lại về cho đầu cuối phát. Nếu quá trình truyền lại
thành công thì coi như là đã sửa được lỗi. Nếu kỹ thuật ARQ không thích hợp, chẳng
hạn như khi trễ truyền dẫn quá lớn thì sẽ sử dụng kỹ thuật mã hóa sửa lỗi không phản
hồi FECC (Forward Error Correction Coding). Cả mã phát hiện lỗi và mã sửa lỗi đều
đưa thêm độ dư vào dữ liệu phát, trong đó độ dư thêm vào trong mã sửa lỗi nhiều hơn
trong mã phát hiện lỗi. Lý do là đối với mã sửa lỗi, độ dư thêm vào phải đủ cho bên
thu không chỉ phát hiện được lỗi mà còn sửa được lỗi, không cần phải truyền lại.
Đại lượng đo lỗi thông thường là tỷ lệ lỗi bit BER hay xác suất lỗi bit (xác suất
một bit nhị phân bất kỳ truyền đi bị lỗi). Điều khiển lỗi nhằm mục đích là làm giảm tỷ

46
lệ lỗi trong một hệ thống khi tỷ lệ này lớn quá mức cho phép. Có năm phương pháp
điều khiển lỗi.
Giải pháp đầu tiên 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. Ví dụ như, đối với một máy điện thoại bỏ túi thì không chấp nhận khối
lượng của pin quá lớn.
Giải pháp thứ hai, rất hiệu quả trong việc chống lại lỗi chùm gây bởi fading, là
sử dụng phân tập. Có ba kiểu phân tập chính là phân tập không gian, phân tập tần số và
phân tập thời gian. Cả ba kiểu phân tập này đều đưa thêm độ dư vào trong dữ liệu phát
bằng cách truyền gấp đôi: qua hai đường, tại hai tần số hay vào hai thời điểm khác
nhau. Trong phân tập không gian, sử dụng hai hay nhiều antena đặt tại những vị trí đủ
xa để có một trong các antena đó thu được tín hiệu tốt nhất, ít bị fading nhất. Phân tập
tần số sử dụng hai hay nhiều tần số khác nhau để phát cùng một tin. Phân tập tần số có
thể là trong băng hay ngoài băng tùy vào khoảng cách tần số giữa các sóng mang.
Trong hệ thống phân tập thời gian, phát cùng một tin nhưng vào hai hay nhiều thời
điểm khác nhau.
Giải pháp thứ ba là truyền song công, hay còn gọi là kiểm tra echo (echo
checking). Ở đây, khi bộ phát phát tin đến bộ thu, tin được phát ngược về bộ phát trên
một kênh hồi tiếp riêng. Nếu tin phát ngược về khác với tin phát đi thì biết là có lỗi.
Phương pháp này có khuyết điểm là yêu cầu băng thông gấp đôi so với truyền trên một
hướng nên không chấp nhận khi cần tận dụng phổ.
Phương pháp thứ tư để đối phó với BER cao là yêu cầu lặp lại tự động ARQ
(Automatic Repeat reQuest). Trong hệ thống ARQ, mã phát hiện lỗi (error detecting
code) được sử dụng để bên thu kiểm tra lỗi trong khối số liệu thu và trả lời cho bên
phát trên một kênh hồi tiếp. Tín hiệu trả lời là chấp nhận ACK (ACKnowledgment)
khi số liệu thu đúng và không chấp nhận NAK (Non – AcKnowledgment) khi số liệu
thu sai. Nếu bên phát nhận NAK, bên phát phải tiến hành truyền lại khối số liệu bị lỗi.
Có hai kỹ thuật ARQ chính là ARQ dừng và đợi và ARQ liên tục. Trong hệ thống
ARQ dừng và đợi, sau khi phát khối số liệu đi, bên phát dừng lại và chờ nhận trả lời từ
bên thu, rồi tùy theo trả lời đó là ACK hay NAK mà bên phát phát khối số liệu tiếp
theo hay phát lại khối số liệu vừa rồi. Nếu thời gian chờ quá thời gian quy định, bên

47
phát coi như là khối số liệu vừa phát bị lỗi và vẫn tiến hành phát lại. Hạn chế của
phương pháp này là thời gian trễ truyền dẫn lớn. Trong hệ thống ARQ liên tục, các
khối số liệu đều mang số thứ tự N và bản tin trả lời ACK /NAK cũng mang số thứ tự N
tương ứng. Bên phát liên tục phát đi các khối số liệu mà không chờ nhận trả lời từ bên
thu. Bên thu kiểm tra lỗi các khối số liệu thu và trả lời về cho bên phát bản tin
ACK/NAK kèm theo số thứ tự của khối tin tương ứng. Khi nào bên phát nhận trả lời
NAK từ bên thu, bên phát sẽ phát lại tất cả các khối số liệu kể từ khối số liệu bị lỗi đối
với ARQ lùi lại N, hoặc bên phát sẽ chỉ phát lại khối số liệu bị lỗi đối với ARQ.
Phương pháp thứ năm để giảm BER là thực hiện mã hóa sửa lỗi không phản hổi
FECC (Forward Error Correction Coding). Trong lịch sử, việc chấp nhận sử dụng rộng
rãi FECC có trễ hơn so với các phương pháp khác bởi vì độ phức tạp và giá cả của nó
cao hơn.
 Phân loại mã kênh
Có thể phân loại mã kênh theo sơ đồ sau:

Hình 3.1. Phân loại mã kênh


3.2. Mã khối
3.2.1. Mã khối
Mã khối được đặc trưng bởi hai số nguyên n và k, và một ma trận sinh hay đa
thức sinh. Mỗi khối gồm k bit thông tin lối vào được tương ứng với từ mã n bit thông
tin lối ra (có n-k bit dư thêm vào) khi đó bộ mã khối sẽ có tỷ lệ mã hóa là r=k/n, là tiêu
chuẩn để đánh giá độ dư của mã. Tỷ lệ mã thường từ 1/2 đến 1. Mã hệ thống là mã có
mặt các bit tin cùng với các bit dư trong từ mã. Hình dưới đây thể hiện cấu trúc của mã
khối hệ thống (n,k).

48
Hình 3.2. Cấu trúc mã khối
Mã khối tuyến tính nếu tổ hợp tuyến tính (modul 2) của hai từ mã là một từ mã.
Mã khối trong đó các bit bản tin được giữ nguyên, chỉ bổ sung thêm các bit dữ
liệu gọi là mã hệ thống. Mã hệ thống cũng có tính chất tuyến tính và có ưu điểm thực
hiệnđơn giản.
Cấu trúc của mã khối hệ thống là:
b0, b1…., bn-k-1,m0,m1, …, mk-1
Trong đó k bit bên phải (m0,m1, …, mk-1) là các bit bản tin
n -k bit bên trái (b 0, b1…., bn-k-1) là các bit kiểm tra. Bit kiểm tra là tổ hợp tuyến
tính của k bit bản tin
bi = p0im0 + p1im1 + … + p(k-1)imk-1 i = 0, 1, … ,n-k-1
1 neu _ bi _ phu _ thuoc _ mi
pi  
với 0 neu _ bi _ khong _ phu _ thuoc _ mi

Phương trình trên xác định một cấu trúc toán học của mã khối tuyến tính (n, k)
ta có thể viết lại dưới dạng vector ma trận như sau:
b = mP (với P là ma trận có kích thước kx(n-k))
Các từ mã c = [b, m] tạo nên một không gian con k chiều của không gian n
chiều:
Do đó ta có thể viết lại là:
C = m[P, Ik] trong đó Ik là ma trận đơn vị hay c = mG
Ma trận G là ma trận nhị phân có kích thước k x n có dạng
G = [P, Ik]

49
[G=¿ p1, p1,2. p1,n−k10. 0¿][p2,1p2, . p2,n−k01. 0¿][. . . 0. . . . . . . . .¿]¿¿
¿
Ma trận G được gọi là ma trận sinh, có k hàng phải là độc lập tuyến tính tức
biểu diễn một hàng phải là tổ hợp tuyến tính của các hàm còn lại) từ đó ta có:
ci + cj = miG + mjG= Gmi + mjG
Tính chất tuyến tính được suy ra từ hệ thống
Cách biểu diễn khác của mối liên hệ giữa bit kiểm tra và bit bản tin là:
H = [In-k,PT] khi đó
 PT 
 
HGT = [In-k,PT]  I k  = PT + PT
Sử dụng tính chất cộng modul 2 ta có HGT = 0 tức vế phải là ma trận zero hay ta

cHT = mGHT = 0 (3.1)
Khi đó ma trận H được gọi là ma trận kiểm tra chẵn lẻ. Khi đó tín hiệu truyền
không lỗi thì phương trình (2.1) được thoả mãn:
Ví dụ: Xét mã lặp lại n = 5, k = 1 ta có:

G = [1 1 1 1, 1] và H =
Giải mã đặc trưng:
¿¿
Từ mã c được gửi trên đường truyền mắc lỗi e, véc tơ thu được tại bộ thu là r:
ta có r = c + e
Trong đó ei = 0 nếu ci giống ri (i = 0, 1, 2, … n – 1)
Ta định nghĩa s = rHT
Là đặc trưng của giải mã, có các tính chất sau:
- s chỉ phụ thuộc mẫu lỗi mà không phụ thuộc từ mã: do đó
s = (c + e)HT = cHT + eHT= eHT (3.2)
Các mẫu lỗi khác nhau của 1 từ mã sẽ có cùng đặc trưng s

50
- Do bản tin k bit chỉ có 2k từ mã khác nhau nên với mỗiđặc trưng sẽ có 2 k véc
tơ lỗi khác nhau: ei = e + ci, I = 0, 1, …, 2k – 1.
Tập các véc tơ lỗi ứng với một đặc trưng tạo nên một tập con trong tập mã và
mã khối tuyến tính có 2n-k tập con như vậy không chồng lấn nhau và phủ hết không
gian từ mã. (2.2) là một hệ n-k phương trình tuyến tính có thể cho thông tin phát hiện
lỗi. Song nó không đủ xác định véc tơ lỗi (n phần tử) hay chính xác hơn xác định duy
nhất véc tor lỗi: sẽ có 2k mẫu lỗi thoả mãn hệ phương trình này. Tuy nhiên thông tin
đặc trưng s giúp cho phép dò tìm lỗi e từ 2n khả năng xuống còn 2k khả năng.
Khoảng cách tối thiểu
dmin là tập mã được định nghĩa là khoảng cách Hamming (số các bit khác nhau
trong 2 từ mã) nhỏ nhất giữa các từ mã. Từ tính chất đóng của từ mã d min bằng trọng
lượng (số phần tử 1) nhỏ nhất của một từ mã:
dmin = min dH(ci, cj) (3.3)
Mã khối tuyến tính (n, k) có thể tách và hiệu chỉnh được tối đa t lỗi nếu và chỉ
nếu
t ¿ [1/2(dmin-1)] lấy phần nguyên
Vì véc tơ r nhận được vẫn luôn gần từ mã phát ban đầu hơn bất kỳ từ mã khác.
Đối với mã tuyến tính khoảng cách tối thiểu bằng trọng lượng tối thiểu của mã
được định nghĩa:
Wmin = min w(ci)
Ci ¿ 0 (3.4)
Tức là số tối thiểu phần tử 1 trong bất kỳ từ mã khác 0
Mã khối tuyến tính có dạng hệ thống khi ma trận sinh có dạng sau:

[G=¿ p1, p1,2. p1,n−k10. 0¿][p2,1p2, . p2,n−k01. 0¿][. . . 0. . . . . . . . .¿]¿¿


¿
Mã vòng (cyclic code) là một lớp con của mã khối tuyến tính không có từ mã
gồm toàn số 0. Mã khối tuyến tính được gọi là mã vòng nếu sau một lần dịch vòng một

51
từ mã thì cũng được một từ mã thuộc cùng bộ mã. Ví dụ các từ mã sau đây được gọi là
mã vòng:
1101000,0110100,0011010,1000110,0001101,1010001,0100011
Mã Golay là một loại mã vòng sửa được sai nhiều lỗi. Mã Golay (23,12) có khả
năng sửa được 3 lỗi cho từ mã dài 23 bit. Mã này được Golay phát minh năm 1949 và
được nhiều chuyên gia quan tâm nghiên cứu tới cấu trúc và cơ chế giải mã.
Mã BCH nhị phân (binary BCH code) là một loại mã vòng được Hocquenghem
tìm ra năm 1959, sau đó được Bose và Chaudhuri tìm ra một cách độc lập vào năm
1960. Mã BCH có thể sửa được t lỗi trong từ mã dài n bit, với n  2  1 , n  k  mt ,
m

d min  2t  1 Ví dụ mã BCH(15,7) có thể sửa sai tối đa 2 lỗi.

Mã RS được Reed và solomon giới thiệu lần đầu tiên vào năm 1960. Theo lý
thuyết mã, có thể xem mã RS là mã BCH không nhị phân. Mã RS được tổ chức theo
ký tự. Mã RS tạo thành n ký tự, mỗi ký tự dài m bit, m tùy thuộc vào ứng dụng cụ thể.
Ví dụ m=8 thì mỗi ký tự chính xác là một byte. Mã RS hoạt động trên ký tự nhiều bit
chứ không phải trên từng bit như các mã vòng khác.
Mã Hamming là một trường hợp riêng đơn giản nhất của mã BCH nhị phân. Mã
này được R.W.Hamming đưa ra và được dùng trong một số hệ thống thông tin. Mã
Hamming có d=3, có khả năng sửa được 1 lỗi.
3.2.2. Mã Hamming
 Khoảng cách Hamming
Khoảng cách Hamming được sử dụng trong kỹ thuật viễn thông để tính số
lượng các bit trong một từ nhị phân bị đổi ngược, như một hình thức để ước tính số lỗi
xảy ra trong quá trình truyền thông, và vì thế, đôi khi nó còn được gọi là khoảng cách
tín hiệu. Việc phân tích trọng số Hamming của các bit còn được sử dụng trong một số
ngành, bao gồm lý thuyết tin học, lý thuyết mã hóa và mật mã học.
Trước tiên ta tìm hiểu về trọng số Hamming: Trọng số Hamming của một từ mã
là số số 1 có trong từ mã đó. Ví dụ với từ mã 00111010 có trọng số Hamming là 4.
Khoảng cách Hamming được định nghĩa là các bít khác nhau giữa hai từ mã. Khoảng
cách Hamming giữa hai từ mã được lấy bằng cách dùng toán tử XOR từng bít của hai

52
từ mã với nhau và khoảng cách Hamming là trọng số của kết quả tìm được trong phép
XOR trên. Ví dụ với hai từ mã 0110101 và 1110001 ta có:
0110101  1110001 = 1000100
Vậy khoảng cách Hamming của 2 từ mã trên là 2.
Mã Hamming là một mã sửa lỗi tuyến tính, mã này có thể phát hiện một bit
hoặc hai bit bị lỗi. Mã Hamming còn có thể sửa được cac lỗi do một bit bị sai gây ra.
Có thể tóm tắt các bước cho việc sử dụng mã Hamming như sau:
1) Các vị trí trong một khối được bắt đầu đánh số từ 1: Bit 1, 2, 3…
2) Tất cả các bit ở vị trí số mũ của 2 được dùng làm bít chẵn lẻ. Ví dụ

20 ,21 ,22 ,23...


3) Tất cả các vị trí khác vị trí còn lại sẽ được dùng cho các bit dữ liệu. Ví dụ vị
trí thứ 2, 3, 5, 6, 7…
4) Mỗi bít chẵn lẻ tính giá trị chẵn lẻ cho một số bit trong từ mã theo quy tắc
như sau:
0
- Bít chẵn lẻ ở vị trí số 1 ( 2 ) sẽ kiểm tra tính chẵn lẻ của các vị trí mà số thứ tự
của vị trí đó trong hệ nhị phân có bít ngoài cùng là 1. VÍ dụ 1 (1), 3(11), 5(101),
7 (111), 9(1001)…
- Bít chẵn lẻ ở vị trí số 1 (10) sẽ kiểm tra tính chẵn lẻ của các vị trí mà số thứ tự
của vị trí đó trong hệ nhị phân có bít thứ 2 là 1. Ví dụ 2(10), 3(11), 6(110),
7(111), 10(1010)…
- Bít chẵn lẻ ở vị trí số 4(100) sẽ kiểm tra tính chẵn lẻ của các vị trí mà số thứ tự
của vị trí đó trong hệ nhị phân có bít thứ 3 là 1. Ví dụ 4, 5, 6, 7, 12, 13, 14, 15…
- Tương tự với các bít chẵn lẻ ở vị trí cao hơn: 8, 16, 32…
Tóm lại, mỗi bit chẵn lẻ trong mã Hamming sẽ tính giá trị chẵn lẻ mà tại đó, bit
nhị phân của vị trí AND với các bit vị trí sẽ là một số khác không.
Mã Hamming là loại mã khối tuyến tính dạng (2m – 1, 2m -1 – m) có khoảng
cách tối thiểu bằng 3 và ma trận kiểm tra chẵn lẻ đơn giản có kích thước m x (2m – 1)
trong đó tất cả các dãy nhị phân dài m trừ dãy toàn 0 nhìn theo cột.
Với m = 3, ta có mã (7, 3) ma trận sinh là

53
G=[P,I4]=¿ [ 1 101000 ¿ ] [ 0 110100 ¿ ] [ 1 110010 ¿ ] ¿¿
¿
Tương ứng ta ta có ma trận kiểm tra chẵn lẻ là :
H=¿¿
Từ mã tạo ra từ ma trận sinh này có d min = 3, nên có khả năng phát hiện và hiệu
chỉnh 1 bit lỗi. Các mẫu lỗi 1 bit và các đặc trưng giải mã như sau:

Mẫu lỗi Đặc trưng s


0000000 000
1000000 100
0100000 010
0010000 001

0001000 110
0000100 011

0000010 111
0000001 101
Từ mã nhận được sau đường truyền được nhân với ma trận kiểm tra chẵn lẻ H
để tính đặc trưng s, từ giá trị s nhận được so với bảng trên ta nhận được vị trí bit lỗi.

3.3. Mã chập
Mã chập là một phương pháp mã hóa sửa sai quan trọng. Khác với mã khối mã
chập là loại mã có nhớ. Mặc dù, bộ mã hóa chập cũng nhận các thông điệp có số lượng
ký hiệu xác định và rạo ra một từ mã cũng có số ký hiêu xác định, nhưng từ mã tạo ra
ở mỗi thời điểm không chỉ phụ thuộc vào các ký hiệu của thông điệp hiện tại mà còn
phụ thuộc vào các ký hiệu của các thông điệp đã được mã hóa trước đó.
Matlab cung cấp đầy đủ các công cụ để thực hiện mã chập kể cả thuận lẫn hồi
tiếp. Mã chập có thể được mô tả dưới dạng cấu trúc lưới (trellis) hoặc tập các đa thức

54
sinh. Giải thuật mà MATLAB sử dụng là giải thuật viterbi, có thể giải mã bằng quyết
định cứng (hard-decision) hay quyết định mềm (thích nghi, soft- decision).
Mã chập được tạo ra bằng cách cho chuỗi thông tin truyền qua hệ thống các
thanh ghi dịch tuyến tính có số trạng thái hữu hạn.Cho số lượng thanh ghi dịch là N,
mỗi thanh ghi dịch có k ô nhớ và đầu ra bộ mã chập có n hàm đại số tuyến tính. Tốc độ
mã là R = k/n, số ô nhớ của bộ ghi dịch là N×k và tham số N còn gọi là chiều dài ràng
buộc (Contraint length) của mã chập.
Giả thiết bộ mã chập làm việc với các chữ số nhị phân,thì tại mỗi lần dịch sẽ có
k bit thông tin đầu vào được dịch vào thanh ghi dịch thứ nhất và tương ứng có kbit
thông tin trong thanh ghi dịch cuối cùng được đẩy ra ngoài mà không tham gia vào quá
trình tạo chuỗi bit đầu ra. Đầu ra nhận được chuỗi n bit mã từ n bộ cộng module-2
(xem hình).
Như vậy, giá trị chuỗi đầu ra không chỉ phụ thuộc vào k bit thông tin đầu vào
hiện tại mà còn phụ thuộc vào (N-1) k bit trước đó,cấu thành lên v bộ nhớ và được
gọi là mã chập (n, k,N). Với v được tính bằng công thức sau:

v ( N  1)k

Hình 3.3. Sơ đồ mã chập (n,k,N)


Giả sử u là véctơ đầu vào, x là véctơ tương ứng được mã hoá, bây giờ chúng ta
mô tả cách tạo ra từ m ã u. Để mô tả bộ mã hoá chúng ta phải biết sự kết nối giữa
thanh ghi đầu vào và đầu ra hình 3.3. Cách tiếp cận này có thể giúp chúng ta chỉ ra sự
tương tự và khác nhau cũng như là với mã khối. Điều này có thể dẫn tới những ký hiệu
phức tạp và nhằm nhấn mạnh cấu trúc đại số của mã chập. Điều đó làm giảm đi tính
quan tâm cho mục đích giải mã của chúng ta. Do vậy, chúng ta chỉ phác họa tiếp cận
này một cách sơ lược. Sau đó, mô tả mã hoá sẽ được đưa ra với những quan điểm
khác.

55
Để mô tả bộ mã hoá hình 3.3 chúng ta sử dụng N ma trận bổ sung G1, G2…,

GN bao gồm k hàng và n cột. Ma trận Gi mô tả sự kết nối giữa đoạn thứ I của k ô nhớ

trong thanh ghi lối vào với n ô của thanh ghi lối ra. n lối vào của hàng đầu tiên của Gi
mô tả kết nối của ô đầu tiê ncủa đoạn thanh ghi đầu vào thứ I với n ô của thanh ghi lối
ra. Kết quả là “1” trong Gi nghĩa là có kết nối, là “0” nghĩa là không kết nối. Do đó
chúng ta có thể định nghĩa ma trận sinh của mã chập:
G1 G2 ... GN 
 G1 G2 .... GN 
  
G   G1 G2 ... GN  (3.5)
 
 G1 G2 ... GN 
 ... 
Và tất cả các lối vào khác trong ma trận bằng 0. Do đó nếu lối vào là véc tơ u,
tương ứng véctơ mã hoá là:
x  u.G (3.6)
Bộ mã chập là hệ thống nếu trong mỗi đoạn của n chữ số đuợc tạo, k số đầu là
mẫu của các chữ số đầu vào tương ứng. Nó có thể xác định rằng điều kiện này tương
đương có các ma trận kxn như sau:

(3.7)

i= 2,3,…..N.
Chúng ta xét một vài ví dụ minh hoạ:
Ví dụ 1: Xét mã (3,2,2) được định nghĩa thông qua hai ma trận sinh G1 và G2:

Bộ mã hoá là hệ thống, ma trận sinh được tạo ra:

56
Chuỗi thông tin u=(11011011…) được mã hóa thành chuỗi mã x =
(111010100110…).

Hình 3.4. Bộ mã chập (3,2,2)


Một cách tương tự ta cũng có thể biểu diễn ma trận sinh G = (G 1,G2,…,GN), như
vậy ý nghĩa của ma trận sinh là nó chỉ ra phải sử dụng các hàm tương ứng nào để tạo
ra véc tơ dài n mỗi phần tử có một bộ cộng module-2, trên mỗi véc tơ có Nxk tham số
biểu diễn có hay không các kết nối từ các trạng thái của bộ ghi dịch tới bộ cộng
module - 2 đó. Xét vecto thứ i (gi, n ≥ i ≥ 1), nếu tham số thứ j của g i(L×k ≥ j ≥1) có
giá trị “1” thì đầu ra thứ j tương ứng trong bộ ghi dịch được kết nối tới bộ cộng
module-2 thứ i và nếu có giá trị “0” thì đầu ra thứ j tương ứng trong bộ ghi dịch không
được kết nối tới bộ cộng module-2 thứ i.
Ví dụ 2: Cho bộ mã chập có số thanh ghi N = 3, số ô nhớ trong mỗi thanh ghi
dịch k = 1, chiều dài chuỗi đầu ra n = 3 tức là mã (3,1,3) và ma trận sinh của mã chập
có dạng sau:
 g1 
g  100 
G  2
 G 101   G (4,5, 7)
 
  111 
 gn 
Có thể biểu diễn dưới dạng đa thức sinh là:

57
G(D) = [1 1+D2 1+D+D2]
Do đó sơ đồ mã chập được biểu diễn như sau:

Hình 3.5. Sơ đồ bộ mã chập với N=3, k=1, n=3


Một ví dụ khác minh họa bộ mã chập với k=1, N=3, n=2

Hình 3.6. Mã chập (2,1,3)


 Biểu diễn mã chập
Có ba phương pháp để biểu diễn mã chập đó là: sơ đồ lưới, sơ đồ trạng thái, và
sơ đồ hình cây. Để làm rõ phương pháp này ta tập trung phân tích dựa trên ví dụ hình
3.7 với bộ mã (2,1,3), đa thức sinh (7,5).

Hình 3.7. Mã chập (2,1,3)


*Sơ đồ hình cây:

58
Từ ví dụ hình 3.7, giả thiết trạng thái ban đầu của các thanh ghi dịch trong bộ
mã đều là trạng thái “toàn 0”. Nếu bit vào đầu tiên là bit “0” thì đầu ra ta nhận được
chuỗi “00”, còn nếu bit vào đầu tiên là bit “1” thì đầu ra ta nhận được chuỗi “11”. Nếu
bit vào đầu tiên là bit “1” và bit vào tiếp theo là bit “0” thì chuỗi thứnhất là “11” và
chuỗi thứ hai là chuỗi “10”. Với cách mã hoá như vậy, ta có thể biểu diễn mã chập
theo sơ đồ có dạng hình cây (xem hình 3.8). Với hướng lên là hướng của bit 0 đi vào
bộ mã, nhánh đi xuống biểu hiện cho bit 1 được dịch vào. Từ sơ đồ hình cây ta có thể
thực hiện mã hoá bằng cách dựa vào các bit đầu vào và thực hiện lần theo các nhánh
của cây, ta sẽ nhận được tuyến mã, từ đó ta nhận được dãy các chuỗi đầu ra.

00
00
00
00
11
10
00
00
10
01
11
10
0
01 11

00
11
00
1 10
01
00 10
11
10
01
01
01
11
10
11

Hình 3.8. Sơ đồ hình cây của bộ mã (2,1,3)


*Sơ đồ hình lưới:
Do đặc tính của bộ mã chập, cấu trúc vòng lặp được thực hiện như sau: chuỗi n
bit đầu ra phụ thuộc vào chuỗi k bit đầu vào hiện hành và (N-1) chuỗi đầu vào trước đó
hay (N-1) × k bit đầu vào trước đó. Từ ví dụ hình 3.7 ta có chuỗi 2 bit đầu ra phụ thuộc
vào 1 bit đầu vào là “1” hoặc “0” và 4 trạng thái có thể có của hai thanh ghi dịch, là
“00”; “01”; “10”; “11”. Từ sơ đồ hình cây trên, ta thấy rằng tại tầng thứ 3, cứ mỗi

59
trạng thái 00, 01, 10, 11 đều có 2 nhánh đến từ các trạng thái trước đó tùy thuộc vào bit
được dịch vào bộ mã là bit 0 hay bit 1. Với tính chất đó ta có thể biểu diễn mã chập
bằng sơ đồ có dạng hình lưới gọn hơn, trong đó các đường liền nét được ký hiệu cho
bit đầu vào là bit “1” và đường đứt nét được ký hiệu cho các bit đầu vào là bit “0”
(xem hình 3.9). Ta thấy rằng từ sau tầng thứ hai hoạt động của lưới ổn định, tại mỗi
nút có hai đường vào nút và hai đường ra khỏi nút. Trong hai đường đi ra thì một ứng
với bit đầu vào là bit “0” và đường còn lại ứng với bit đầu vào là bit “1”.

T=0 T=1 T=2 T=3 T=4 T=5


State 00 00 00 00 00
00
11 11 11

State
01 11 11 00 11 00 11 00 11

10 10 10 10
State
10

01 01 01 01
01 01 01
State 10 10 10
11
Hình 3.9. Sơ đồ hình lưới bộ mã chập (2,1,3)
*Sơ đồ trạng thái:
Sơ đồ trạng thái được thực hiện bằng cách đơn giản sơ đồ 4 trạng thái có thể có
của bộ mã (00, 01, 10 và 11) và trạng thái chuyển tiếp có thể được tạo ra từ trạng thái
này chuyển sang trạng thái khác, quá trình chuyển tiếp có thể là:
Next State/output symbol, if
Current Input = 0 Input = 1
State
00 00/00 10/11
01 00/11 10/00
10 01/10 11/01
11 01/01 11/10
Bảng 3.1. Bảng trạng thái của bộ mã 00, 01, 10, 11
Kết quả ta thu được sơ đồ trạng thái trong hình 3.10 như sau:

60
Hình 3.10. Sơ đồ trạng thái của bộ mã chập (2,1,3)
Từ sơ đồ trạng thái hình 3.10, các đường liền nét được ký hiệu cho bit đầu vào
là bit “0” và đường đứt nét được ký hiệu cho các bit đầu vào là bit “1”. So với sơ đồ
hình lưới và sơ đồ hình cây thì sơ đồ trạng thái là sơ đồ đơn giản nhất.
 Giải mã mã chập bằng thuật toán Viterbi
Trong số nhiều phương pháp giải mã xoắn, phương pháp Viterbi được quan tâm
đặc biệt vì nó là phương pháp tính khả năng tối đa. Dựa theo dãy nhận được tại lối ra
kênh, phương pháp này dò tìm trong sơ đồ lưới đường đi có mã giống như dãy nhận
được. Nếu giải mã là quyết định cứng thuật toán sẽ tìm đường có khoảng cách
Hamming nhỏ nhất đến dãy nhận được. Nếu giải mã là quyết định mềm thì đường tìm
được phải có khoảng cách Ơle nhỏ nhất đến dãy nhận được. Gọi c là từ mã theo đường
đi trong sơ đồ lưới,y là dãy nhận được qua kênh nhị phân không nhớ. Giả sử đường đi
có m bước chuyển trạng thái, mỗi bước có n bit lối ra nên c và y vó n.m bit đồng thờici
và yi tương ứng với bước chuyển thứ i ( 1≤i≤m ). Khoảng cách Hamming giữa c và
y được tính là:
m
∑ d ( ci , y i )
d(c.y) = i=1

Trong cách tính khoảng cách Ơle của quyết định mềm, chỉ việc thay dãy y bằng
lối ra vectơ r của bộ giải điều chế số. Thay cho dãy nhị phân 0, 1 của c là dãy c’ với

√ E neu c ij =1
c’ij =
{ −√ E neu c ij=0

Với 1≤i≤m và 1≤ j≤n . Khoảng cách Ơle là biểu thức

61
d 2E (c', r)=∑ d 2E( c'i , r i

Bây giờ giả sử k = 1. Điều này có nghĩa là chỉ có 2 nhánh đi vào một điểm trạng
thái trong sơ đồ lưới. Nếu đường đi tối ưu phải đi qua một trạng thái S thì ta gọi nhánh
đi vào nó là S1 và S2 để biết được nhánh vào trong 2 nhánh này cho khoảng cáhc toàn
thể nhỏ nhất chúng ta phải cộng khoảng cách toàn thể nhỏ nhất tại S 1 và S2 với khoảng
cách của nhánh nối 2 trạng thái với S. Rõ ràng là tổng nào nhỏ hơn sẽ được chọn để
xét tiếp đối với tầng tiếp sau S. Nhánh này là nhánh sống sót tới S, khoảng cách của nó
sẽ được lưu lại tại S, còn các nhánh khác không thích hợp bị xóa. Đối với trường hợp k
> 1 chỉ khác là tại mỗi tầng chúng ta phải chọn nhánh sống sót từ 2 k nhánh dẫn đến
trạng thái S. Quy trình nói trên được tóm tắt trong thuật toán Viterbi như sau:

1. Chia dãy nhận được thành m dãy con có độ dài n.


2. Với sơ đồ lưới có m tầng. Đối với N – 1 tần cuối chỉ vẽ các đường ứng với
lối vào toàn 0 (chú ý để trở về trạng thái toàn 0 kết thúc từ mã thì sau k bit
lối vào cuối sẽ phải thêm k(N – 1) bit 0 lối vào, khi m >> N thì tốc độ mã
hóa vẫn coi là k/n)
3. Đặt l = 1 và đặt khoảng cách tại trạng thái toàn 0 ban đầu bằng 0
4. Tìm khoảng cách của dãy con thứ l của dãy nhận được đến tất cả các nhánh
nối các trạng thái tầng 1 đến các trạng thái l + 1 trong sơ đồ lưới.
5. Cộng các khoảng cách này vào các khoảng cách của các trạng thái tầng 1 để
nhận được các ứng của khoảng cách cho các trạng thái tầng l + 1. Đối với
mỗi trạng thái của tầng l + 1, có 2 k khoảng cách ứng cử, mỗi khoảng cách
ứng với một nhánh kết thúc tại trạng thái này.
6. Đối với mỗi trạng thái ở tầng l + 1 chọn khoảng cách ứng cử nhỏ nhất và coi
nhánh tương ứng là nhánh sống sót và phân giá trị khoảng cách nhỏ nhất là
khoảng cách của các trạng thái tầng l + 1.
7. Nếu l = m chuyển sang bước tiếp theo. Nếu không tăng l thêm 1 và trở lại
bước thứ 4
8. Bắt đầu từ trạng thái toàn 0 tại tầng m + 1 đi ngược lại trong sơ đồ lưới dọc
theo nhánh sống sót để trở lại trạng thái toàn 0 ban đầu. Đường này là đường

62
tối ưu và dãy lối vào tương ứng là dãy thông tin được giải mã khả dĩ nhất.
Để nhận được dãy lối vào chỉ việc bỏ đi k(N – 1) số 0 từ dãy này
Có thể nhận thấy là mã xoắn có độ trễ và bộ nhới cần cho giải mã lớn. Một
phương pháp để tránh được điều này là cắt ngắn đường nhớ đó là: Bộ giải mã tại mỗi
tầng chỉ dò tìm δ tầng trước đó trong sơ đồ lưới mà không đến tận lúc bắt đầu lưới
tại tầng δ+ 1 bộ giải mã tạo quyết định lên bit lối vào tương ứng với tầng đầu tiên
của lưới (k bit đầu tiên), và những bit nhận được tiếp theo không thay đổi quyết định
này. Điều này có nghĩa là độ trễ của bộ giải mã chỉ là k. δ và nó chỉ yêu cầu giữ các
nhánh sống sót ứng với δ tầng cuối. Mô phỏng máy tính cho ta thấy rằng nếu δ≥
5N thì sự giảm cấp do cắt ngắn đường nhớ có thể bỏ qua.
 Ưu nhược điểm của mã chập
 Ưu điểm

Cũng như các mã sửa sai khác, mã chập cho phép chúng ta có thể sửa lại dữ liệu
đã bị sai lệch khi truyền qua kênh truyền để khôi phục chính xác tín hiệu gốc.
Việc thực hiện mã hóa dùng mã chập tương đối đơn giản hơn các loại mã sửa
sai khác mà chất lượng mã hóa lại tốt.
Việc thực hiện mã hóa dùng mã chập có thể được thực hiện bằng phần cứng và
phần mềm.
Dựa trên hình thức mã hóa mã chập cùng giải thuật Viterbi cho nó, các bộ mã
hóa sau này đều kế thừa những đặc tính ưu việt của nó.

 Nhược điểm

Việc mã hóa và giải mã liên quan đến mã chập chỉ giải quyết được các lỗi một
bit còn đối với các kênh truyền xuất hiện nhiều bit liên tiếp thì thuật toán mã hóa và
giải mã này sẽ không còn hoàn hảo nữa.
Kênh truyền ở đây phải là kênh truyền ít nhiễu, vì nếu kênh truyền nhiễu quá
lớn, mã hóa chập sẽ không còn tốt nữa. Khi đó ta phải cần tới trải phổ tín hiệu để đưa
tín hiệu xuống dưới mức nhiễu để giảm thiểu ảnh hưởng.

3.4. Mô phỏng mã hóa kênh trong Matlab


Trong sơ đồ hệ thống thông tin số ở mức hệ thống, khối mã hóa kênh có tác
dụng phát hiện lỗi và thậm chí sửa được cả lỗi xảy ra trên kênh truyền. Trong mã hóa

63
kênh, có hai bộ mã là mã khối (điển hình là mã Hamming) và mã chập. Vì vậy khi
thực hiện mô phỏng mã hóa kênh chúng ta sẽ đi tiến hành mô phỏng mã Hamming và
mã chập dưới sự tác động của kênh truyền AWGN sử dụng phần mềm MATLAB để từ
đó có thể so sánh hai loại mã này một cách trực quan và hiệu quả.
3.4.1. Mô phỏng mã hóa Hamming
 Cấu trúc của mô hình mô phỏng
Hệ thống mô phỏng sử dụng các khối truyền thông khác nhau để thiết lập mô
hình Hamming có tác động của AWGN. Hệ thống mô phỏng gồm các khối sau:
1. Một nguồn phát nhị phân theo phân bố Bernoulli.
2. Một bộ mã hóa Hamming.
3. Một bộ điều chế khóa dịch pha nhị phân BPSK.
4. Một bộ kênh nhiễu cộng tính AWGN.
5. Một bộ giải điều chế khóa dịch pha nhị phân BPSK.
6. Một bộ giải mã hóa Hamming.
7. Một bộ tính toán tỷ lệ lỗi bit.
8. Một bộ hiển thị thống kê lỗi khi chạy mô phỏng.
Các bước thực hiện mô phỏng như sau:
 Xây dựng khối
Đầu tiên, từ cửa sổ của chương trình Matlab, gõ lệnh simulink để sử dụng công
cụ này.
Sau đó, tạo ra một file mô phỏng mới bằng cách vào File > New > Model (hoặc
sử dụng cụm phím tắt Ctrl + N).
Tiếp theo, từ cửa sổ Simulink Library Browser, lấy các khối sau:
- Bernoulli Binary Generator: Khối nguồn, hay còn gọi là khối nhị phân
Bernoulli. Khối này tạo ra dữ liê ̣u số gồm dãy bit 0, 1 theo phân bố Bernoulli.

Hình 3.11. Khối phát dữ liệu

64
- BPSK Modulator Baseband: Khối điều chế pha nhị phân, có nhiệm vụ điều
chế tín hiệu số với bit 0 tương ứng với tín hiệu sóng có pha = 0 0 và bit 1 tương ứng
sóng mang có pha = 180° (hoặc ngược lại).

Hình 3.12. Khối điều chế BPSK


- BPSK Demodulator Baseband: Khối giải điều chế pha nhị phân, thực hiện
nhiệm vụ ngược lại khối BPSK.

Hình 3.13. Khối giải điều chế BPSK


- AWGN Channel: Khối AWGN thực hiện cộng nhiễu trắng Gauss vào trong
tín hiệu lối vào. Mục đích là tạo ra môi trường gần đúng với thực tế.
Có thể xác định sự khác nhau của bộ tạo nhiễu bởi kênh AWGN tỷ số tín hiệu
trên ồn Eb/No và Es/No với Eb là năng lượng của một bit và Es là năng lượng của một
symbol, hay tỷ lệ tín trên tạp SNR.

Hình 3.14. Khối kênh AWGN


- Hamming Encoder: Khối mã hóa Hamming, có nhiệm vụ mã hóa các bit đầu
vào thành chuỗi bit đầu ra bằng cách chèn các bit kiểm tra lỗi.

65
Hình 3.15. Khối mã hóa Hamming
Mã hamming: Là loại mã khối tuyến tính dạng ((2m −1), (2m −1−m)) có khoảng
cách tối thiểu bằng 3 và ma trận kiểm tra chẵn lẻ đơn giản có kích thước m*(2m-1)
trong đó tất cả các dãy nhị phân dài m trừ dãy toàn 0 nhìn theo cột.
- Hamming Decoder: Khối giải mã Hamming.

Hình 3.16. Khối giải mã Hamming


- Error Rate Calculation: Là khối tính toán tỉ lê ̣ lỗi bit hoă ̣c tỉ lê ̣ lỗi symbol
của tín hiê ̣u lối vào.
Khối này so sánh dữ liệu lối vào của bộ phát với dữ liệu lối vào của bộ thu. Dữ
liê ̣u ra của khối này gồm: Tốc đô ̣ lỗi bit, tổng số bit lỗi là số các bit khác nhau và số bit
được so sánh.

Hình 3.17. Khối tính toán tỷ lệ lỗi bit


- Display: Khối dùng để hiển thị kết quả tính toán từ khối Error Rate Calculator
(khối tính toán tỷ lê ̣ lỗi bit). Khối này sẽ hiển thị ra ba đại lượng:
+ Tỷ lệ lỗi bit
+ Tổng số bit bị lỗi
+ Tổng số bit nhận.

Hình 3.18. Khối hiển thị


Kéo và thả các khối trên sang vùng làm việc của file mô phỏng, sau đó thực
hiện việc nối các khối như hình vẽ:

66
Hình 3.19. Sơ đồ khối mô phỏng hệ thống sử dụng mã Hamming
 Thiết lập các thông số cho mỗi khối
Khối Bernoulli Binary Generator:

Hình 3.20. Thiết lập thông số cho khối tạo bit ban đầu
Khối này có các tham số sau:
1) Probability of a zero: Xác suất xuất hiện bit 0.
2) Initial seed (Giá trị khởi tạo): Giá trị khởi tạo cho máy phát bit nhị phân
ngẫu nhiên. Nó có thể là một véc tơ có chiều dài bằng với xác suất xuất hiện
bit 0, hoặc là vô hướng.
3) Sample time: Thời gian lấy mẫu.
4) Frame – based output: Xác định kết quả đầu ra bao nhiêu khung hoặc mẫu.
5) Samples per frame (số mẫu trên khung): Tham số này được kích hoạt khi
chúng ta tích chọn “Frame – base output”.

67
6) Output data type (kiểu đầu ra): Kiểu đầu ra có thể được xác định là kiểu
boolean, int8, uint8, int16, uint16, int32, uint32, single, or double. Theo mặc
định kiểu double sẽ được chọn.

68
Khối Hamming Encoder và Hamming Decoder:

Hình 3.21. Thiết lập thông số cho khối mã hóa Hamming


Hai khối này có hai tham số như sau:
1) Codeword length N (chiều dài từ mã N): Ở đây chúng ta chọn chiều dài từ
mã là 7.
2) Message length K, or M-degree primitive polynomial (chiều dài bản tin hoặc
bậc M của đa thức sinh). Tạo đa thức nguyên thủy bằng cách sử dụng hàm
gfprimfd. Ở đây ta tạo đa thức sinh có bậc bằng 3.
Khối BPSK Modulator Baseband và khối BPSK Demodulator Baseband:

69
Hình 3.22. Thiết lập thông số cho khối điều chế BPSK
Hai khối này có các tham số sau:
1) phase offset (rad): Độ lệch pha. Khối điều chế BPSK mà chúng ta mô phỏng
có độ lệch pha bằng 0.
2) Samples per symbol (số mẫu trên ký hiệu): Được đặt là 1.
Khối AWGN Channel: Khối kênh AWGN cộng ồn Gassusian trắng là thực
hoặc phức vào tín hiệu lốivào.Khitínhiệulối vào là thực,khốinàycộng giátrị thực ồn
Gaussian và sinh ra giátrị thực tín hiệulối ra. Khi tín hiệulối vào là phức, khối này
cộng giá trị phức ồn Gaussianvàsinhratínhiệu phức ởlốira.Khốitiếptheonàylấymẫuthời
gian từ tín hiệulốivào.Khốinàysửdụngkhốinguồnngẫunhiêncủa khối đặt xửlý tín hiệu
để tạoraồn.Thôngsốgiátrịxáclậpbanđầutrongkhốikhởitạomáyphátồn.Giátrị xác lậpban
đầu có thể hoặc là vô hướng hoặc là vectơ khớpsố kênh trong tín hiệu lối vào. Khối
kênh AWGN gồm các thông số sau:

Hình 3.23. Các thông số của khối AWGN Channel


1) Initial seed (giá trị khởi tạo): Giá trị ban đầu chứa trong máy phát tín hiệu ồn
ngẫu nhiên. Ở đây ta đặt Initial seed =67.
2) Mode: Có thể cụ thể hóa sự biến thiên của ồn được tạo ra bởi khối kênh
AWGN sử dụng một trong những cách sau:

70
- Tỉ số tín hiệu trên ồn lượng tử (Eb/No), khi khối tính toán sự biến thiên từ số
lượng được cụ thể hóa bằng bảng dưới đây:
+ Eb/No: Tỉ số năng lượng bit trên mật độ phổ công suất nhiễu.
+ Số bit trên ký hiệu.
+ Công suất tín hiệu lối vào, công suất của kí hiệu lối vào.
+ Chu kì kí hiệu.
+Tỉ số tín hiệu trên ồn lượng tử (Es/No), khi khối tính toán sự biến thiên từ số
lượng được cụ thể hóa bằng bảng dưới đây:
- Es/No: tỉ số năng lượng tín hiệu trên mật độ phổ công suất nhiễu.
+ Năng lượng tín hiệu vào, năng lượng kí hiệu lối vào.
+ Chu kì kí hiệu.
- Tỉ số tín hiệu trên ồn (SNR), khi khối tính toán sự biến thiên từ số lượng được
cụ thể hóa bằng bảng dưới đây:
+ SNR: tỉ số công suất tín hiệu trên công suất ồn.
+ Công suất tín hiệu lối vào, công suất của mẫu lỗi vào
- ”Variance from mask”: Nơi xác định variance trong hộp thoại phải là giá trị
dương.
- ”Variance from port”: Khi cấp variance như là một đầu vào của khối.
Variance lối vào phải là giá trị dương và nó có tốc độ lấy mẫu phải bằng tín
hiệu lối vào. Nếu tín hiệu lối vào là dựa trên kí tự, variance vào phải là dựa theo
kí tự. Nếu tín hiệu đầu tiên lối vào dựa theo khung, variance lối vào có thể hoặc
là dựa theo khung với chính xác một dòng, hoặc dựa theo mẫu.
Trong cả hai kiểu (mode) “Variance from mask” và “Variance from port”,
những quy tắc này miêu tả phương thức khối giải thích sự biến thiên:
+ Nếu sự biến thiên là vô hướng, tất cả các kênh độc lập nhau nhưng chia sẻ
biến thiến như nhau.
+ Nếu sự biến thiên là một vec tơ độ dài của nó là số kênh trong tín hiệu lối vào,
mỗi thành phần đại diện cho biến thiên của mối tương quan các kênh tín hiệu.
Ở đây ta chọn: Mode là SNR
SNR=0.1 dB

71
Khối Error Rate Calculation thiết lập thông số như hình vẽ (ở đây, số lượng
bit lỗi khi đạt đến 100 thì quá trình mô phỏng sẽ dừng lại):

Hình 3.24. Thông số của khối tính toán lỗi


Khối Display:Khối hiển thị

Hình 3.25. Thông số khối hiển thị


Ở đây chúng ta đặt tham số format (định dạng) kết quả hiển thị mặc định là kiểu
short và tham số Decimation (Cách hiển thị dữ liệu), nó được mặc định là 1 tức là cho
phép hiển thị tât cả các điểm đầu vào.
* Mô phỏng
Sau khi thiết lập các thông số như trên, ta tiến hành mô phỏng bằng cách vào
Simulation => Start. Kết quả được hiển thị trên khối Display như hình sau:

72
Hình 3.26. Tỉ lệ lỗi bit = 0.04391 với SNR = 0.1 dB
Thay đổi giá trị SNR của khối AWGN, ta thu được tỉ lệ lỗi bít khác nhau. Sau
khi thay số với các giá trị SNR trong khối AWGN, ta có bảng sau:
SNR 0.2 0.4 0.6 0.8 1 1.2 1.4

BER 0.03876 0.03608 0.0331 0.03177 0.02711 0.0245 0.02214


6 6
Bảng 3.2. Kết quả mô phỏng sử dụng khối mã hóa Hamming
Từ bảng kết quả mô phỏng ta nhận thấy khi tỷ số tín hiệu trên tạp âm (SNR)
tăng lên thì tỷ lệ lỗi bit (BER) giảm xuống hay hệ thống thông tin có chất lượng tốt
hơn.
Ngoài ra MATLAB có cung cấp các hàm phục vụ cho việc mã hóa và giải mã
khối như sau:
Hàm cyclpoly được dùng để tạo ra các đa thức sinh cho mã vòng [n,k]:
>>pol=cyclpoly(n,k,opt)
Hàm này trả về một véc tơ nhị phân gồm các hệ số của đa thức sinh liệt kê theo
thứ tự tăng dần. optlà một thông số phụ, có thể nhận các giá trị sau:
Nếu opt =’min’: Tạo đa thức sinh có trọng số nhỏ nhất.
Nếu opt =’max’: Tạo đa thức sinh có trọng số lớn nhất.
Nếu opt =’all’: Tạo tất cả các đa thức sinh có thể, mỗi đa thức được biểu diễn
trên một hàng.
Nếu opt =’L’: Tạo tất cả đa thức sinh có trọng số bằng L.
Nếu không có đa thức nào thỏa điều kiện ràng buộc thì opt = L
Ví dụ:
>>genpoly=cyclpoly(7,3,’’all)
genpoly=
1 0 1 1 1

73
1 1 1 0 1
Ma trận sinh H và ma trận kiểm tra G được tạo bằng các hàm hammgen (mã
Hamming) và cyclgen (mã vòng).
>> [H, G, K] = cyclgen (n,p,opt)
Với p là đa thức sinh của mà vòng, opt là một thông số không bắt buộc cho biết
ma trận kiểm tra H có tính hệ thống hay không.
Nếu opt = ‘system’ (đây là trường hợp mặc định) thì H có tính hệ thống, ngược
lại opt = ‘nonsys’ thì H không có tính hệ thống.
>> [H, G, n, k] = hammgen(m)
>> [H, G, n, k] = hammgen(m,p)
Trong đó m là số nguyên  3 và n  2  1 , k  2  m  1 ; p là một đa thức
m m

nguyên trong GF(2).


Ví dụ:
>>[parmat, genmat] = hammgen(3)
parmat =
1 1 0 1 0 1 1
0 1 0 1 1 1 0
0 0 1 0 1 1 1
genmat =
1 1 0 1 0 0 0
0 1 1 0 1 0 0
1 1 1 0 0 1 0
1 0 1 0 0 0 1
Bảng mã sửa sai (syndrome): Bảng mã sửa sai được bộ giải mã dùng để sửa các
n k
lỗi có thể gặp phải trong quá trình truyền. Mỗi bảng mã là một ma trận n cột và 2
hàng, mỗi hàng là một véc tơ sai ứng với một từ mã nhận được. Với mã Hamming, số
hàng của bảng mã là n+1, cho phép sửa tất cả các lỗi đơn trong mọi từ mã.
Với một ma trận kiểm tra cho trước, có thể tạo ra bảng mã sửa sai tương ứng
bằng cách dùng hàm syndtable.
Hàm encode thực hiện mã hóa các loại mã khối tuyến tính, mã vòng, mã
Hamming. Với mã khối tuyến tính, cần cung cấp ma trận sinh genmat; Với mã

74
Hamming có thể (không nhất thiết) cung cấp đa thức nguyên p_poly tương ứng; với
mã vòng, cần cung cấp đa thức sinh cyc_poly cho bộ mã.
>> [code, added] = encode(msg, n, k, ‘linear’, genmat)
>> [code, added] = encode(msg, n, k, ‘linear/decimal’, genmat)
>> [code, added] = encode(msg, n, k, ‘hamming’, p_poly)
>> [code, added] = encode(msg, n, k, ‘hamming/decimal’, p_poly)
>> [code, added] = encode(msg, n, k, ‘cyclic’, cyc_poly)
>> [code, added] = encode(msg, n, k, ‘cyclic/decimal’, cyc_poly)
Addedlà sốcột phải thêm vào ma trận msg để msgcó kích thước vừa đủ đểtiến
hành mã hoá.
Hàm decodethực hiện giải mã thông điệp mã hoá bằng các mã khối tuyến tính
nói trên. Ngoài các thông sốgiống như đối với hàm encode, có thể đưa thêm bảng giải
mã syndrome đểsửa lỗi cho thông điệp. Nếu không có bảng giải mã, hàm decodekhông
sửa lỗi nhưng có khảnăng đánh dấu các vịtrí lỗi phát hiện được. Ví dụ:
>> [msg, err, ccode, cerr] = decode(code, n, k, ’cyclic’, cyc_poly, dec_table)
>> [msg, err, ccode, cerr] = decode(code, n, k, ‘linear’, genmat, dec_table)
Trong đó, errlà tổng sốlỗi phát hiện được, ccodelà từmã đã được sửa sai, cerrlà
ma trận xác định các vịtrí lỗi. Nếu sốlỗi vượt quá khảnăng sửa lỗi của bộmã thì err
sẽcó giá trịâm.
Ví dụ:
Sửdụng mã khối tuyến tính [4,2] đểmã hoá và giải mã một thông điệp cụthể.
Trong ví dụnày, ta tạo một thông điệp gồm 3 từmsg = [0 1; 0 0; 1 0], mã hoá,
cộng nhiễu ngẫu nhiên và giải mã. Kết quảdưới đây cho thấy thông điệp bịsai một lỗi
ởtừthứ3 và bộgiải mã đã sửa được lỗi này.
n = 4; k = 2;
genmat = [[1 1; 1 0], eye(2)]; % Ma trận sinh
msg = [0 1; 0 0; 1 0]; % Thông điệp gồm 3 từ, mỗi từ2 bit
% Tạo ba từ mã, mỗi từ 4 bit.
code = encode(msg,n,k,'linear',genmat);
noisycode = rem(code + randerr(3,4,[0 1;.7 .3]),2); % Cộng nhiễu.

75
trt = syndtable(gen2par(genmat)); % Tạo bảng giải mã syndrome
% Giải mã, sửa sai và đánh dấu các vị trí bị sai.
[newmsg,err,ccode,cerr] = decode(noisycode,n,k,'linear',genmat,trt)
err_words = find(err~=0) % Xác định từ đã bị lỗi.
Kết quả:
newmsg =
0 1
0 0
1 0
err =
0
0
1
ccode =
1 0 0 1
0 0 0 0
1 1 1 0
cerr =
0
0
1
err_words =
3
3.4.2. Xây dựng hệ thống sử dụng khối mã xoắn
Mã hóa Convolution (mã xoắn hay mã chập) là một kỹ thuật mã hóa sửa sai. Vì
vậy, ta đi mô phỏng hệ thống thông tin sử dụng mã hóa kênh là mã xoắn dưới tác động
của kênh AWGN, để từ đó có kết quả trực quan để đánh giá chất lượng của loại mã
này.
Hệ thống mô phỏng sử dụng các khối truyền thông khác nhau để thiết lập mô
hình mã Convolution có tác động của AWGN. Hệ thống mô phỏng gồm các khối sau:
1. Một nguồn phát nhị phân theo phân bố Bernoulli.
2. Một bộ mã xoắn.

76
3. Một bộ điều chế khóa dịch pha nhị phân BPSK.
4. Một kênh nhiễu cộng tính AWGN.
5. Một bộ chuyển đổi lấy ra phần thực của tín hiệu.
6. Một bộ giải mã xoắn.
7. Một bộ tính toán tỉ lệ lỗi bit.
8. Một bộ hiển thị thống kê lỗi khi chạy mô phỏng.
Các bước thực hiện mô phỏng:
* Xây dựng khối
Từ cửa sổ Simulink Library Browser, lấy các khối sau:
- Bernoulli Binary Generator: Khối này để tạo các bit ban đầu theo phân bố
Bernoulli.

Hình 3.27. Khối tạo dữ liệu ban đầu


- Convolutional Encoder: Khối mã hóa chập, sẽ mã hóa tín hiệu từ khối
Bernoulli Binary Generator.

Hình 3.28. Khối mã hóa chập

- BPSK Modulator Baseband: Khối điều chế pha nhị phân, có nhiệm vụ điều
chế tín hiệu số với bit 0 tương ứng với tín hiệu sóng có pha = 0 0 và bit 1 tương ứng
sóng mang có pha = 180° (hoặc ngược lại).

Hình 3.29. Khối điều chế BPSK

77
- BPSK Demodulator Baseband: Khối giải điều chế pha nhị phân, thực hiện
nhiệm vụ ngược lại khối BPSK.

Hình 3.30. Khối giải điều chế BPSK


- AWGN Channel: Kênh truyền là AWGN. Cộng thêm nhiễu Gauss vào thành
phần tín hiệu.

Hình 3.31. Khối kênh AWGN


- Complex to real-imag: Khối này sẽ nhận tín hiệu phức và cho ra phần thực
của tín hiệu đó.

Hình 3.32. Khối chuyển đổi tín hiệu

- Viterbi Decoder: Khối giải mã mã xoắn.

Hình 3.33. Khối giải mã chập

- Error Rate Calculation: Khối dùng để so sánh lỗi giữa tín hiệu gốc và tín
hiệu sau khi qua kênh AWGN có sử dụng mã Convolution.

78
Hình 3.34. Khối tính toán tỷ lệ lỗi bit
- Display: Khối dùng để hiển thị. Khối này sẽ hiển thị ra ba đại lượng:
+ Tỷ lệ lỗi bit
+ Tổng số bit bị lỗi
+ Tổng số bit nhận.

Hình 3.35. Khối hiển thị


Kéo và thả các khối trên sang vùng làm việc của file mô phỏng, sau đó thực
hiện việc nối các khối như hình 3.38.

Hình 3.36. Sơ đồ khối hệ thống sử dụng mã Xoắn


* Thiết lập các thông số
- Khối Bernoulli Binary Generator: Các tham số của khối này đã được trình
bầy trong phần mô phỏng mã Hamming. Với mô phỏng mã chập chúng ta thiết lập như
sau:

79
Hình 3.37. Thông số khối Bernoulli Binary Generator
- Khối Convolution Encoder:
Các tham số của khối Viterbi Decoder cũng được đặt như khối Convolution
Encoder dưới đây:

Hình 3.38. Thông số khối mã chập


Khối này có hai tham số đó là: Trellis structure (cấu trúc của mã) được xác định
qua lệnh ploly2trellis(). Ở đây ta đặt tham số này là ploly2trellis(3,[7,5]). Tham số thứ
hai là Operation mode (chế độ hoạt động), tham số này được mặc định chọn là
continous (liên tục), tức là các trạng thái được giữ nguyên sau mỗi khung được mã
hóa.

80
- Khối BPSK Modulator Baseband:
Các tham số của khối BPSK Demodulator Baseband cũng được đặt như khối
BPSK Modulator Baseband.

Hình 3.39. Tham số khối điều chế BPSK


Hai khối này có các tham số sau:
1) Phase offset (rad): Độ lệch pha. Khối điều chế BPSK mà chúng ta mô phỏng
có độ lệch pha bằng 0.
2) Samples per symbol (số mẫu trên ký hiệu): Được đặt là 1.
- Khối AWGN Channel: Các tham số của khối này đã được trình bày trong
phần mô phỏng mã Hamming, ở đây các tham số của khối được chọn như hình dưới
đây:

81
Hình 3.40. Tham số khối kênh AWGN
- Khối Complex to real-imag: Do điều chế BPSK không có phần ảo nên trong
phần thiết lập thông số của khối này, ta chọn Output là Real. Ta cũng không cần giải
điều chế tín hiệu vì khối Giải mã Viterbi có thể xử lí được tín hiệu này.

Hình 3.41. Tham số khối chuyển đổi tín hiệu


- Khối Error Rate Calculation:
+Đặt Reveive delay (trễ) = 96.
+ Target number of error (số lỗi) = 100.
+ Output data (dữ liệu ra) = Port.
+ Các thông số khác để mặc định

82
Hình 3.42. Tham số khối tính toán tỷ lệ lỗi bit
* Mô phỏng
Sau khi thiết lập các thông số như trên, ta tiến hành mô phỏng bằng cách vào
Simulation > Start. Kết quả được hiển thị trên khối Display như hình 3.45.

Hình 3.43. Tỉ lệ lỗi bit = 0.08532 với Es/No = 0.1 dB


Thay đổi giá trị Es/No bằng SNR của khối AWGN, ta thu được tỉ lệ lỗi bit khác
nhau. Sau khi thay số với các giá trị SNR trong khối AWGN, ta có bảng sau:
SNR 0.2 0.4 0.6 0.8 1 1.2
BER 0.0031 0.002336 0.00151 0.001312 0.0009583 0.0006105
Bảng 3.3. Kết quả mô phỏng sử dụng khối mã hóa Convolution
Từ bảng kết quả mô phỏng ta nhận thấy khi tỷ số tín hiệu trên tạp âm (SNR)
tăng lên thì tỷ lệ lỗi bit (BER) giảm xuống hay hệ thống thông tin có chất lượng tốt
hơn.
Các hàm MATLAB cung cấp cho việc mã hóa và giải mã chập:

83
MATLAB hỗ trợ dạng mô tả đa thức bằng cách cung cấp hàm poly2trellis cho
phép chuyển đổi dạng đa thức sang dạng cấu trúc trellis để có thể sử dụng các hàm mã
hoá và giải mã.
>> trellis = poly2trellis(conslen, codegen, feedback)
Trong đó conslen, codegen, feedback lần lượt là các chiều dài giới hạn, ma trận
sinh và véc tơ hồi tiếp. Tham số thứ ba chỉ xuất hiện trong trường hợp bộ mã hoá là
hồi tiếp.
TrongMATLABCommunicationToolbox,dạngmôtảbằngcấutrúctrellisđượcbiểud
iễn bằng một cấu trúc gồmcó 5 trường:
Tên trường trong Số chiều Ý nghĩa
cấu trúc trellis
numInputsymbols Vô hướng Số ký hiệu lối vào của bộ
mã hóa
numOutputsymbols Vô hướng Số ký hiệu lối ra của bộ
n
mã hóa 2
numStates Vô hướng Số trạng thái trong bộ mã
hóa
nextStates Ma trận kích thước Các trạng thái kế ứng với
numStates x 2
k
các tổ hợp của trạng thái
hiện tại và lối vào hiện tại.
outputs Ma trận kích thước Các lối ra ứng với các tổ
numStates x 2
k
hợp của trạng thái hiện tại
và lối vào hiện tại.
Bảng 3.4. Các trường của một cấu trúc trellis
Tên của cấu trúc do người sử dụng đặt, nhưng các trường phải có các tên như
trong bảng trên.Trong ma trận nextStates, mỗi phần tử là một số nguyên từ 0 đến
numStates – 1. Phần tử nằm ở hàng thứ i và cột thứ j chỉ thị trạng thái kế khi trạng thái
hiện tại là i – 1 và các bits lối vào có biểu diễn thập phân tương ứng là j – 1 (bit lối vào
đầu tiên là bit trọng số lớn nhất (MSB)).
Trong ma trận lối ra, phần tử ở hàng i và cột j là biểu diễn thập phân của các bit
lối ra khi trạng thái hiện tại là i – 1 và các bits lối vào có biểu diễn thập phân là j – 1.
Bit lối ra đầu tiên là bit có trọng số lớn nhất.
Mã hóa:
Mã hoá mã chập được thực hiện bằng lệnh convenc. Hàm này trả về véc tơ lối
ra code ứng với thông điệp lối vào msg, với trellis là cấu trúc mô tả bộ mã hoá.

84
>> [code final_state] = convenc (msg,trellis,init_state)
init_state là một thông số phụ, xác định trạng thái khởi đầu của thanh ghi dịch,
đó là một số nguyên trong khoảng từ 0 đến trellis.numStates – 1. Giá trị mặc định là 0.
Hàm này cũng trả về trạng thái sau cùng final_state của bộ mã hoá sau khi xử lý
xong thông điệp.
Giải mã mã chập:
MATLAB sử dụng giải thuật Viterbi để giải mã mã chập. Có hai phương pháp
giải mã là phương pháp quyết định cứng và phương pháp quyết định mềm.
 Phương pháp quyết định cứng: thông điệp mã hoá lối vào code có dạng nhị
phân và thông điệp giải mã ở lối ra decoded cũng là một vector nhị phân, không
cần thực hiện thêm các xử lý khác.
>> decoded = vitdec(code,trellis,tblen,opmode,dectype)
opmode cho biết chế độ hoạt động của bộ giải mã. Có ba khả năng lựa chọn:
‘trunc’: bộ mã hoá được xem như khởi đầu từ trạng thái all-zero (toàn bit 0). Bộ
giải mã sẽ thực hiện dò từ trạng thái ứng với độ đo tốt nhất.
‘term’: bộ mã hoá được xem như khởi đầu và kết thúc ở trạng thái all-zero. Bộ
giải mã tiến hành d2 từ trạng thái all-zero.
‘cont’: bộ mã hoá được xem như khởi đầu từ trạng thái all-zero. Bộ giải mã sẽ
thực hiện dò từ trạng thái ứng với độ đo tốt nhất. Trường hợp này có xét tới độ trễ
bằng tblen ký hiệu.
dectype cho biết phương pháp giải mã:
‘unquant’: bộ giải mã nhận vào tín hiệu thực, có dấu. Giá trị +1 biểu diễn mức
logic 0 và giá trị -1 biểu diễn mức logic 1.
‘hard’: phương pháp quyết định cứng, dữ liệu vào có dạng nhị phân.
‘soft’: phương pháp quyết định mềm, sẽ được trình bày sau.
tblen là độ sâu dò tìm của bộ giải mã.
 Phương pháp quyết định mềm: cần xác định số bit quyết định mềm nsdec, đồng
thời dữ liệu lối vào cũng bao gồm các số nguyên từ 0 đến 2^nsdec-1.
>> decoded = vitdec(code,trellis,tblen,opmode,'soft',nsdec).

85
Giá trị lối vào bằng 0 biểu thị mức 0 với độ tin cậy cao nhất, còn giá trị
2^nsdec-1 biểu thị mức 1 với độ tin cậy cao nhất. Các giá trị khác biểu thị mức 0 hoặc
mức 1 với độ tin cậy kém hơn. Ví dụ đối với trường hợp số bit quyết định mềm bằng
3, ta có bảng mô tả như sau:

Giá trị lốivào Biểuthị


0 Mức0 với độ tincậy caonhất (cấp 1)
1 Mức0 với độ tincậy cấp2
2 Mức0 với độ tincậy cấp3
3 Mức0 với độ tincậy thấp nhất
4 Mức1 với độ tincậy thấp nhất
5 Mức1 với độ tincậy cấp3
6 Mức1 với độ tincậy cấp2
7 Mức1 với độ tincậy caonhất
Bảng 3.5. Ý nghĩa của các giá trị lối vào
 Ngoài các thông số cơ bản nêu trên, người sử dụng có thể cung cấp thêm các
thông tin về các điều kiện đầu của bộ giải mã như các độ đo trạng thái đầu, các
trạng thái khởi đầu và các lối vào ban đầu. Đồng thời, hàm vitdec cũng trả về
các độ đo trạng thái cuối cùng, các trạng thái cuối và các giá trị lối vào sau
cùng.
>> decoded = vitdec(..., 'cont', ..., init_metric,init_states,init_inputs)
>> [decoded final_metric final_states final_inputs] = vitdec(..., 'cont',...)
Đoạn chương trình dưới đây minh hoạ phương pháp giải mã quyết định mềm
với số bit quyết định mềm bằng 3. Đầu tiên ta sử dụng hàm convenc để tạo một thông
điệp mã hoá bằng mã chập. Thông điệp này sau đó được cộng với nhiễu Gauss tạo
bằng hàm awgn để mô phỏng thông điệp bị nhiễu. Trước khi giải mã, ta tiến hành
lượng tử tín hiệu thu với số mức lượng tử bằng 8 để chuyển dữ liệu nhiễu thành các số
nguyên từ 0 đến 7. Dữ liệu gần bằng 0 được gán giá trị 0, dữ liệu ở gần 1 được gán giá
trị 7, các dữ liệu cách xa 0 và 1 hơn sẽ được gán các giá trị từ 2 đến 6 tuỳ theo việc
chúng gần 0 và 1 như thế nào. Cuối cùng, tiến hành giải mã bằng hàm vitdec và tính tỷ
lệ lỗi bit. Do sử dụng chế độ hoạt động liên tục (‘cont’) nên bộ giải mã sẽ tạo ra một
khoảng thời gian trễ bằng với tblen, và msg(1) sẽ tương ứng với decode(tblen+1).

86
msg = randint(4000,1,2,139); % Dữ liệu ngẫu nhiên
t = poly2trellis(7,[171 133]); % Định nghĩa cấu trúc trellis. code =
convenc(msg,t); % Mã hoá dữ liệu.
ncode = awgn(code,6,'measured',244); % Cộng nhiễu.
% Lượng tử hoá để chuẩn bị giải mã bằng phương pháp lấy ngưỡng mềm
qcode = quantiz(ncode,[0.001,.1,.3,.5,.7,.9,.999]);
tblen = 48; delay = tblen; % Độ sâu dò tìm
decoded = vitdec(qcode,t,tblen,'cont','soft',3); % Giải mã.

% Tính số lỗi và tỷ lệ bit lỗi.


[number,ratio] = biterr(decoded(delay+1:end),msg(1:end-delay))
Dưới đây là kết quả của một lần thực hiện chương trình:
number =
5
ratio =
0.0013
Cuối cùng chúng ta kết thúc phần này với một ví dụ mang tính tổng hợp về kỹ
thuật mã chập.
Vídụ: Sử dụng bộ mã hoá mã chập thuận tỷ lệ 2/3 được mô tả trong hình vẽ bên
dưới để mã hoá một chuỗi dữ liệu ngẫu nhiên. Tạo nhiễu Gauss và cộng vào dữ liệu.
Sau đó thực hiện giải mã bằng hai phương pháp quyết định cứng (chỉ có hai mức
lượng tử là 0 và 1) và quyết định mềm với số bit quyết định bằng 3. Tính tỷ lệ lỗi bit
và so sánh kết quả.

87
Hình 3.44. Bộ mã chập tỷ lệ 2/3
Trước hết cần xác định các thông số cho bộ mã hoá này. Giới hạn chiều dài của
bộ mã phải là một véc tơ có chiều dài bằng 2 vì bộ mã hoá có hai lối vào. Thanh ghi
dịch ứng với lối vào1 có 4 ô nhớ (4 bộ delay), cộng với bit lối vào hiện tại, vậy chiều
dài giới hạn ứng với lối vào 1 là 5. Tương tự, chiều dài giới hạn ứng với lối vào 2 là 4.
Vậy véc tơ chiều dài giới hạn là [5 4].
Ma trận sinh của bộ mã hoá là ma trận 2 x 3 (2 lối vào, 3 lối ra). Phần tử ở hàng
i cột j cho biết ảnh hưởng của lối vào thứ i lên lối ra thứ j. Ví dụ, để xác định phần tử ở
hàng thứ 2 và cột thứ 3, ta nhận xét thấy phần tử tận cùng bên trái và hai phần tử tận
cùng bên phải của thanh ghi dịch thứ 2 được kết nối tới bộ cộng ở lối ra 3. Vậy, phần
tử ở hàng thứ 2 cột 3 của ma trận sinh có biểu diễn nhị phân là 1011, tức là bằng 13
trong hệ bát phân. Thực hiện tương tự đến các vị trí khác, ta có ma trận sinh như sau:
[23 35 0; 0 5 13].
Để thực hiện quá trình mã hoá và giải mã , dùng hàm poly2trellis để chuyển
các thông số trên thành một cấu trúc trellis.
Dưới đây là đoạn chương trình cho ví dụ trên:
msg = randint(2*len,1); % Thông điệp nhị phân ngẫu nhiên: 2 bit mỗi ký hiệu
trel = poly2trellis([5 4],[23 35 0;0 5 13]); % Định nghĩa cấu trúc trellis code =
convenc(msg,trel) % Mã hoá thông điệp.
ncode = awgn(code,7,'measured',244); % Cộng nhiễu.
% Giải mã bằng phương pháp lấy ngưỡng cứng
hcode = (1+sign(ncode-0.5))/2; % Mức ngưỡng bằng 0.5 hdecoded =
vitdec(hcode,trel,34,'cont','hard'); % Giải mã. disp('Phuong phap lay nguong cung')
[hnumber,hratio] = biterr(hdecoded(68+1:end),msg(1:end-68))
% Giải mã bằng phương pháp lấy ngưỡng mềm
% Lượng tử hoá trước khi gỉai mã.
qcode = quantiz(ncode,[0.001,.1,.3,.5,.7,.9,.999]);
sdecoded = vitdec(qcode,trel,34,'cont','soft',3); % Giải mã. disp('Phuong phap
lay nguong mem')[snumber,sratio] = biterr(sdecoded(68+1:end),msg(1:end-68))
Kết quả thực hiện chương trình:

88
Phuong phap lay nguong cung hnumber =
168 hratio =
0.0870
Phuong phap lay nguong mem snumber =
43 sratio =
0.0223

89
CHƯƠNG IV

MÔ PHỎNG ĐIỀU CHẾ SỐ

4.1. Giới thiệu


Hệ thống thông tin là hệ thống được xây dựng nhằm mục đích truyền tin tức từ
bên phát đến bên thu. Một hệ thống thông tin tổng quát gồm có ba khâu chính: Nguồn
tin, kênh tin và nhận tin. Nguồn tin là nơi sản sinh ra hay chứa các tin cần truyền đi.
Kênh tin là môi trường truyền lan thông tin, đồng thời cũng sản sinh ra nhiễu phá hủy
tin. Nhận tin là cơ cấu khôi phục lại thông tin ban đầu từ tín hiệu lấy ra ở đầu ra của
kênh tin.
Sơ đồ khối chức năng của hệ thống thông tin số đầy đủ được cho như hình dưới
đây:

Hình 4.1. Sơ đồ khối hệ thống thông tin đầy đủ


Khối điều chế là thành phần quan trọng trong một hệ thống thống thông tin số.
Khối điều chế giúp cho dòng tín hiệu số có thể truyền đi qua một phương tiện vật lý cụ
thể theo một tốc độ cho trước, với mức độ méo chấp nhận được,yêu cầu một băng
thông tần số cho phép. Khối điều chế có thể thay đổi dạng xung, dịch chuyển phổ tần
số của tín hiệu đến một băng thông khác phù hợp. Đầu vào của bộ điều chế là tín hiệu
băng gốc trong khi đầu ra của bộ điều chế là tín hiệu thông dải. Khối giải điều chế bên
thu chuyển sang dạng sóng thu được ngược lại thành tín hiệu băng gốc.
Điều chế (modulation) là làm biến đổi một tín hiệu theo một tín hiệu điều khiển
khác. Cụ thể là, tín hiệu bị biến đổi gọi là sóng mang (hay tín hiệu mang tin tức). Tín
hiệu điều khiển sóng mang (gây ra sự biến đổi) gọi là tín hiệu mang tin (hay còn gọi là

90
tin tức). Có thể định nghĩa lại là, điều chế là quá trình làm thay đổi các thông số của
sóng mang theo tín hiệu mang tin.
Điều chế số là quá trình một trong ba thông số biên độ, tần số và pha của sóng
mang được thay đổi theo tín hiệu (hay luồng số) đưa vào điều chế để thông tin của
sóng mang phù hợp với đường truyền.

Hình 4.2. Sơ đồ mô tả quá trình điều chế và giải điều chế số


Tùy theo các thông số được sử dụng để mang tin có thể là: biên độ, tần số hay
pha hay tổ hợp giữa chúng mà có các kiểu điều chế khác nhau: ASK, FSK, PSK,
QAM…
- Điều chế khóa dịch biên độ ASK (Ampitude Shift Keying): sóng điều biên
được tạo ra bằng cách thay đổi biên độ sóng mang theo biên độ tín hiệu băng
gốc.
- Điều chế khóa dịch tần số FSK (Frequency Shift Keying): sóng điều tần được
tạo ra bằng cách thay đổi tần số sóng mang theo biên độ tín hiệu băng gốc.
- Điều chế khóa dịch pha PSK (Phase Shift Keying): sóng điều tần được tạo ra
bằng cách thay đổi pha sóng mang theo biên độ tín hiệu băng gốc.
- Điều chế vừa kết hợp biên độ và pha hay điều chế cầu phương QAM
(Quadrature Amplitude Modulation).

4.2. Điều chế QPSK


0
Trong loại điều chế này gọi là điều chế 4-PSK, khóa dịch pha 90 hay điều chế
vuông pha. Pha của sóng mang lấy một trong bốn giá trị cách đều nhau như là

 3
0, , ,
2 2 trong đó mỗi giá trị pha ứng với một cặp duy nhất của bản tin.

91
Chuỗi bit nhị phân lối vào
 dk  , dk  0,1,2,... bộ điều chế với tốc độ 1/T (bits/s),

sau đó được biến đổi nối tiếp - song song thành hai dòng bit
d I (t ) và dQ (t ) (các dòng

0 R R /2
cùng pha và lệch pha 90 ), mỗi dòng có tốc độ bít s b hay bằng nửa tốc độ của

dữ liệu đầu vào. Dòng


d I (t ) được gọi là dòng bit “chẵn”, dòng dQ (t ) được gọi là dòng

bit “lẻ”
d I (t )  d 0 , d 2, d 4 ,...

dQ (t )  d1 , d3 , d5, ...
Tín hiệu sóng mang có thể định nghĩa là:
S (t )  1/ 2d I (t ) cos(2 f 0t   / 4)  1/ 2 dQ (t )sin(2 f ct   / 4) (4.1)
Hay có thể viết dưới dạng như sau:
 (4.2)
S (t )  A cos[2 ft    (t )]
4

Hai chuỗi cơ số hai được điều biến riêng rẽ bằng hai sóng mang
d I (t ) , dQ (t )
0
chúng lệch pha nhau 90 . Hai tín hiệu điều biến, mỗi tín hiệu được coi là một tín hiệu
BPSK, được lấy tổng lại để sinh ra một tín hiệu QPSK. Vậy QPSK là sự kết hợp hai
BPSK vuông pha với nhau. Chuỗi xung điều chế với hàm cosine biên độ 1 và -1, tương

0 0 d (t )
đương với pha có hai trạng thái là 0 và 180 . Tương tự như vậy chuỗi xung Q điều
0 0
chế với hàm sine tương ứng với pha có hai trạng thái là 90 và 270 .
Phương pháp điều chế 4-PSK hay QPSK (Quadrature PSK) được giới thiệu trên
hình 4.3. Sơ đồ tạo tín hiệu QPSK dạng sin với bốn giá trị pha, xác định bởi tổ hợp
(cặp) hai bit liền nhau của tài liệu nhị phân. Tổ hợp hai bit liền nhau này được gọi là
Dibit có độ dài hai khoảng bit.
Tài liệu nhị phân trước khi đưa vào sơ đồ điều chế được tạo mã Dibit nhờ
trigger đếm đôi đơn giản. Mã Dibit được biểu thị bằng tín hiệu I và Q:
- Tín hiệu tài liệu I (cùng pha-In Phase) gồm các mức thế ứng với giá trị bit đầu
của cặp bit khảo sát.

92
- Tín hiệu tài liệu Q (bậc 2 – Quadrature) gồm các mức thế ứng với giá trị bit
thứ hai của cặp bit khảo sát.

Hình 4.3. Phương pháp điều chế QPSK


Các tín hiệu I và Q được nhân với các sóng mang lệch pha nhau 90 0 (gọi là 0 =
sin(Ct) và 90 = cos(Ct) ). Kết quả là khi lấy tổng tín hiệu ở cả hai nhánh của sơ đồ
hình 4.4, sẽ nhận được các tín hiệu 0 +90; -0 +90; 0 -90; -0 -90.
Bộ điều chế QPSK như vậy được xây dựng trên hai bộ BPSK, tạo ra hai tín hiệu
BPSKI và BPSKQ cho bộ lấy tổng để hình thành tín hiệu bốn pha. Giản đồ pha và dạng
sóng QPSK cho trên hình 4.3. Trên đồ thị cho thấy với bốn giá trị của Dibit (I-Q), tín
hiệu QPSK có bốn pha khác nhau.
Giải điều chế QPSK có thể thực hiện trên sơ đồ hình 4.4. Sơ đồ gồm bộ tái lập
sóng mang và các bộ nhân để tái lập Dibit. Mã Dibit sau đó được giải mã để chuyển về
trạng thái tài liệu thông thường.

Hình 4.4.Phương pháp giải điều chế QPSK

93
Mạch phục hồi sóng mang sẽ phục hồi lại sóng mang sinω ct từ tín hiệu nhận
được, tín hiệu này được cho thẳng vào mạch nhân I và được làm lệch pha 90° trước khi
vào mạch nhân Q, tín hiệu ra ở các mạch nhân được đưa vào mạch lọc hạ thông để loại
bỏ thành phần tần số cao, các thành phần DC sẽ được tổng hợp ở mạch tổng để cho lại
dòng dữ liệu.
Bộ tái lập sóng mang (hình 4.5) bao gồm:

Hình 4.5. Sơ đồ tái lập sóng mang cho giải điều chế QPSK
- Hai sơ đồ lấy bình phương ( ) 2 để chuyển các tín hiệu khác pha về cùng một
pha.
- Vòng giữ pha PLL phát lại nhịp với tần số gấp bốn tần số mang.
- Bộ dịch pha  để hiệu chỉnh pha.
- Bộ chia hai chung để đưa tần số tín hiệu tái lập còn gấp đôi tần số sóng mang.

Hai bộ chia hai với nhịp điều khiển đếm lệch pha 90 0 (lấy từ Q đến Q của bộ
chia 2 chung) để tạo các sóng mang tái lập lệch pha nhau 900.
Sơ đồ điều chế QPSK có độ phức tạp cao, được sử dụng chủ yếu trong modem
truyền số liệu và trong kỹ thuật radio số.
Hệ thống có các đặc trưng sau:
- Sai số ít hơn phương pháp FSK.
- Phổ cực tiểu của tín hiệu điều chế (FW) bằng nửa tốc độ truyền bit (=Fb/2).
- Hiệu suất truyền = 2 (xác định bằng (Fb/ FW) = 2).
- “Tốc độ Baud” được định nghĩa như tốc độ điều chế bằng nửa tốc độ truyền
(=Fb/2).
Một trong bốn giá trị pha của sóng mang tương ứng với hai bit dữ liệu hay hai
bit trên một kí hiệu. Tốc độ ký hiệu trong QPSK là một nửa tốc độ bit. Cả hai nhánh
dữ liệu có thể được mang đi với một lượng như nhau trong dải băng thông hạn chế.

94
Trong QPSK, pha sóng mang có thể thay đổi chỉ một lần duy nhất trong mỗi 2T
(s), trong khoảng T(s) pha sóng mang giữ nguyên không đổi.

4.3. Điều chế QAM


Điều chế biên độ vuông góc QAM là phương pháp điều chế kết hợp giữa điều
chế biên độ ASK và điều chế pha PSK. Trong phương thức điều chế này, ta thực hiện
điều chế biên độ nhiều mức 2 sóng mang mà 2 sóng mang này được dịch pha 1 góc
90o . Tín hiệu tổng của 2 sóng mang này có dạng vừa điều biên vừa điều pha:
Q1  t   a  t  .cos 0t  1  t   (4.3)
Q2  t   b  t  .sin  0t   2 (t ) (4.4)
Tín hiệu s(t) là tổng của 2 thành phần ss(t) và sc(t) và được biểu diễn như sau:
  
Q  t   Q1  t   Q2  t   a  t  .cos  0t  1 (t )  b  t  .sin  0t  2 (t ) (4.5)
Nhờ có biên độ thay đổi mà các trạng thái pha của sóng mang đã cách xa nhau,
do vậy khả năng mắc lỗi sẽ giảm, đây cũng chính là ưu điểm của QAM.
a) Điều chế

Hình 4.6.Sơ đồ nguyên lý điều chế tín hiệu M-QAM


Bộ chuyển đổi SPC chuyển đổi tín hiệu điều chế vào thành phần 2 chuỗi tín
hiệu NRZ song song. Bộ biến đổi 2/L có chức năng chuyển đổi chuỗi NRZ thành
chuỗi tín hiệu có L=√ M mức. Vói L=4 thì M=16, ta có điều chế 16-QAM, và L=8 thì
M=64, ta có điều chế 64-QAM.

95
Hình 4.7. Biểu đồ không gian tín hiệu 16-QAM

Hình 4.8.Biểu đồ không gian tín hiệu QAM nhiều trạng thái
 Mạch điều chế 8 - QAM
Hệ thống 8 - QAM điều chế tín hiệu trên cơ sở tổ hợp Tribit. Một nhóm trong
chúng thay đổi biên độ và hai nhóm còn lại thay đổi về phía pha. Tín hiệu điều chế sẽ
nhận bốn pha và hai biên độ khác nhau.

96
Hình 4.9. Sơ đồ khối mạch điều chế 8-QAM
Trong mạch điều chế này a,b xác định cực tính của tín hiệu ra ở mạch biến đổi,
riêng bit c đuợc đưa thẳng vào hai mạch biến đổi mà không qua mạch đảo như ở PSK
8 pha, nếu c =1 cả hai lối ra có biên độ cao và nếu c =0 cả hai lối ra có biên độ thấp.
Như vậy, với 8-QAM, các tín hiệu ở các lối ra của mạch biến đổi luôn có cùng biên độ.

Hình 4.10. Giản đồ vị trí các điểm đặc trưng các tribit
Các tín hiệu ra của 8-QAM có 2 biên độ và 4 pha khác nhau.
So sánh các cách điều chế QAM và PSK người ta thấy QAM tốt hơn về mặt tỉ
số tín hiệu nhiễu. Thí dụ với hệ thống 8-QAMxác suất lỗi là 10 -8trong lúc 16-PSK xác
suất này là 10-4. Do đó trong các hệ thống truyền với vận tốc cao người ta thường dùng
cách điều chế QAM hơn.
 Mạch điều chế 16-QAM

Hình 4.11. Sơ đồ khối Mạch điều chế 16-QAM

97
Trong sơ đồ, mạch chia bit chia tổ hợp 4 bit theo hai kênh vào hai mạch biến
đổi 2 ra 4 mức, các bit a,b xác định cực tính tín hiệu ra và các bit c,d xác định biên độ.
a,b = 0, tín hiệu ra âm c,d = 0 biên độ = 0,22 V.
a,b = 1 tín hiệu ra dương c,d = 1 biên độ = 0,821 V.
Mỗi lối ra của mạch biến đổi có thể có 1 trong 4 tín hiệu ±0,22 hoặc ±0,821.
Mạch LPF loại bỏ các họa tần. Các tín hiệu sau đó vào mạch điều chế cân bằng như
trong các phần trước và ở lối ra ta có 1 trong 16 tín hiệu, các tín hiệu này nhận 3 giá trị
biên độ và 12 góc pha khác nhau, khoảng cách các góc pha là 30°.
Với cách điều chế 16-QAM, mỗi 4 bit tương ứng một tín hiệu ra nên vận tốc bit
bằng 4 lần vận tốc baud. Nếu chọn vận tốc baud là 2400 baud/s để thỏa băng thông của
kênh thoại thì vận tốc bit là 9600 bps và hiệu suất băng thông là 4 bps/Hz. Trong
trường hợp này băng thông tín hiệu trong khoảng từ 500 Hz (1700 Hz - 1200 Hz) đến
2900 Hz (1700 Hz + 1200 Hz).

Hình 4.12. Giản đồ 16-QAM


Trong giản đồ trên góc A xác định bởi:

A  tan 1
0.22
 15 (4.6)
0.821
b) Giải điều chế
Tín hiệu M-QAM vào:
Q ( t ) =a ( t ) . cos ω 0 t +b ( t ) . sin ω0 t (4.7)
Tín hiệu chuẩn:
Qref 1 ( t )=2. cos ω0 t và Qref 2 ( t )=2. sin ω 0 t . (4.8)
Sau khi loại bỏ thành phần hài bậc cao ở các bộ lọc thông thấp ta sẽ có:

98
Q LPF1 ( t )=a ( t ) và Q LPF2 ( t ) =b ( t )

Hình 4.13. Sơ đồ nguyên lý giải điều chế M-QAM


Biên độ của tín hiệu giải điều chế có L= √ M mức, trong đó M là số trạng thái tín
hiệu. Tín hiệu L mức được biến đổi bởi bộ biến đổi ADC thành n/2 tín hiêu 2 mức,
trong đo L=2n/2 và M=L2. Với 16-QAM thì n=4, L=4 và với 64-QAM thì n=6, L= 8. Từ
n tín hiệu này, bộ biến đổi PSC sẽ tạo nên tín hiệu giải điều chế.
Sơ đồ điều chế QAM có độ phức tạp cao, được sử dụng chủ yếu trong modem
truyền số liệu (kiểu CCITT V22bis, CCITT V29, CCITT V32, CCITT V33, BELL
209) và trong kỹ thuật radio số.
Hệ thống có các đặc trưng sau:
- Sai số ít hơn phương pháp PSK.
- Phổ cực tiểu của tín hiệu điều chế (F W) bằng 1/n tốc độ truyền bit (=F b/n), với
n là số bit khảo sát điều chế, ví dụ, n = 3 cho 8QAM, n = 4 cho 16QAM.
- Hiệu suất truyền = n (xác định bằng (Fb/ FW) = n).
- “Tốc độ Baud” được định nghĩa như tốc độ điều chế bằng 1/n tốc độ truyền
(=Fb/n).

4.4. Điều chế MSK


GSM sử dụng phương pháp điều chế khóa dịch pha cực tiểu Gaussian GMSK
(Gaussian Minimum Shift Keying). Đây là phương pháp điều chế băng hẹp dựa trên kĩ
thuật điều chế dịch pha. Tuy nhiên ta chỉ xét đến phương pháp điều chế khóa dịch pha
cực tiểu MSK (Minimum Shift Key) mà phương pháp điều chế GMSK được phát triển
dựa trên phương pháp MSK. Khóa dịch cực tiểu (MSK) là một loại đặc biệt của khóa
dịch tần số pha liên tục (CPFSK), trong đó độ lệch tần số đỉnh bằng 1/2 tốc độ bit. Nói
cách khác MSK là khóa dịch tần (FSK) pha liên tục với chỉ số điều biến 0.5, ứng với

99
khoảng cách tần số cực tiểu cho phép hai tín hiệu FSK là trực giao kết hợp và tên khóa
dịch cực tiểu ngụ ý sự tách biệt tần số cực tiểu cho phép tách sóng trực giao.
Ta có thể trình bày sóng mang đã được điều chế của tín hiệu MSK như sau:
S (t )  A *cos(c t  t  0 ) (4.9)
Trong đó:
A là biên độ không thay đổi.
c  2 f c [rad/s] là tần số góc phụ thuộc sóng mang.

 t là góc pha phụ thuộc vào luồng số liệu đưa lên điều chế.

0 là góc pha ban đầu.

Đối với điều chế MSK ta được góc pha


 t như sau:
(4.10)
 t   ki *  i (t  i * T )
i

Trong đó: Chuỗi bit đưa lên điều chế là


 ...di 1 , d , di 1
ki  1 nếu di  di 1

ki  1 nếu di  di 1

 i (t ) 
2T , T là khoảng thời gian bit.

Như vậy tín hiệu MSK nếu bit điều chế ở thời điểm xét giống bit ở thời điểm



trước đó t sẽ thay đổi tuyến tính từ 0 đến 2 , ngược lại nếu bit điều chế ở thời điểm



xét khác bit trước đó thì t sẽ thay đổi tuyến tính từ 0 đến 2 . Với T là khoảng chu kì


 (t )
bit, tại thời điểm ban đầu ta xét 0<t<T thì i sẽ thay đổi tuyến tính từ 0 đến 2 ứng


 (t )
với bit dữ liệu là “1” và i sẽ thay đổi tuyến tính từ 0 đến 2 ứng với bit dữ liệu là

“0”.

100
Hình 4.14. Phase tín hiệu MSK
Sự thay đổi góc pha ở điều chế MSK cũng dẫn đến thay đổi tần số theo quan hệ
sau:
  d (t ) / dt (4.11)

Trong đó:
 (t )  ct  t  0
Nếu chuỗi bit đưa lên điều chế không đổi ( toàn số 1 hoặc 0) ta có tần số sau:
 (4.12)
1  2 f1  c 
2T
f1  f c 
1 (4.13)
Hay: 4 *T
Nếu chuỗi bit đưa lên điều chế thay đổi luân phiên (1,0,1,0…) thì ta có tần số
sau:
 (4.14)
2  2 f 2  c 
2T
f2  fc 
1 (4.15)
Hay: 4 *T

Độ phân biệt tần số là


f  f 2  f1  1/ 2T là độ chênh lệch tần số tối thiểu để

đảm bảo tính trực giao giữa hai tín hiệu


s1 (t ) và s2 (t ) trong khoảng thời gian T. Ta

cũng có thể viết tín hiệu MSK dưới dạng:


t t (4.16)
S MSK (t )  d I (t ) cos( ) cos(2 f ct )  d Q (t ) sin( ) sin(2 f c t )
2T 2T

Trong đó
d I (t ) , dQ (t ) là các bit “chẵn”, “lẻ” của dòng dữ liệu lưỡng cực có giá
0
trị 1, -1 và chúng nuôi các nhánh cùng pha và lệch pha 90 của bộ điều chế.

101
d I (t )  d 0 , d 2, d 4 ,...

dQ (t )  d1 , d3 , d5, ...
*Sơ đồ điều chế MSK

Hình 4.15. Sơ đồ điều chế MSK

Trước hết hai hàm sóng sin có tần số


f c và 1/ 4Tb được đến bộ nhân điều chế,

kết quả cho ta hai sóng sin có pha kết hợp với tần số
f1 và f 2 như sau:
1 1
cos(2 f c t ) cos( t / 2Tb )  cos(2 f1 )  cos(2 f 2 )
2 2

f1  f c  f
f 2  f c  f
Trong đó: f  1/ 4Tb
Hai hàm sin sau đó được tách riêng bằng hai bộ lọc băng thông có tần số trung

tâm là
f1 và f 2 . Sau đó đầu ra các bộ lọc cộng chéo với nhau để được hàm trực giao

cơ sở:
1
1 (t )   cos(2 f1t )  cos(2 f 2t )
2
 f f   f f 
  sin  2 1 2 t  sin  2 1 2 t 
 2   2 
  sin( t / 2Tb )sin(2 f ct )
1
2 (t )   cos(2 f1t )  cos(2 f 2t ) 
2
 f f   f f 
 cos  2 1 2 t  cos  2 1 2 t 
 2   2 
 cos( t / 2Tb ) cos(2 f ct )

102
Sau đó các hàm
1 (t ) và 2 (t ) nhân với hai chuỗi nhị phân có tốc độ bít bằng

1/ 2Tb được phân đôi từ luồng nhị phân đưa lên điều chế để ấn định dấu cho s1 và s2

sau đó cộng hai nhánh với nhau ta được tín hiệu MSK.

Hình 4.16. Giản đồ chòm sao biểu diễn sự thay đổi pha của tín hiệu MSK

Hình 4.17. Tín hiệu MSK


4.5. Mô phỏng
4.5.1. Mô phỏng điều chế QPSK
 Cấu trúc của khối mô phỏng

103
Hệ thống mô phỏng sử dụng các khối truyền thông khác nhau để thiết lập mô
hình QPSK trên kênh truyền có tác động của nhiễu Gausse trắng cộng tính AWGN. Hệ
thống mô phỏng gồm các khối sau:
1. Một nguồn phát nhị phân theo phân bố Bernoulli
2. Một bộ mã xoắn
3. Một bộ điều chế khóa dịch pha cầu phương QPSK
4. Một kênh nhiễu Gausse trắng cộng tính AWGN
5. Một bộ giải điều chế khóa dịch pha cầu phương QPSK
6. Một bộ giải mã xoắn
7. Một bộ tính toán tỉ lệ lỗi bit
8. Một bộ hiển thị thống kê lỗi khi chạy mô phỏng
9. Hai giản đồ chòm sao để quan sát tín hiệu
 Các bước thực hiện mô phỏng
1) Xây dựng khối
Từ cửa sổ Simulink Library Browser, lấy các khối sau:
- QPSK Modulator Baseband: Điều chế tín hiê ̣u đầu vào sử dụng phương
pháp điều chế khóa dịch pha cầu phương QPSK làm thay đổi pha của tín hiệu.

Hình 4.18. Khối điều chế QPSK


- QPSK Demodulator Baseband: Thực hiê ̣n giải điều chế, khôi phục tín hiê ̣u
gốc.

Hình 4.19. Khối giải điều chế QPSK


- Scatter Plot Scope:Hiển thị các thành phần cùng pha và vuông pha của tín
hiệu điều chế. Giản đồ chòm sao mô tả sự phân bố của các điểm một cách rời rạc theo

104
thời gian của một tín hiệu điều chế, thể hiện ra các đặc điểm như hình dạng xung hoặc
sự méo của tín hiệu.

Hình 4.20. Khối giản đồ chòm sao


Các khối nguồn phát nhị phân theo phân bố Bernoulli (Bernoulli Binary
Generator), Mã xoắn(Convolutional Encoder), giải mã xoắn (Viterbi Decoder), khối
kênh truyền (AWGN Channel), khối hiển thị (Display), khối tính toán tỷ lệ lỗi (Error
Rate Calculator) Như được trình bày ở chương 3, phần mô phỏng khối mã xoắn.
Kéo và thả các khối sang vùng làm việc của file mô phỏng, sau đó thực hiện
việc nối các khối như hình vẽ:

Hình 4.21. Sơ đồ khối hệ thống sử dụng điều chế QPSK.


2) Thiết lập các thông số
-KhốiBernoulli Binary Generator:

105
Hình 4.22. Thiết lập tham số khối nguồn phát
- Khối mã xoắn:
+ Tỷ lệ mã thiết lập là 1/2 với cấu trúc được xây dựng bởi hàm poly2trellis(7,
[171 133]).
+ Chế độ hoạt động: liên tục.

Hình 4.23. Thiết lập tham số khối mã xoắn


- Khối điều chế QPSK(QPSK Modulator Baseband):
Khối này có các tham số sau:
+ Đô ̣ lê ̣ch pha (Phase offset (rad)): Đặt là pi/4.
+ Thứ tự chòm sao (Constellation ordering): Kiểu mã Gray
+ Kiểu dữ liê ̣u vào (Input type): Kiểu bit.

106
Hình 4.24. Tham số khối điều chế QPSK
- Khối kênh truyên AWGN (AWGN Channel):

Hình 4.25. Tham số khối kênh AWGN


- Khối giải điều chế (QPSK Demodulator Baseband):Các thông số để như
khối QPSK Modulator Baseband.
+ Đô ̣ lê ̣ch pha (Phase offset (rad): Đặt là pi/4.
+ Thứ tự chòm sao (Constellation ordering): Kiểu mã Gray.
+ Kiểu dữ liê ̣u vào (Input type): Kiểu bit.

107
+Kiểu quyết định: quyết định cứng.

Hình 4.26. Tham số khối giải điều chế QPSK


- Khối giải mã xoắn:

Hình 4.27. Tham số khối giải mã xoắn


- Khối Error rate calculator:

108
Hình 4.28. Tham số khối tính toán tỷ lệ lỗi bit
- KhốiKhối giản đồ chòm sao (Discrete – Time Scatter Plot Scope):
+ Sample per symbol: Số mẫu trên một ký hiê ̣u: 1.
+ Offset (samples): Đô ̣ lê ̣ch mẫu: 0.
+ Points displayed: Số điểm hiển thị: 40.
+ New points per displayed: Số điểm mới xuất hiện trên mỗi khung hiển thị: 10 

109
Hình 4.29. Tham số khối giản đồ chòm sao
3) Mô phỏng
Sau khi thiết lập các thông số như trên, ta tiến hành mô phỏng bằng cách vào
Simulation -> Start. Kết quả được hiển thị trên khối Display như hình 4.30.

Hình 4.30. Tỷ lệ lỗi bit = 0.0009107 với Es/No = 5dB


Thay đổi giá trị Es/No của khối AWGN, ta thu được tỷ lệ lỗi bít khác nhau. Sau
khi thay số với các giá trị SNR trong khối AWGN, ta có bảng sau:
Es/No 1 2 3 4 5
BER 0.1299 0.09174 0.01198 0.004284 0.0009107
Bảng 4.1. Kết quả mô phỏng sử dụng điều chế QPSK

110
Từ bảng kết quả mô phỏng ta nhận thấy khi tỷ số tín hiệu trên tạp âm (SNR)
tăng lên thì tỷ lệ lỗi bit (BER) giảm xuống hay hệ thống thông tin có chất lượng tốt
hơn.
Sự can thiê ̣p của nhiễu Gauss trắng ảnh hưởng trực tiếp đến thông lượng và chất
lượng của kênh truyền. Qua mô phỏng và quan sát giản đồ chòm sao ta thấy:
- Tỉ lê ̣ lỗi bit BER phụ thuô ̣c vào tỉ số SNR của trên truyền: SNR càng lớn, BER
càng nhỏ và ngược lại.
- Khi tín hiê ̣u điều chế chưa đưa qua kênh truyền AWGN, các điểm trên giản đồ
chòm sao là lý tưởng, chúng là các chấm xác định và không bị dao đô ̣ng ra xung quanh.

Hình 4.31. Giản đồ chòm sao khi chưa có tác động của AWGN
Nhiễu Gause trắng đã làm cho các điểm trên giản đồ chòm sao bị dao động ra
xung quanh vị trí chuẩn của nó. Mặc dù ảnh hưởng của nhiễu này chưa làm cho các
điểm trong giản đồ chòm sao lẫn vào nhau, xong nó cũng gây ảnh hưởng đến quá trình
truyền của hệ thống và quá trình khôi phục lại tín hiệu bên thu.

111
Hình 4.32. Giản đồ chòm sao khi có tác động của AWGN với Es/No = 5dB
4.5.2. Mô phỏng điều chế QAM
 Cấu trúc của khối mô phỏng
Hệ thống mô phỏng sử dụng các khối truyền thông khác nhau để thiết lập mô
hình QAM trên kênh truyền có tác động của nhiễu Gausse trắng cộng tính AWGN. Hệ
thống mô phỏng gồm các khối sau:
1. Một nguồn phát nguyên ngẫu nhiên
2. Một bộ điều chế 256-QAM
3. Một kênh nhiễu cộng tính AWGN
4. Một bộ giải điều chế 256-QAM
5. Một bộ tính toán tỷ lệ lỗi bit
6. Một bộ hiển thị thống kê lỗi khi chạy mô phỏng
7. Hai giản đồ chòm sao để quan sát tín hiệu.
 Các bước thực hiện mô phỏng
1) Xây dựng các khối
- Khối phát số nguyên ngẫu nhiên: Tạo ra các số nguyên ngẫu nhiên trong
khoảng từ [0 ; M-1]

112
Hình 4.33. Khối phát số nguyên ngẫu nhiên
- Khối QAM Modulator Baseband: Điều chế tín hiệu lối vào sử dụng phương
pháp điều chế thay đổi cả pha và biên độ tín hiệu sóng mang theo tín hiệu cần
điều chế. Lối vào có thể là các bit hoặc các số nguyên.

Hình 4.34. Khối điều chế QAM


- QAM Demodulator Baseband: Thực hiê ̣n giải điều chế, khôi phục tín hiê ̣u
gốc.

Hình 4.35. Khối giải điều chế QAM


Các khối khối kênh truyền (AWGN Channel), khối hiển thị (Display), khối tính
toán tỷ lệ lỗi (Error Rate Calculator) như được trình bầy ở phần mô phỏng điều chế
QPSK, Để tránh trùng lặp nên ở phần này chúng ta sẽ không nhắc lại.
Kéo và thả các khối đã lấy sang vùng làm việc của file mô phỏng, sau đó thực
hiện việc nối các khối như hình vẽ:

Hình 4.36. Sơ đồ khối hệ thống sử dụng điều chế QAM

113
2) Thiết lập các thông số
- Random Interger:Các tham số được thiết lập như hình dưới đây:

Hình 4.37. Tham số khối nguồn phát


- Khối điều chế QAM (QAM Modulator Baseband):
+ M-ary number: Số điểm trong chòm sao tín hiê ̣u = 2k, k: là số nguyên cho
trước. M-ary = 256. (điều chế 256-QAM).
+ Input: Xác đinh lối vào là kiểu số nguyên
+ Phase offset (rad): Chiều quay của chòm sao tín hiê ̣u, tính theo radian: 0
+ Constellation ordering: Thứ tự chòm sao: Kiểu Binary
+ Input type: Kiểu dữ liê ̣u vào: Kiểu bit.

114
Hình 4.38. Tham số khối điều chế QAM
- Khối AWGN Channel:
+ Initial seed: Khối tạo giá trị ban đầu cho bô ̣ tạo nhiễu gauss: 67.
+Mode : Es/No
+ Es/No: 35
+ Number of bit per symbol: Số bit trong 1 ký hiệu : 1.
+ Input signal power (watt): Công suất của ký hiệu lối vào: 1.
+ Symbol periol(s): Khoảng thời gian tồn tại của kí tự tính theo (s): 0.001

115
Hình 4.39. Tham số khối kênh AWGN
- Khối QAM Demodulator Baseband: Các thông số để như khối QAM
Modulator Baseband.

116
Hình 4.40. Thiết lập tham số khối giải điều chế QAM

117
- Khối Error Rate Calculator:

Hình 4.41. Tham số khối tính toán tỷ lệ lỗi bit


- Khối Display: Các thông số để mặc định.
- Khối Discrete – Time Scatter Plot Scope:
+ Sample per symbol: Số mẫu trên một ký hiê ̣u: 1.
+ Offset (samples): Đô ̣ lê ̣ch mẫu: 0.
+ Points displayed: Số điểm hiển thị: 2500
+ New points per display: Số điểm mới trên một hiển thị: 500.

118
Hình 4.42. Tham số khối giản đồ chòm sao
*Mô phỏng
Sau khi thiết lập các thông số như trên, ta tiến hành mô phỏng bằng cách vào
Simulation > Start. Kết quả được hiển thị trên khối Displaynhư hình 4.46.

Hình 4.43. Tỉ lệ lỗi bit = 0.00102 với Es/No = 30dB

119
Giản đồ chòm sao tín hiệu sau khi điều chế 256- QAM:

Hình 4.44. Giản đồ chòm sao tín hiệu sau khi điều chế 256- QAM
Giản đồ chòm sao tín hiệu sau khi điều chế và bị ảnh hưởng của nhiễu Gausse
trắng như sau:

Hình 4.45. Giản đồ chòm sao tín hiệu sau khi đi qua kênh truyền AWGN
Thay đổi giá trị Es/Nocủa khối AWGN, ta thu được tỉ lệ lỗi bít khác nhau. Sau
khi thay số với các giá trị SNR trong khối AWGN, ta có bảng sau:
Es/No 10 15 20 25 30

120
BER 0.896 0.752 0.488 0.09 0.00102
Bảng 4.2. Kết quả mô phỏng phương pháp điều chế QAM
- Sau khi mô phỏng ta thấy có thành phần nhiễu pha tác đô ̣ng trong quá trình
truyền thì vị trí các kí tự đã có sự thay đổi.
- Các kí tự nhiễu khi thu tùy vào mức độ ảnh hưởng sẽ làm cho bên thu nhầm
với các kí tự bên cạnh và gây ra lỗi kí tự sau khi giải điều chế.
- Khi chưa có thành phần nhiễu tác đô ̣ng lên kênh truyền nó không làm ảnh
hưởng đến các kí tự bên cạnh. Do đó viê ̣c giải mã bên thu sẽ không xảy ra lỗi bít.
Nhiễu Gause trắng đã làm cho các điểm trên giản đồ chòm sao bị dao động ra
xung quanh vị trí chuẩn của nó một đại lượng nào đấy. Mặc dù ảnh hưởng của nhiễu
này chưa làm cho các điểm trong giản đồ chòm sao lẫn vào nhau xong nó cũng gây
ảnh hưởng đến quá trình truyền của hệ thống và quá trình khôi phục lại tín hiệu bên
thu.
4.5.3. Mô phỏng điều chế MSK
Mô hình mô phỏng điều chế MSK qua kênh chịu tác động của nhiễu Gausse
trắng cộng tính AWGN bao gồm những thành phần sau:
- Một bộ nguồn tín hiệu MSK sử dụng khối máy phát nhị phân Bernoulli.
- Một bộ mã chập.
- Một khối điều chế băng cơ sở MSK.
- Một mô hình kênh AWGN.
- Một khối giải điều chế băng cơ sở MSK.
- Một bộ giải mã chập.
- Một khối tính toán tốc độ lỗi bit.
- Một khối hiển thị.
- Hai khối giản đồ chòm sao.
*Các khối trong sơ đồ mô phỏng
Ở phần này chỉ trình bày khối điều chế MSK, khối giải điều chế MSK. Các khối
còn lại đã được trình bày ở các phần mô phỏng ở chương 3 và mục 4.5.1, 4.5.2.
Khối điều chế tín hiệu băng cơ sở MSK (MSK modulator baseband): Thực hiện
điều chế tín hiệu sử dụng phương pháp khóa dịch pha cực tiểu.

121
Hình 4.46. Khối điều chế MSK
KhốiđiềuchếbăngcơsởMSKđiềuchếsửdụngphươngphápkhoádịch pha cực tiểu.
Lối ra là biểu diễn băng cơ sở của tín hiệu điều chế.
Khối giải điều chế tín hiệu băng cơ sở MSK: Thực hiện giải điều chế tín hiệu sử
dụng phương pháp khóa dịch pha cực tiểu. Lối ra là sự biểu diễn băng cơ sở của tín
hiệu được điều chế.

Hình 4.47. Khối giải điều chế MSK


Sơ đồ khối mô phỏng điều chế MSK:

Hình 4.48. Sơ đồ mô phỏng điều chế MSK


*Thiết lập tham số cho từng khối:
-Khối Bernoulli Binary Generator:

122
Hình 4.49. Tham số khối nguồn phát
- Khối mã xoắn (Convolutional Encoder):
+ Tỷ lệ mã thiết lập là 1/2 được xây dựng bởi hàm poly2trellis(7, [171 133])
+ Chế độ hoạt động: liên tục.

Hình 4.50. Tham số khối mã xoắn

123
- Khối điều chế MSK (MSK Modulation Baseband):

Hình 4.51. Tham số khối điều chế MSK


-Thuộctínhlốira: Lốiracóthể mộtlàvôhướng hoặc là vectơcột dựa
theokhung.Nếutham số kiểulốivào“Inputtype” được đặtlànguyên,khốisẽcập
nhậtgiátrị1và-1.Nếutham số“Inputtype” đặtlàbit,khối cập nhật vớigiátrịlà0 hoặc 1.
- Số mẫu trên ký hiệu:Khốinàycóthểchoramộtphiênbản
lấymẫunhanhcủatínhiệuđiềuchế.Số mẫu mà khối tạo ra đối với mỗi số nguyên hoặc bit
tại lối vào.Thôngsốmẫu trênkí hiệu là hệ sốlấymẫutăng, nó phải là số nguyên dương.

- Loại lối vào: Xác định dữ liệu lối vào là lưỡng cực hay nhị phân.
- Độ dịch pha (rad): Pha ban đầu của dạng sóng lối ra.

124
Khối giải điều chế MSK (MSK Demodulator Baseband):

Hình 4.52. Tham số khối giải điều chế MSK


- Lối vào và lối ra: Lối vào có thể là hoặc vô hướng hoặc vec tơ cột dựa trên
khung. Nếu thông số “Output type” đặt là nguyên thì khối có giá trị 1 và -1.
Nếu thông số “Output type” đặt là bit thì khối có giá trị 0 và 1.
- Độ dịch pha (rad): Pha ban đầu của dạng sóng điều chế.
- Số mẫu trên một kí hiệu là: Số lượng mẫu có trong mỗi kí hiệu điều chế.
- Độ dài vết ngược và trễ lối ra (traceback lenghth): Từ bên trong, khối này tạo ra
sự mô tả các mạng lưới của sơ đồ điều chế và sử dụng thuật toán Viterbi. Thông
số độ dài vết ngược - D (Traceback length), trong khối này là số các nhánh
mạng sử dụng mỗi đường dẫn độ dài vết ngược. D ảnh hưởng đến trễ đầu ra, trễ
lối ra là số các ký hiệu có giá trị 0 đứng trước giá trị giải điều chế có ý nghĩa
đầu tiên trong giá trị lối ra:
+ Nếu tín hiệu lối vào là dựa trên mẫu thì trễ bao gồm D+1 kí hiệu bằng 0.
+ Nếu tín hiệu lối vào là dựa trên khung thì trễ bao gồm D kí hiệu bằng 0.
- Loại tín hiệu lối ra: Xác định lối vào bao gồm giá trị lưỡng cực hay nhị phân.

125
- Khối kênh truyền AWGN (AWGN Channel):

Hình 4.53. Tham số khối kênh AWGN


- Khối giải mã xoắn:

Hình 4.54. Tham số khối giải mã xoắn

126
- Khối tính toán tỷ lệ lỗi bit:

Hình 4.55. Tham số khối tính toán tỷ lệ lỗi bit


*Mô phỏng
Sau khi thiết lập các thông số như trên, ta tiến hành mô phỏng bằng cách vào
Simulation > Start. Kết quả được hiển thị trên khối Display như hình sau:

Hình 4.56. Kết quả tỷ lệ lỗi bit với Es/No=5dB là 0.02886

127
Tín hiệu điều chế khi chưa đi qua kênh truyền là lý tưởng được thể hiện qua
giản đồ chòm sao như sau:

Hình 4.57. Giản đồ chòm sao tín hiệu điều chế MSK
Và khi có tác động của nhiễu khi đi qua kênh truyền thì các điểm trên giản đồ
chòm sao bị dịch chuyển từ các vị trí lý tương như hình dưới đây:

128
Hình 4.58. Giản đồ chòm sao tín hiệu MSK sau khi qua kênh AWGN
4.5.4. Các hàm hỗ trợ mô phỏng điều chế
Dưới đây là danh sách các hàm MATLAB thực hiện điều chế. Cụ thể như sau:
Tên hàm và cú pháp Chức năng Giải thích
Dpskmod(x,M,phaserot) Điều chế DPSK M: số trạng thái của ký
hiệu
Phaserot: độ xoay pha
của phép điều chế
Dpskdemod(x,M,phaserot) Giải điều chế DPSK
Fskmod(x,M,fre_sep,N,Fs, Điều chế FSK Fre_sep: khoảng cách
cont) giữa các tần số liên tiếp
N: số mẫu trên một ký
hiệu
Fs: tần số lấy mẫu, mặc
định 1
Cont: tính liên tục về
pha giũa hai ký hiệu
Fskdemod(x,M,fre_sep,N, Giải điều chế FSK
Fs)
Genqammod(x,const) Điều chế QAM theo mã Const: vector chuyển
Gray đổi
X: chuỗi các số nguyên
từ o đến length(const)-
1
Genqamdemod(y,const) Giải điều chế QAM theo
mã Gray
mskmod(x,N,data_enc,pha Điều chế MSK Data_enc: phương
se pháp mã hóa dữ liệu
mskdemod(x,N,data_enc,p Giải điều chế MSK
hase)
oqpskmod(x,phase) Điều chế OQPSK Phase: offset pha của
tín hiệu sau điều chế
oqpskdemod(x,phase) Giải điều chế OQPSK
qammod(x,M,phase) Điều chế QAM phase:offset pha của tín
hiệu sau điều chế
qamdemod(x,M,phase) Giải điều chế QAM
pskmod(x,M,phase) Điều chế PSK
pskdemod(x,M,phase) Giải điều chế PSK
Bảng 4.3. Các hàm MATLAB hỗ trợ mô phỏng điều chế số
Trước khi thực hiện điều chế số, ta phải biểu diễn nguồn dữliệu (một tập hợp M
ký hiệu rời rạc) thành một tín hiệu mà các giá trịcủa nó là các sốnguyên từ0 đến M-1.

129
Chẳng hạn, nếu thực hiện điều chếdựa trên một tập gồm 8 ký hiệu, thì nguồn ký hiệu
đầu vào phải được biểu diễn dưới dạng một vector cột gồm các sốnguyên từ0 đến 7:
>> s = [2 3 4 1 4 7 0 4 5 2]’;
Hoặc dưới dạng ma trận nếu là tín hiệu đa kênh:
>> s = [2 1;
3 5;
4 0;
2 1];
Ví dụ: Thực hiện điều chế16-QAM tín hiệu x(t )  sin(2 t )  sin(4 t ) . Sau đó thực
hiện giải điều chế16-QAM.
Để giải quyết bài toán trên, đầu tiên ta phải biểu diễn nguồn dữ liệu vào dưới
dạng một vector gồm các số nguyên từ0 đến 15. Do đó ta phải tách chuỗi bit nhị phân
thành các nhóm 4 bit (gọi là 4-tuple) rồi chuyển mỗi nhóm này thành một số nguyên
tương ứng trong khoảng từ 0 đến 15. Hàm reshapecho phép chuyển chuỗi bit thành
một ma trận 4 cột, như vậy mỗi hàng của ma trận ứng với 1 nhóm 4 bit. Hàm bi2de
cho phép chuyển các số nhị phân thành thập phân. Đoạn chương trình sau sẽ thực hiện
quá trình xử lý nguồn dữ liệu nêu trên:
% Thiết lập các thông số.
Fs = 100; % Tần sốlấy mẫu
t = [0:2*Fs+1]'/Fs; % Các thời điểm lấy mẫu
% Khởi tạo một tín hiệu tương tự là tổng của hai tín hiệu sin.
x = sin(2*pi*t) + sin(4*pi*t);
%% Chuyển đổi bit – ký hiệu
% Chuyển chuỗi bit trong vector x thành các ký hiệu k-bit (k=4)
k = 4; % Chuyển thành các 4-tuple
xsym = bi2de(reshape(x,k,length(x)/k).','left-msb');
%% Giản đồ xung
% Vẽcác ký hiệu trên giản đồ xung.
figure; % Khởi tạo một của sổ đồ họa mới.
stem(xsym(1:10)); % Vẽ giản đồ xung

130
title('Random Symbols');
xlabel('Symbol Index'); ylabel('Integer Value');

Hình 4.59. Giản đồ xung tín hiệu


Lúc này ta có thể thực hiện điều chế16-QAM:
%% Điều chế số16-QAM
M = 16;
y = qammod(xsym,M);
Sau khi điều chế ta được một vector phức y mà mỗi phần tử của nó là một trong
16 điểm trong mặt phẳng phức. 16 điểm này hình thành giản đồ sao (constellation plot)
của phương pháp điều chế QAM. Cuối cùng là quá trình giải điều chế. Sau khi giải
điều chế ta phải chuyển chuỗi ký hiệu nhận được thành chuỗi bit nhị phân bằng cách
dùng hàm de2bivà reshape.
%% Giải điều chế sửdụng phương pháp 16-QAM.
zsym = qamdemod(y,M);
%% Chuyển đổi ngược từ các ký hiệu thành chuỗi bit nhị phân
z = de2bi(zsym,'left-msb'); % Chuyển các số nguyên thành các số nhị phân 4
bit .
% Đổi ma trận z thành một vector

131
z = reshape(z.',prod(size(z)),1);
Chú ý: hàm qammod cũng như các hàm điều chế số khác trong MATLAB đều
trả về vector phức, do đó ta chưa thể vẽ được dạng sóng của tín hiệu sau khi điều chế.
Muốn vẽ dạng sóng tín hiệu sau khi điều chế, ta phải chuyển đổi dạng tín hiệu băng
gốc thu được sau khi dùng các hàm điều chế số thành tín hiệu băng dải thực. Các thông
số cần có để thực hiện điều này là tốc độ bit và tần số lấy mẫu.
Ví dụ dưới đây thực hiện vẽ dạng sóng tín hiệu sau khi điều chế ở ví dụ trước,
giả sử tốc độ ký hiệu bằng 1Kbps, tần số sóng mang bằng 10KHz, tần số lấy mẫu bằng
100KHz.
% Thiết lập các thông số
fd = 1000; % Tốc độ ký hiệu
fc = 10*fd; % Tần số sóng mang
fs = 10*fc; % Tần số lấy mẫu
len = length(y)*fs/fd; % Số mẫu của tín hiệu y
Yreal = real(y);%Tín hiệu Y1(t) là phần thực của tín hiệu điều chế băng gốc y
Yimag = imag(y);% Tín hiệu Y2(t) là phần ảo của tín hiệu điều chếbăng gốc y
% Khởi tạo vector tín hiệu
y1 = [];
y2 = [];
xtmp=[];
ztmp=[];
for k=1:length(y) % Xét từng chu kỳký hiệu
sigx=xsym(k,1)*ones(1,100); % Tạo 100 mẫu giá trịbằng x
sig1=Yreal(k,1)*ones(1,100); % Tạo 100 mẫu giá trịbằng Yreal
sig2=Yimag(k,1)*ones(1,100); % Tạo 100 mẫu giá trịbằng Yimag
sigz=zsym(k,1)*ones(1,100); % Tạo 100 mẫu giá trịbằng z
y1=[y1 sig1];
y2=[y2 sig2];
xtmp = [xtmp sigx];
ztmp = [ztmp sigz];

132
end
time = 0:(1/fs):(len-1)/fs; % Vector thời gian
ymod = y1.*cos(2*pi*fc*time)-y2.*sin(2*pi*fc*time); % Tín hiệu sau điều chế
figure;
subplot(3,1,1); plot(time,xtmp); % Vẽtín hiệu trước khi điều chế.
title('Tin hieu goc');
subplot(3,1,2); plot(time,ymod); % Vẽtín hiệu sau khi điều chế.
title('Tin hieu sau khi dieu che');
subplot(3,1,3); plot(time,ztmp); % Vẽtín hiệu sau khi giải điều chế.
title('Tin hieu sau khi giai dieu che');
Kết quảthực thi chương trình:

Hình 4.60. Tín hiệu điều chế QAM

133
CHƯƠNG V

MÔ PHỎNG KÊNH TRUYỀN

5.1. Kênh nhị phân đối xứng BSC


5.1.1. Kênh nhị phân đối xứng
Mô hình cơ bản của một hệ thống truyền thông được minh họa ở hình 5.1 gồm
có: Nguồn số liệu rời rạc, bộ mã hóa kênh kiểm soát lỗi, bộ điều chế, máy phát, kênh
vô tuyến, máy thu, bộ giải mã hóa kênh. Tùy vào ứng dụng và tính chi tiết của mô
phỏng, các phần tử khác như các bộ cân bằng, bộ đan xen, bộ giải đan xen, bộ đồng bộ
sóng mang và đồng bộ ký hiệu có thể có trong mô hình hệ thống. Bộ điều chế sắp xếp
các ký hiệu đầu vào thành một dạng sóng đầu ra. Dạng sóng phải chịu nhiều ảnh
hưởng trong kênh. Các ảnh hưởng phải tính đến là tạp âm, giới hạn băng tần, nhiễu và
pha đinh, chúng đều được đặc trưng hóa bằng các dạng sóng. Đầu vào máy thu cũng là
một dạng sóng, là dạng sóng phát kết hợp với các ảnh hưởng xấu của kênh. Vai trò của
máy thu là quan sát sóng đầu vào trong khoảng thời gian một ký hiệu hoặc một chuỗi
các ký hiệu và xác định chuỗi ký hiệu phát. Kênh trong trường hợp này được coi là
kênh dạng sóng, vì đầu vào/ra của kênh đều được đặc tính là các dạng sóng. Đặc biệt
lưu ý rằng, tất cả các thành phần hệ thống đều được đặc tính bởi các ánh xạ tất định,
ngoại trừ kênh. Kênh thực hiện sắp xếp ngẫu nhiên tín hiệu vào thành tín hiệu ra của
kênh.

Hình 5.1. Hệ thống truyền thông với mô hình kênh rời rạc
Thuật ngữ “mô hình kênh rời rạc” DCM được dùng để bao hàm tất cả các phần
tử của hệ thống truyền thông nằm giữa hai điểm A và B trong đó đầu vào tại A là một
véc tơ các ký hiệu rời rạc (chuỗi đầu vào) và đầu ra tại B là một véc tơ các ký hiệu rời
rạc khác (chuỗi đầu ra).
Các mô hình kênh rời rạc được chia làm hai loại: Kênh rời rạc không nhớ và
kênh rời rạc có nhớ.

134
Mô hình kênh rời rạc có nhớ là mô hình đáng quan tâm hơn để ứng dụng vào
tình huống ở đó việc chuyển tiếp các ký hiệu vào/ra bị tương quan theo thời gian.
Trong trường hợp này, xác suất lỗi đối với ký hiệu thứ n phụ thuộc vào có xảy ra lỗi ở
lần truyền dẫn các ký hiệu trước đó hay không.
Mô hình kênh rời rạc không nhớ được dùng để mô hình hóa các lỗi truyền dẫn
hoặc mô hình hóa các chuyển tiếp từ đầu vào kênh tới đầu ra kênh với giả định không
có tương quan thời gian trong cơ chế chuyển tiếp (nghĩa là xác suất chuyển tiếp vào/ra
cho ký hiệu đầu vào kênh thứ n không bị ảnh hưởng bởi những gì xảy ra cho bất kỳ
các ký hiệu đầu vào khác). Trong hệ thống nhị phân quyết định cứng, giả định này có
nghĩa là các lỗi bit không tương quan nhau.
Trong kênh rời rạc không nhớ, việc sắp xếp từ đầu vào tới đầu ra là tức thì và
được mô tả bằng một tập các xác suất truyền. Mô hình kênh rời rạc không nhớ đơn
giản nhất là mô hình kênh nhị phân đối xứng (BSC).
Kênh nhị phân đối xứng BSC được minh họa như hình dưới đây:

Hình 5.2. Mô hình kênh đối xứng nhị phân BSC


Đầu vào của kênh rời rạc là một chuỗi ký hiệu nhị phân, được ký hiệu là véc tơ

X. Thành phần thứ k của véc tơ này là


xk , tương ứng với đầu vào kênh thứ k, và pk

tương ứng với xác suất lỗi truyền dẫn ký hiệu thứ k. Đối với kênh không nhớ,
pk

không phụ thuộc vào k, vì vậy lỗi trên tất cả các ký hiệu đều bị ảnh hưởng bởi kênh
với cùng một kiểu. Chuỗi M ký hiệu được xử lý thông qua kênh không nhớ bằng cách
gọi mô hình kênh M lần liên tiếp. Với ký hiệu thứ k, đầu vào nhị phân là “0” thu đúng

135
là “0” với xác suất 1-
pk , và thu sai là “1” với xác suất lỗi là pk . Đầu ra kênh thứ k

được ký hiệu là
yk , và chuỗi M ký hiệu của các đầu ra được ký hiệu là véc tơ Y.

Kênh là đối xứng trong đó các số 0 và số 1 đều bị ảnh hưởng bởi kênh theo
cùng một kiểu. Lưu ý rằng kết quả của tính đối xứng là xác suất lỗi không phụ thuộc
vào ký hiệu phát, vì vậy nguồn lỗi có thể được mô phỏng riêng biệt với nguồn thông
tin (số liệu).
Đối với kênh nhị phân, quan hệ đầu vào/ra có thể được biểu diễn như sau:
Y  X E (5.1)
Trong đó X và Y là các véc tơ dữ liệu vào/ra,  là phép toán XOR, E là véc tơ

E   e1 , e2 , e3 , ...
lỗi. Cụ thể, là véc tơ nhị phân hay chuỗi có phần tử {0,1} trong đó

ek  0 biểu thị phần tử thứ k của X, xk được thu đúng ( yk  xk ), và ek  1 biểu thị phần

tử thứ k của X,
xk được thu sai ( yk  xk ). Tham số xác định hiệu năng của mô hình

kênh đối xứng nhị phân là xác suất lỗi


PE , có thể dễ dàng ước tính từ đo đạc hoặc từ

việc mô phỏng hệ thống ở mức dạng sóng. Lưu ý rằng, đối với hệ thống nhị phân, ước
tính xác suất lỗi theo Monter Carlo là trọng số Hamming của véc tơ lỗi E được chia
cho N (số lượng các phần tử trong véc tơ lỗi E).
5.1.2. Mô phỏng
 Cấu trúc khối mô phỏng
Hệ thống mô phỏng kênh truyền nhị phân đối xứng BSC sử dụng các khối
truyền thông khác nhau, bao gồm:
1. Một bộ nguồn phát nhị phân theo phân bố Bernoulli.
2. Một bộ mã hóa Hamming.
3. Một kênh nhị phân đối xứng BSC.
4. Một bộ giải mã hóa Hamming.
5. Một bộ tính toán tỉ lệ lỗi bit.
6. Một bộ hiển thị thống kê lỗi khi chạy mô phỏng.
 Các bước thực hiện mô phỏng

136
1) Xây dựng khối
Đầu tiên từ cửa sổ của chương trình Matlab, gõ lệnh simulink để sử dụng công
cụ này.
Sau đó, tạo ra một file mô phỏng mới bằng cách vào File > New > Model. Hoặc
sử dụng cụm phím tắt Ctrl +N.
Tiếp theo từ cửa sổ Simulink Library Browser, lấy các khối sau:
- Bernoulli Binary Generator:Khối nguồn, hay còn gọi là khối nhị phân
Bernoulli. Khối này tạo ra dữ liê ̣u số gồm dãy bit 0, 1 theo phân bố Bernoulli.

Hình 5.3. Khối nhị phân Bernoulli


- Hamming Encoder: Khối mã hóa Hamming, có nhiệm vụ mã hóa các bit đầu
vào thành chuỗi bit đầu ra bằng cách chèn các bit kiểm tra lỗi.

Hình 5.4. Khối mã hóa Hamming


Mã hamming: Là loại mã khối tuyến tính dạng (2m −1), (2m −1−m) có khoảng
cách tối thiểu bằng 3 và ma trận kiểm tra chẵn lẻ đơn giản có kích thước m*(2m-1)
trong đó tất cả các dãy nhị phân dài m trừ dãy toàn 0 nhìn theo cột.
- Binary Symmetric Channel: Kênh truyền nhị phân đối xứng. Khối này thực
hiện cộng nhiễu nhị phân vào trong tín hiệu vào để truyền qua kênh.

Hình 5.5. Khối kênh truyền BSC


- Hamming Decoder: Khối giải mã Hamming.

137
Hình 5.6. Khối giải mã Hamming
- Error Rate Calculation: Là khối tính toán tỉ lê ̣ lỗi bit hoă ̣c tỉ lê ̣ lỗi symbol
của tín hiê ̣u lối vào.
Khối này so sánh dữ liệu lối vào của bộ phát với dữ liệu lối vào của bộ thu. Dữ
liê ̣u ra của khối này gồm: Tốc đô ̣ lỗi bit, tổng số bit lỗi là số các bit khác nhau và số bit
được so sánh.

Hình 5.7. Khối tính toán tỷ lệ lỗi bit


- Display: Khối này dùng để hiển thị kết quả tính toán từ khối Error Rate
Calculator (khối tính toán tỷ lê ̣ lỗi bit). Khối này sẽ hiển thị ra ba đại lượng:
+ Tỷ lệ lỗi bit
+ Tổng số bit bị lỗi
+ Tổng số bit nhận.

Hình 5.8. Khối hiển thị


Kéo và thả các khối trên sang vùng làm việc của file mô phỏng, sau đó thực
hiện việc nối các khối như hình vẽ:

Hình 5.9. Mô hình kênh BSC

138
2) Thiết lập các thông số cho mỗi khối
Khối Bernoulli Binary Generator:
Khối này có các tham số sau:
1) Probability of a zero: Xác suất xuất hiện bit 0.
2) Initial seed (Giá trị khởi tạo): Giá trị khởi tạo cho máy phát bit nhị phân
ngẫu nhiên. Nó có thể là một vecto có chiều dài bằng với xác suất xuất hiện
bit 0, hoặc là vô hướng.
3) Sample time: Thời gian lấy mẫu.
4) Frame – based output: Xác định kết quả đầu ra bao nhiêu khung hoặc mẫu.
5) Samples per frame (số mẫu trên khung): Tham số này được kích hoạt khi
chúng ta tích chọn “Frame – base output”.
6) Output data type (kiểu đầu ra): Kiểu đầu ra có thể được xác định là kiểu
boolean, int8, uint8, int16, uint16, int32, uint32, single, or double. Theo mặc
định kiểu double sẽ được chọn.
Các tham số của khối được thiết lập như hình vẽ sau:

Hình 5.10. Thiết lập thông số cho khối tạo bit ban đầu.
Khối Hamming Encoder và Hamming Decoder:
Hai khối này có hai tham số như sau:
1) Codeword length N (chiều dài từ mã N): Ở đây chúng ta chọn chiều dài từ
mã là 7.
2) Message length K, or M-degree primitive polynomial (chiều dài bản tin hoặc
bậc M của đa thức sinh). Tạo đa thức nguyên thủy bằng cách sử dụng hàm
gfprimfd. Ở đây ta tạo đa thức sinh có bậc bằng 3.

139
Hình 5.10. Thiết lập thông số cho khối mã hóa Hamming
Khối Binary Symetric Channel:
Khối này có các tham số như sau:
- Error probability: Xác suất lỗi. Tham số này cho phép ta đặt xác suất lỗi nhị
phân (từ 0 đến 1) để cộng nhiễu nhị phân vào tín hiệu lối vào.
- Initial seed: Giá trị khởi tạo cho bộ phát số nguyên ngẫu nhiên.
- Output error vector: Vec tơ lỗi đầu ra. Tham số này được kích hoạt nếu muốn
khối có thêm một đầu ra là vec tơ lỗi.
- Output datatype: Kiểu dữ liệu ra. Được chọn là kiểu double.

Hình 5.11. Thiết lập thông số khối kênh BSC


Khối Error Rate Calculation thiết lập thông số như hình vẽ (ở đây, số lượng
bit lỗi khi đạt đến 100 thì quá trình mô phỏng sẽ dừng lại):

140
Hình 5.12. Thông số của khối tính toán lỗi
Khối Display: Khối hiển thị

Hình 5.13. Thông số khối hiển thị


- Ở đây chúng ta đặt tham số format (định dạng) kết quả hiển thị mặc định là kiểu
short và tham số Decimation (cách hiển thị dữ liệu), nó được mặc định là 1 tức
là cho phép hiển thị tât cả các điểm đầu vào.
Sau khi thiết lập các thông số như trên, ta tiến hành mô phỏng bằng cách vào
Simulation -> Start. Kết quả được hiển thị trên khối Displayvới tỷ lệ lỗi bit là
0.0009008.

141
Hình 5.14. Kết quả chạy mô phỏng kênh BSC
Chúng ta có thể thay đổi các tham số của các khối để thấy sự thay đổi về tỷ lệ
BER hiển thị trên khối Display.
Thực hiện mô phỏng bằng hàm MATLAB:
MATLAB thực hiện mô phỏng loại kênh truyền này bằng cách dùng hàm
bscvới các thông sốnhập là tín hiệu nhịphân truyền qua và xác suất đảo bit p.
Nếu muốn mô phỏng kênh truyền đảo bit nhịphân với các tính chất thống kê
liên quan đến sốbit lỗi trong một từmã, ta có thểdùng hàm randerr. Hàm này tạo ra
một ma trận gồm các phần tử0 hoặc 1. Nếu ta xem mỗi hàng của ma trận ứng với một
từmã thì sốphần tử1 trong mỗi hàng sẽbiểu diễn sốbit lỗi trong mỗi từmã. Ta có thểquy
định sốbit lỗi trong một từmã với một xác suất cho trước.
Ví dụ: Khảo sát mã chập bằng cách sử dụng mô hình kênh truyền đảo bit nhị
phân với xác suất đảo bit là 0.01.
t = poly2trellis([4 3],[4 5 17;7 4 2]); % Mã hoá Trellis
msg = ones(10000,1); % Dữ liệu mã hóa
code = convenc(ones(10000,1),t); % Mã hóa bằng mã chập.
[ncode,err] = bsc(code,.01); % Tạo các lỗi bit.
numchanerrs = sum(sum(err)) % Tổng số lỗi của kênh truyền
dcode = vitdec(ncode,t,2,'trunc','hard'); % Giải mã.
[numsyserrs,ber] = biterr(dcode,msg) % Số lỗi sau khi giải mã
Kết quả:
numchanerrs =
144
numsyserrs =
28
ber =

142
0.0028

5.2. Kênh AWGN


Thuật ngữ tạp âm (noise) mô tả các tín hiệu điện không mong muốn xuất hiện
trong hệ thống. Sự xuất hiện của tạp âm làm giảm khả năng tách chính xác của các tín
hiệu phát và vì vậy, làm giảm tốc độ truyền dẫn thông tin. Tạp âm được tạo ra từ nhiều
nguồn khác nhau, nhưng có thể phân loại thành hai loại chính là nhân tạo và tự nhiên.
Nguồn tạp âm nhân tạo xuất hiện từ các nguồn đánh lửa, chuyển mạch hay các phát xạ
điện từ. Tạp âm tự nhiên gồm tạp âm xuất hiện trong các mạch hay linh kiện điện tử,
xáo động khí quyển hay các nguồn thiên hà. Thiết kế các mạch điện, thiết bị hay hệ
thống cho phép loại bỏ hoặc giảm nhỏ đáng kể ảnh hưởng của các tạp âm bằng cách
nối đất, chọn vị trí đặt thiết bị hay sử dụng các phương pháp lọc. Tuy nhiên, có một
nguồn tạp âm tự nhiên không thể loại bỏ là tạp âm nhiệt. Tạp âm nhiệt xuất hiện do
chuyển động của các điện tử ở trong tất cả các linh kiện điện tử như điện trở, dây dẫn
hay các phần tử dẫn điện khác. Sự chuyển động ngẫu nhiên và độc lập của vô hạn các
điện tử tạo nên các đặc tính thống kê Gauss theo định lý giới hạn trung tâm. Vì vậy,
tạp âm nhiệt có thể mô tả như một quá trình ngẫu nhiên Gauss có giá trị trung bình
bằng không. Ví dụ về tạp âm Gauss với giá trị trung bình 0 và phương sai   1 được
2

miêu tả ở hình 5.15.

Hình 5.15. Mô tả tạp âm Gauss


Hàm mật độ xác suất (PDF: Probability Density Function) của một quá trình
ngẫu nhiên Gauss n(t) được biểu diễn như sau:

143
1  x2  (5.2)
pn  x   exp   2 
 2  2 

Hình vẽ 5.16 biểu diễn hàm PDF Gauss với giá trị trung bình bằng không

   0  và độ lệch chuẩn (standard deviation).

Hình 5.16. Hàm mật độ xác suất Gauss


Tạp âm trắng: Một đặc tính quan trọng của tạp âm nhiệt là mật độ phổ tần số
của nó như nhau tại mọi tần số. Tức là, nó là nguồn tạp âm phát ra một lượng công
suất như nhau trên một đơn vị băng tần tại tất cả các tần số bằng:
No (5.3)
Gn  f    W/Hz 
2
Như mô tả ở hình 5.17(a) dưới đây. Hệ số trong công thức trên chỉ thị rằng

Gn  f  N o thì được gọi là mật độ phổ


là một hàm mật độ phổ công suất hai phía còn
công suất tạp âm. Tạp âm với công suất có mật độ phổ đều như vậy được gọi là tạp âm
trắng (white noise).

Hình 5.17. Mật độ phổ công suất và hàm tự tương quan của tạp âm trắng
Hàm tự tương quan của tạp âm trắng là phép biến đổi Fourier ngược của mật độ
phổ công suất tạp âm cho bởi:

144

No (5.4)
Rn     
1
 G  f    G  f  e
n n
j 2 f 
df 
2
  


Như vậy, hàm tự tương quan của tạp âm trắng là một hàm xung delta tại   0

được nhân với trọng số


N o 2 . Để ý rằng Rn     0 với mọi   0 nên bất kỳ hai mẫu

khác nhau nào của tạp âm trắng đều không tương quan với nhau bất kể chúng gần nhau
đến mức nào. Do tạp âm nhiệt được cộng với tín hiệu nên nó còn được gọi là tạp âm
cộng (additive noise). Tổng hợp các đặc tính của tạp âm nhiệt ở trên chúng ta có thể
tóm tắt lại rằng tạp âm nhiệt trong các hệ thống thông tin là tạp âm Gauss trắng cộng
(AWGN: Additive White Gaussian Noise).
Việc mô phỏng kênh truyền AWGN như được trình bầy ở chương 4, phần mô
phỏng điều chế QPSK có tác động của kênh AWGN.
Hàm MATLAB hỗ trợ mô phỏng kênh AWGN:
Kênh truyền AWGN trong MATLAB được mô phỏng bằng hàm awgn. Hàm
này sẽ cộng nhiễu Gauss vào một tín hiệu cho trước (có thể là tín hiệu thực hay phức),
mức công suất nhiễu do người sử dụng quy định thông qua hai thông số nhập:
- Mức công suất tín hiệu phát (đơn vị mặc định là dBW, hoặc có thể dùng đơn
vị W).
- Tỷ số SNR (đơn vị mặc định là dB)
Cú pháp của hàm awgn như sau:
>> awgn(X,SNR,SigPower,State,PowerType)
Trong đó:
X là tín hiệu phát.
SNR là tỷ số công suất tín hiệu trên nhiễu (tính bằng dB).
SigPowercho biết công suất tín hiệu vào (dBW), hoặc nếu SigPower =
‘measured’ thì MATLAB sẽ đo công suất tín hiệu phát trước khi cộng nhiễu.
Statecho biết trạng thái của bộ phát tín hiệu ngẫu nhiên.
PowerTypechỉ ra đơn vị của SNRvà SigPowerlà đơn vịdecibel (‘dB’) hay đơn
vịt uyến tính (‘linear’).
Ba thông số cuối không nhất thiết phải đưa vào, trong trường hợp không có các
thông số này thì xem như công suất tín hiệu phát bằng 0dBW và đơn vịcủa SNR là dB.

145
Lưu ý: Ngoài thông sốSNR, để đánh giá mức độ nhiễu của kênh truyền, người

ta cũng thường sử dụng các thông số


Eb / N o (năng lượng bit trên mật độcông suất

nhiễu) hoặc
Es / N o (năng lượng ký hiệu trên mật độ công suất nhiễu).

Ví dụ: Viết chương trình điều chế một chuỗi bit nhị phân tốc độ 8Kbps bằng
phương pháp BPSK với sóng mang 100KHz và phát đi trên kênh truyền có nhiễu

AWGN với
Eb / N o =10dB, sau đó giải điều chế. Vẽ các tín hiệu phát và thu.

Chọn tần số lấy mẫu


f s bằng 1MHz.

% Thiết lập các thông số


N = 10; % Sốbit
x = randint(N,1); % Chuỗi bit ngẫu nhiên N bit
M = 2; % Số mức của tín hiệu
k = 1; %
Fb = 8000; % Tốc độ bit
Fc = 40000; % Tần số sóng mang
Fs = 400000; % Tần số lấy mẫu
EbNo = 10; % Đơn vịdB
Nsamp = floor(Fs/Fb*N); % Số mẫu
Time = [0:1/Fs:(Nsamp-1)/Fs]; % Vector thời gian
% Xây dựng các tín hiệu
% Tín hiệu tin tức
xmsg = zeros(1,Nsamp);
for i=1:Nsamp
xmsg(i) = x(floor((i-1)*Fb/Fs)+1);
end
% Sóng mang
xcar = cos(2*pi*Fc*Time);
% Tín hiệu điều chếBPSK
ytx = (2*xmsg-1).*xcar;

146
% Cộng nhiễu
snr = EbNo + 10*log10(k) - 10*log10(Nsamp);
ynoisy = awgn(ytx,snr,'measured');
% Giải điều chế
ytmp = ynoisy.*xcar; % Nhân với sóng mang
[num,den]=butter(2,Fc/(Fs/2));% Bộlọc thấp Butterworth bậc 2, tần số cắt Fc
ztmp = filter(num,den,ytmp); % Lọc bỏ tần sốcao
for i = 1:length(x) % Lấy mẫu và quyết định
if ztmp(floor(((i-1)/Fb+1/2/Fb)*Fs)) > 0 % Lấy mẫu ở giữa bit
z(i) = 1; % Ngưỡng quyết định là 0
else
z(i) = 0;
end
end
xdemod = zeros(1,Nsamp);
for i=1:Nsamp
xdemod(i) = z(floor((i-1)*Fb/Fs)+1);
end
figure;
subplot(4,1,1); plot(Time,xmsg); % Vẽ tín hiệu trước khi điều chế.
title('Tin hieu goc');
subplot(4,1,2); plot(Time,ytx); % Vẽtín hiệu sau khi điều chế.
title('Tin hieu sau khi dieu che');
subplot(4,1,3); plot(Time,ynoisy); % Vẽtín hiệu thu được.
title('Tin hieu den may thu');
subplot(4,1,4); plot(Time,xdemod); % Vẽ tín hiệu sau khi giải điều chế.
title('Tin hieu sau khi giai dieu che');
Kết quả thực thi chương trình:

147
Hình 5.18. Tín hiệu điều chế BPSK phía phát và thu có tác động của nhiễu AWGN
5.3. Kênh Fading Rayleigh
5.3.1. Kênh fading Rayleigh
Hàm truyền đạt của kênh thực chất là mô ̣t quá trình xác suất phụ thuô ̣c cả thời
gian và tần số. Biên đô ̣ hàm truyền đạt của kênh tại mô ̣t tần số nhất định sẽ tuân theo
phân bố Rayleigh nếu môi trường truyền dẫn thỏa mãn các điều kiê ̣n sau:
+ Môi trường truyền dẫn không có tuyến trong tầm nhìn thẳng, có nghĩa là
không có tuyến có công suất tín hiê ̣u vượt trô ̣i.
+ Tín hiê ̣u ở máy thu nhâ ̣n được từ vô số các hướng phản xạ và nhiễu khác
nhau.
Trong trường hợp môi trường truyền dẫn có tuyến truyền dẫn trong tầm nhìn
thẳng thì công suất tín hiê ̣u từ tuyến này vượt trô ̣i so với các tuyến khác. Xác suất của
biên đô ̣ hàm truyền đạt của kênh sẽ tuân theo phân bố Rice.
 Mô hình kênh pha-đinh Rayleigh
Hình vẽ 5.29 mô tả một đường liên lạc giữa anten trạm gốc (BS: Base Station)
và anten trạm di động (MS: Mobile Station). Xung quanh MS có nhiều vật phản xạ
như nhà, cây, đồi núi, ... trong khi xung quanh BS lại có rất ít hoặc không có các vật

148
phản xạ do anten trạm BS được đặt trên cao. Các vật phản xạ này được gọi chung là
vật tán xạ. Liên lạc giữa BS và MS thông qua nhiều đường (path), mỗi đường chịu một
hay nhiều phản xạ, và tín hiệu đến máy thu là tín hiệu tổng hợp từ tất cả các đường
này. Do các đường có biên độ, pha và độ trễ khác nhau, nên tín hiệu truyền qua các
đường có thể kết hợp với nhau một cách có lợi hoặc không có lợi, tạo nên một sóng
đứng ngẫu nhiên. Hiện tượng này được gọi là truyền sóng pha-đinh đa đường. Kênh
truyền sóng kiểu này được gọi là kênh pha-đinh đa đường.

Hình 5.19. Mô hình truyền sóng đa đường


Tín hiệu vô tuyến luôn là tín hiệu băng thông (bandpass) và có băng tần hẹp

s t f c với đường bao


(narrowband). Tín hiệu băng thông phát đi tại tần số sóng mang
phức được biểu diễn như sau:

s  t     s  t  e j 2 fc t  (5.5)

  
Trong đó biểu diễn phép toán lấy phần thực.
x
Đặt độ dài của đường l là l và ký hiệu c là tốc độ ánh sáng thì thời gian truyền

sóng từ BS tới MS là
xl c . Giả sử độ suy hao của đường l là al , thì tín hiệu thu được

tại MS không tính đến tạp âm là:

 x  (5.6)
r  t    al s  t  l 
l  c
Thế (5.5) vào (1.6) chúng ta có:

149
  x  j 2 fc  t  xcl  
r  t    al   s  t  l  e  
  5.7 
l   c  
 xl 
 xl  j 2 fc  t  c 
  al s  t   e
  5.8
l  c

r  t
Viết lại dưới dạng:
  x  j 2 fct  j 2 fc cl 
x
r  t      al s  t  l e e   5.9 
 l  c  
   r  t  e j 2 fct   5.10 
Trong đó thành phần đường bao tín hiệu thu:
r  t    al s  t   l  e  j 2 fcl  5.11
l

xl
r t l 
c là thời gian
Được gọi là tín hiệu băng tần gốc tương đương của , còn
trễ của đường thứ l .
v, độ dài đường truyền sóng thứ l thay đổi.
Khi MS chuyển động với tốc độ


Nếu góc tới của tia thứ l so với hướng chuyển động là l thì độ dài của tuyến thay đổi
như là một hàm của tốc độ v và thời gian t là:

xl  v  cos  l   t
(5.12)
Như vậy, đường bao phức của tín hiệu thu là:
xl xl
 j 2 f c  x  xl 
r  t    al e c
s  t  l (5.13)
l  c 
 j 2 f c
xl
j 2 f c
vcos l  t
 x v  cos  l   t 
  al e c
e c
s  t  l   (5.14)
l  c c 
v  cos  l   t c
Do sự thay đổi độ trễ tín hiệu là rất nhỏ so với thang thời gian của

s  t 
tín hiệu điều chế nên chúng ta có thể bỏ qua chúng. Như vậy, nếu đặt:
 l  al e  j 2 fc l (5.15)

150
r  t 
Chúng ta có thể viết lại ở dạng rút gọn sau:
j 2
v
cos l  t (5.16)
r  t     l e 
s  t   l 
l

Với  là bước sóng của sóng mang. Hay:


r  t     l  e D  l   s  t   l  (5.17
j 2 f cos  t

l )
Từ công thức này chúng ta có thể thấy rằng vật tán xạ thứ l đã dịch tín hiệu

 f D cos  l 
phát đi l về thời gian và về tần số.
Độ dịch Doppler cực đại là:
fc v (5.18)
fD  v 
c 
Nếu MS chuyển động qua các vùng ngẫu nhiên, nó chịu ảnh hưởng thay đổi về
cường độ và pha tín hiệu với tốc độ thay đổi tuỳ thuộc vào vận tốc chuyển động của
MS. Giả sử băng tần tín hiệu là rất nhỏ (ứng với pha-đinh phẳng), bề rộng băng thông

nhỏ sao cho thời gian trễ


 l không ảnh hưởng tới tín hiệu, và ta có s  t   l   s  t  . Như

vậy, công thức (5.18) có thể viết lại thành:

r  t   s  t    l e D  l   g  t  s  t  (5.19)
j 2 f cos  t

l
Từ công thức 5.19 chúng ta viết lại được độ lợi kênh trong trường hợp MS
chuyển động như sau:
g  t    l e
j 2 f D cos  l  t (5.20)
l

Trong trường hợp không tồn tại tia trực tiếp giữa BS và MS thì hệ số  có thể

g  t
coi là các số ngẫu nhiên có giá trị trung bình bằng 0. Như vậy, là tổng của các
biến số ngẫu nhiên phức có giá trị trung bình bằng 0, và theo luật số lớn, thì khi số

g  t
lượng các tia l lớn, có thể được coi là một quá trình Gauss phức [4]. Tức là, nếu

g  t
chúng ta biểu diễn ở dạng số phức:
g  t   g I  t   jgQ  t  (5.21)

151
gI  t  gQ  t  gI  t  gQ  t 
Với và đều là các số thực, thì và sẽ đều là các quá trình
xác suất độc lập, với giá trị trung bình bằng không và phương sai như nhau

 2
gI   g2Q   g2 .
Sử dụng công thức về phân bố Gauss chúng ta có:
1  g2  (5.22)
p  gI   exp   I 2 
 2  2 g
 
1  gQ2  (5.23)
p  gQ   exp   
 2  2 g2
 
gI  t  gQ  t 
Do và là các quá trình độc lập nên chúng ta có phân bố:

1  g2  (5.24)
p  g   p  g I  p  gQ   2 exp   2 
 2  2 g 
 
Với:
g  t
2
 g I2  t   g Q2  t  (5.25)
g  t g  t   r  t  e j  t 
Chuyển sang hệ toạ độ cực chúng ta có pdf kết hợp:

r  r2  1 (5.26)
p  r ,   p  r   p     exp   2  
2  2 g  2
r  r2  (5.27)
p r  exp   , r0
2  2 g2 
Hay:
p  
1
,     (5.28)
2
r  t
Tức là, pdf của biên độ là phân bố Rayleigh, và pha-đinh kiểu này được gọi
là pha-đinh Rayleigh. Hình 5.30 mô tả phân bố Rayleigh với   1.

152
Hình 5.20. Phân bố Rayleigh
5.3.2. Mô phỏng
 Cấu trúc khối mô phỏng
1. Một nguồn phát nhị phân theo phân bố Bernoulli.
2. Một bộ mã xoắn.
3. Một bộ điều chế khóa dịch pha cầu phương QPSK.
4. Một bộ kênh fading Rayleigh.
5. Một bộ giải điều chế khóa dịch pha cầu phương QPSK.
6. Một bộ giải mã xoắn.
7. Một bộ tính toán tỉ lệ lỗi bit.
8. Một bộ hiển thị thống kê lỗi khi chạy mô phỏng.
9. Hai giản đồ chòm sao để quan sát tín hiệu.
 Xây dựng các khối
- Khối Multipath Rayleigh Fading: Tác động vào tín hiệu có ích làm cho tín
hiệu thu được bị dịch đi một khoảng hay trễ so với vị trí chuẩn của nó.

Hình 5.21. Khối fading Rayleigh


Các khối còn lại đã được trình bày ở các phần mô phỏng trước ở chương 4. Để
tránh sự lặp lại nên ở phần này sẽ không nhắc lại.
Sau khi lấy các khối và thực hiện kết nối tín hiệu các khối ta có sơ đồ mô phỏng
kênh truyền Fading Rayleigh như sau:

153
Hình 5.22. Sơ đồ khối hệ thống dưới sự tác động kênhRayleighFading
 Thiết lập các thông số
- Khối Bernoulli Binary Generator:
+ Xác suất tạo bit 0: 0.5
+ Giá trị khởi tạo: 61
+ Thời gian lấy mẫu:1e -5
+ Dữ liệu đầu ra theo khung. Số mẫu trên khung: 1
+Kiểu dữ liệu đầu ra: double

154
Hình 5.23. Thiết lập tham số khối phát số nguyên ngẫu nhiên
- Khối mã xoắn:
Tỷ lệ mã 1/2 được thiết lập thông qua hàm poly2trellis(7, [171 133])

Hình 5.24. Tham số khối mã xoắn

155
- Khối QPSK Modulator Baseband:

Hình 5.25. Thiết lập tham số khối điều chế QPSK


- Khối Multipath Rayleigh Fading Channel:
+ Maximum Doppler shift (Hz): Độ dịch Doppler tối đa: 40; Tích chọn:
Normalize gain vector to 0 dB overall gain.
+ Initial seed: Giá trị ban đầu: 12345.
+ Delay vector (s): Độ trễ: [0 2e-5].
+ Gain vector [DB]: Độ lợi: [0 -9].

HÌnh 5.26. Thiết lập tham số khối fading Rayleigh

156
- Khối QPSK Demodulator Baseband:Tất cả các thông số để mă ̣c định.

Hình 5.27. Thiết lập tham số khối giải điều chế QPSK
- Khối giải mã xoắn:
Giải mã tỷ lệ 1/2 dựa trên quyết định cứng với chế độ hoạt động là liên tục.

Hình 5.28. Tham số khối giải mã xoắn


- Khối Discrete-Time Scatter Plot Scope: Chưa bị tác động fading
+ Sample per symbol: Số mẫu trên một ký hiê ̣u: 1.
+ Offset (samples): Đô ̣ lê ̣ch mẫu: 0.

157
+ Points displayed: Số điểm hiển thị: 40.
+ New points per display: Số điểm mới trên một hiển thị: 10.

Hình 5.29. Thiết lập tham số khối giản đồ chòm sao


 Mô phỏng

Hình 5.30. Tỉ lệ lỗi bit = 0.5với độ dịch tần là 40Hz


Từ kết quả mô phỏng chúng ta có thể thấy tỷ lệ lỗi bit là khá lớn khi truyền qua
kênh bị tác động của fading Rayleigh so với các kênh truyền khác như AWGN, hay

158
kênh nhị phân đối xứng BSC. Do đó cần có các biện pháp giảm fading Rayleigh để
đảm bảo chất lượng tín hiệu khi truyền.
- Khi tín hiê ̣u điều chế chưa đưa qua kênh truyền Fading Rayleigh, các điểm
trên giản đồ chòm sao là lý tưởng, chúng là các chấm xác định và không bị dao đô ̣ng
ra xung quanh.

Hình 5.31. Giản đồ chòm sao khi chưa có tác động của
Fading Rayleigh
- Mô hình sử dụng điều chế QPSK có tác động của Fading Reyleigh dẫn tới các
điểm trên giản đồ chòm sao dịch chuyển xa vị trí lý tưởng dẫn đến tỉ số BER tăng lên
làm cho việc khôi phục và giải điều chế để được tín hiệu gốc là khó khăn.

159
Hình 5.32. Giản đồ chòm sao khi có tác động củaFading Rayleigh
Hàm MATLAB hỗ trợ mô phỏng kênh Rayleigh:
Trong Communication Toolbox của MATLAB, kênh truyền fading được mô
hình hoá dưới dạng một bộlọc. Tín hiệu truyền qua kênh truyền fading có nghĩa là tín
hiệu được lọc bởi bộlọc đặc biệt này. Quá trình mô phỏng kênh truyền fading gồm 3
bước:
 Bước 1: Tạo một đối tượng kênh truyền (channel object) mô tảcác tính chất của
kênh truyền mà ta muốn mô phỏng. Đối tượng kênh truyền là một dạng biến
trong MATLAB. Đểtạo một đối tượng kênh truyền fading ta có thểsửdụng một
trong hai hàm rayleighchanhoặc ricianchan. Sửdụng ricianchan trong trường
hợp kênh truyền có một đường truyền thẳng kết hợp với một hoặc nhiều đường
phản xạ; còn trong trường hợp chỉcó một hoặc vài đường phản xạ(non light-of-
sight), ta dùng rayleighchan.
Ví dụ, đểtạo một kênh truyền fading Rayleigh tác động lên một tín hiệu được
lấy mẫu ởtần số100000Hz, với độdịch chuyển Doppler tối đa là 130Hz, ta viết dòng
lệnh sau:
>> c1 = rayleighchan(1/100000,130);
Một cách khác đểtạo ra một đối tượng kênh truyền là copy lại một đối tượng có
sẵn, sau đó thay đổi các thuộc tính của nó nhưmong muốn.

160
>> c2 = copy(c1);
>> c2 = c1;
Trong hai cách nêu trên, cách thứ nhất sẽ tạo ra một đối tượng có các thuốc tính
độc lập với đối tượng c1, trong khi đó các thuộc tính của đối tượng tạo ra theo cách thứ
2 sẽ phụ thuộc vào đối tượng c1.
 Bước 2: Hiệu chỉnh các thông số của kênh truyền theo nhu cầu mô phỏng.
Mỗi một đối tượng kênh truyền có một số các thuộc tính riêng, chẳng hạn: loại
kênh truyền, tần số lấy mẫu, độ dịch chuyển Doppler cực đại, ... Để xem các thuộc tính
của một đối tượng kênh truyền, ta chỉ cần gõ tên của đối tượng trên cửa sổ lệnh của
MATLAB. Để truy xuất đến một thuộc tính cụ thể ta viết tên của đối tượng, sau đó là
dấu chấm, rồi đến tên của thuộc tính cần truy xuất. Như vậy, để hiệu chỉnh đối tượng
ta chỉ cần gán cho các thuộc tính của nó các giá trị mà ta mong muốn. Ví dụ:
>> c1 = rayleighchan(1/100000,130); % Khởi tạo một đối tượng kênh truyền
%fading
>> c1 % Xem các thuộc tính của c1
c1 =
ChannelType: 'Rayleigh'
InputSamplePeriod: 1.0000e-005
MaxDopplerShift: 130
PathDelays: 0
AvgPathGaindB: 0
NormalizePathGains: 1
PathGains: 0.2104- 0.6197i
ChannelFilterDelay: 0
ResetBeforeFiltering: 1
NumSamplesProcessed: 0
>> g = c1.PathGains % Lấy giá trịthuộc tính PathGains của c1.
g=
0.2104 - 0.6197i
Lưu ý:

161
- Một sốthuộc tính có tính chất “Read Only”, nghĩa là ta không thểthay đổi giá
trịcủa nó. Ví dụthuộc tính NumSamplesProcessedcho biết sốmẫu đã xửlý từlần reset
cuối cùng.
- Một sốthuộc tính có tính liên kết với nhau, khi thuộc tính này thay đồi thì
thuộc tính kia cũng thay đổi theo.
- Ngoài các thuộc tính trên, đối tượng kênh truyền fading Rician có thêm một
thuộc tính là Kfactor.
Sau đây là ý nghĩa của một sốthuộc tính quan trọng:
+ PathDelays: Các giá trịtrì hoãn của các đường dẫn.
- Giá trị đầu tiên thường chọn là 0 ứng với đường tín hiệu đến máy thu đầu tiên.
- Với môi trường trong nhà (indoor), các trì hoãn tiếp theo sẽ có giá trị từ1 đến
100ns.
- Với môi trường bên ngoài (outdoor), các trì hoãn tiếp theo sẽcó giá trị từ100ns
đến 10μs.
+ AveragePathGains: Chỉ thị độ lợi công suất trung bình cho mỗi đường fading.
- Trong mô phỏng ta thường chọn giá trị độ lợi trung bình trong khoảng -20dB
đến 0dB. Giá trị độ lợi theo dB sẽ giảm gần như tuyến tính theo thời gian trì hoãn, tuy
nhiên đường cong cụ thể sẽ phụ thuộc vào môi trường truyền.
- Để bảo đảm công suất tổng cộng của các đường bằng 1, ta phải chuẩn hoá các
độ lợi bằng thuộc tính NormalizePathGains.
+ MaxDopplerShift: Độdịch chuyển Doppler cực đại.
- Trong một số ứng dụng wireless, chẳng hạn trong hệ thống thông tin di động,
người ta thường biểu diễn thông sốnày dưới dạng tốc độdi chuyển của mobile. Nếu
mobile di chuyển với tốc độv (m/s), tần số sóng mang là f (Hz), c là tốc độ ánh sáng
(m/s) thì độ dịch chuyển Doppler cực đại sẽlà:
f d  vf / c

f d =0 ứng với kênh truyền tĩnh

+ KFactor: HệsốK của kênh truyền fading Rician là tỷsốcông suất phản xạvà
khuếch tán trên đường truyền trực tiếp (line-of-sight), biểu diễn dạng tuyến tính, không
theo dB.

162
- Giá trịtiêu biểu đối với kênh Rician: K = 1 ÷10.
- Giá trịK = 0 ứng với kênh truyền Rayleigh.
+ ResetBeforeFiltering: Là một biến Boolean, nếu bằng 1 thì đối tượng sẽ được
reset trước khi thực hiện lọc một tín hiệu. Trong trường hợp tín hiệu cần xử lý là một
chuỗi các vector thì ta sẽ phải thực hiện lọc nhiều lần. Muốn bảo đảm tính liên tục qua
các lần thực hiện, nghĩa là giữ lại các thông tin trạng thái của đối tượng, ta phải set
thuộc tính này bằng 0. Ngược lại nếu không muốn lưu các thông tin trạng thái cho lần
lọc kế tiếp, ta set thuộc tính này bằng 1, hoặc dùng lệnh reset.
 Bước 3: Đưa tín hiệu qua kênh truyền bằng cách dùng hàm filter.
Ta thực hiện hàm filtervới các thông số nhập là tên đối tượng kênh truyền và tín
hiệu phát đi.
Ví dụ: Vẽ công suất tín hiệu bị nhiễu fading khi truyền qua kênh truyền fading
Rayleigh có độ dịch chuyển Doppler cực đại bằng 100Hz, tần số lấy mẫu tín hiệu là
100KHz.
c = rayleighchan(1/10000,100); % Khởi tạo đối tượng kênh truyền
sig = j*ones(2000,1); % Tín hiệu phát
y = filter(c,sig); % Đưa tín hiệu qua kênh truyền.
C % Xem các thuộc tính của kênh truyền.
% Vẽcông suất tín hiệu nhiễu theo số mẫu.
plot(20*log10(abs(y)))
Kết quảthực thi chương trình:
c=
ChannelType: 'Rayleigh'
InputSamplePeriod: 1.0000e-004
MaxDopplerShift: 100
PathDelays: 0
AvgPathGaindB: 0
NormalizePathGains: 1
PathGains: -1.1700+ 0.1288i
ChannelFilterDelay: 0

163
ResetBeforeFiltering: 1
NumSamplesProcessed: 2000

Hình 5.33. Công suất tín hiệu bị fading


5.4. Nhiễu ồn pha
5.4.1. Nhiễu ồn pha
Hiện tượng ồn pha xẩy ra do nhiều nguyên nhân như: do nội tại trong hệ thống,
do hiệu ứng Doppler vì khoảng cách truyền trong thông tin vô tuyến là rất lớn, hay do
các yếu tố của môi trường. Khi có hiện tượng ồn pha xảy ra, tín hiệu truyền bị sai khác
đi và khi đó ở nơi thu, tín hiệu thu được sẽ bị lỗi. Điều này xảy ra khiến cho chất lượng
tín hiệu truyền giảm xuống.
Một bộ tạo dao động sẽ tạo ra một dạng sóng sin chuẩn có dạng:
s (t )  A sin(t )

Nhưng thông thường tín hiệu luôn luôn có chứa nhiễu. Điều này có thể được mô
tả bởi sự dao động biên độ của tín hiệu (thay đổi A) và bởi sử dao động pha tín hiệu.
Một cách tổng quát, chúng ta có thể miêu tả ồn tín hiệu dao động như sau:
s (t )  ( A   (t )) sin(t  (t ))
s (t )  A sin(t  (t ))

Ở đây  (t ) mô tả sự thay đổi biên độ trong tín hiệu, gọi là ồn biên độ.
 (t ) mô tả sự thay đổi pha hay ồn pha.
Chú ý rằng ồn biên độ không ảnh hưởng điểm cắt zero và ồn pha không ảnh
hưởng biên độ của tín hiệu đỉnh.

164
Một tín hiệu gốc tốt là tín hiệu có ồn biên độ nhỏ. Ồn biên độ có thể loại bỏ khi
sử dụng hệ thống điều khiển mức tự động ALC (Automatic level control), hoặc do tín
hiệu truyền qua một bộ khuyếch đại hạn chế. (lối ra của một bộ khuếch đại lý tưởng
hạn chế được xác định theo điểm cắt zero của tín hiệu và vì vậy không bị ảnh hưởng
bởi ồn biên độ).
Ồn pha là một loại khác. Khi có ồn pha trong tín hiệu là rất khó loại bỏ nó, ồn
pha là ảnh hưởng chính lên hoạt động của hệ thống. Như vậy, ta coi rằng tín hiệu chỉ
gồm có ồn pha và được biết dưới dạng:
s (t )  A sin(t  (t ))
Trong miền thời gian, nếu tín hiệu s(t) là tổng quát trên máy hiện sóng lý tưởng
thì hiệu ứng của  (t ) sẽ là nguyên nhân xê dịch thời gian trên điểm cắt zero của dạng
sóng.
5.4.2.Mô phỏng nhiễu ồn pha
 Cấu trúc của khối mô phỏng
Hệ thống mô phỏng sử dụng các khối truyền thông khác nhau để thiết lập mô
hình QAM trên kênh truyền có tác động của nhiễu Gausse trắng cộng tính AWGN. Hệ
thống mô phỏng gồm các khối sau:
1. Một nguồn phát số nguyên theo phân bố Bernoulli
2. Một bộ mã xoắn
3. Một bộ điều chế BPSK
4. Một kênh nhiễu cộng tính AWGN
5. Một bộ giải điều chế BPSK
6. Một bộ nhiễu ồn pha
7. Một bộ giải mã xoắn
8. Một bộ tính toán lỗi bit
9. Một bộ chuyển đổi dữ liệu
10. Một bộ hiển thị thống kê lỗi khi chạy mô phỏng
11. Hai khối giản đồ chòm sao để hiển thị tín hiệu.
 Các bước thực hiện mô phỏng
1) Xây dựng các khối
- Phase Noise: Cộng nhiễu ồn vào tín hiệu vào.

165
Hình 5.34. Khối nhiễu ồn pha
Các khối còn lại đã được trình bày ở các chương trước. Để tránh trùng lặp,
chúng ta không nhắc lại các khối này nữa.
Kéo và thả các khối sang vùng làm việc của file mô phỏng, sau đó thực hiện
việc nối các khối như hình vẽ:

Hình 5.35. Mô hình mô phỏng nhiễu ồn pha


3) Thiết lập thông số các khối như sau:
- Khối tạo nguồn tín hiệu:

166
Hình 5.36. Tham số khối tạo nguồn tín hiệu
- Khối mã chập: Mã hóa dữ liệu đầu vào tỷ lệ 1/2 với cấu trúc mã được thiết lập
như sau:

Hình 5.37. Tham số khối mã hóa chập


- Khối điều chế BPSK:

167
Hình 5.38. Tham số khối điều chế BPSK

168
- Khối giải điều chế BPSK:

Hình 5.39. Tham số khối giải điều chế BPSK


- Khối kênh truyền AWGN:

Hình 5.40. Tham số khối kênh truyền AWGN

169
- Phase Noise:Khối này có các tham số sau:
+Phase noise level (dBc/Hz): Xác định mức nhiễu ồn pha. Đơn vị là dBc/Hz.
+Frequency offset (Hz): Độ lệch pha, đơn vị là Hz.
+Initial seed: Giá trị khởi tạo ban đầu của khối tạo nhiễu ồn pha.
Các tham số của khối này được đặt như hình dưới đây:

Hình 5.41. Tham số khối nhiễu ồn pha


- Khối giải mã chập:

170
Hình 5.42. Tham số khối giải mã chập
Sau khi thiết lập các thông số như trên, ta tiến hành mô phỏng bằng cách vào
Simulation -> Start. Kết quả được hiển thị trên khối Display như hình sau:

Hình 5.43. Kết quả chạy mô phỏng nhiễu ồn pha với Es/No=1dB
Theo kết quả mô phỏng cho thấy với Es/No=1dB thì tỷ lệ lỗi bit là 0.003132.
Tỷ lệ này giảm đi khi tăng giá trị của Es/No hay tăng mức độ tin cậy của kênh truyền
hoặc giảm mức nhiễu ồn pha trong khối phase noise, cụ thể mức nhiễu ồn pha được
giảm từ -66 dBc/Hz xuống -120 dBC/Hz (các tham số khác giữ nguyên) thì tỷ lệ lỗi bit
giảm từ 0.003132 xuống là 0.003013.
Dưới đây là giản đồ chòm sao của tín hiệu sau khi điều chế BPSK và chưa bị
tác động của nhiễu ồn pha:

171
Hình 5.44. Giản đồ chòm sao tín hiệu sau khi điều chế BPSK
Khi tín hiệu truyền qua kênh truyền có tác động của nhiễu ồn pha, thì các điểm
trên giản đồ chòm sao sẽ bị dịch một khoảng so với vị trí ban đầu, cụ thể như sau:

Hình 5.45. Giản đồ chòm sao của tín hiệu có tác động của nhiễu ồn pha

172
Từ nghiên cứu lý thuyết cũng như kết quả mô phỏng mô hình hệ thống truyền
thông có tác động của nhiễu ồn pha cho thấy nhiễu ồn pha có ảnh hưởng xấu đến chất
lượng kênh truyền, làm gia tăng tỷ lệ lỗi bit thông tin. Từ đó phải có những biện pháp
khắc phục cũng như hạn chế sự ảnh hưởng của loại nhiễu này để tăng độ tin cậy truyền
thông tin của một hệ thống.

5.5. Mô phỏng một vài hệ thống thông tin số hiện tại


Dưới đây là một số mô hình mô phỏng hệ thống thực tế sử dụng công cụ
Simulink của MATLAB.
Một phân cấu trúc của lớp vật lý một hệ thống CDMA2000 thế hệ thứ nhất với
cấu hình vô tuyến thứ 3 của kênh cơ bản đường xuống thực hiện liên kết chuyển tiếp
giữa một trạm cơ sở và trạm di động.

Hình 5.46. Lớp vật lý của hệ thống CDMA 1xRTT


Hệ thống DVB –S.2 bao gồm mã hóa LDPC:

173
Hình 5.47. Hệ thống DVB - S2

174
Lớp vật lý của hệ thống WCDMA:

Hình 5.48. Lớp vật lý của hệ thống WCDMA

Hệ thống DVB - C:

Hình 5.49. Hệ thống DVB - C

175
Hệ thống DVB – T:

Hình 5.50. Hệ thống DVB - T


Lớp vật lý của hệ thống OFDM, bao gồm mã hóa không gian- thời gian:

Hình 5.51. Lớp liên kết vật lý của hệ thống OFDM

176
TÀI LIỆU THAM KHẢO

[1]. Simulation of Communication Systems Modeling, Methodology and Techniques,


Michel C.Jeruchim, Philip Balaban, University of California.
[2]. Digital communication systems, J.Proakis.
[3]. Mô phỏng các hệ thống thông tin số - Nguyễn Quốc Bình- Học viện Kỹ thuật
Quân sự.
[4]. Contemporary Communication Systems-Using Matlab, NXB Brooks/Cole.
[5]. Matlab và Simulink- Nguyễn Phùng Quang, NXB Khoa học kỹ thuật.
[6]. Signal and Systems with Matlab Computing and simulink modeling, fourth
edition, Steven T.Karris.
[7]. Giáo trình matlab, Phan Thanh Tao, Đại Học Bách Khoa Đà Nẵng.
[8]. MATLAB và ứng dụng trong viễn thông, Phạm Hồng Liên, Đặng Ngọc Khoa,
Trần Thanh Phương, NXB Đại Học Quốc Gia TP Hồ Chí Minh, 2006.

177

You might also like