Professional Documents
Culture Documents
Di HC Quc Gia Ha Ni TRNG Di HC C PDF
Di HC Quc Gia Ha Ni TRNG Di HC C PDF
Mục lục i
Giới thiệu 1
i
ii MỤC LỤC
7.2.2 Thiết kế mạch dải λ/4 phối hợp trở kháng . 168
7.3 Một số bài tập . . . . . . . . . . . . . . . . . . . . 184
7.3.1 Bài tập 7.1 . . . . . . . . . . . . . . . . . . 184
7.3.2 Bài tập 7.2 . . . . . . . . . . . . . . . . . . 185
vii
viii DANH SÁCH HÌNH VẼ
4.15 Phẩm chất BER theo các bậc điều chế khác nhau. . . . 98
6.7 Thiết lập các tham số với Switch trung tâm của Cisco. 149
6.8 Kết nối Ethernet server với mạng. . . . . . . . . . . . . 150
6.9 Cài đặt các đối tượng định nghĩa lưu lượng. . . . . . . 151
6.10 Lựa chọn tải server làm Individual Statisics. . . . . . . 152
6.11 Lựa chọn tải trễ Ethernet làm Global Statistics. . . . . 152
6.12 Thiết lập thời gian và chạy mô phỏng. . . . . . . . . . 153
6.13 Xem kết quả mô phỏng Server Load (bit/s). . . . . . . 154
6.14 Xem kết quả mô phỏng Etherner Delay (s). . . . . . . 155
6.15 Xem kết quả mô phỏng Etherner Delay (s). . . . . . . 156
6.16 Chạy mô phỏng cho ngữ cảnh 2. . . . . . . . . . . . . . 157
6.17 Chọn so sánh kết quả Server Load. . . . . . . . . . . . 158
6.18 Chọn so sánh kết quả Ethernet Delay. . . . . . . . . . 158
6.19 Tổng hợp kết quả mô phỏng của cả hai ngữ cảnh. . . . 159
xii
Giới thiệu
Cuốn giáo trình này được xây dựng với mục tiêu chính là cung
cấp một tài liệu tiếng Việt phục vụ cho môn học "Mô hình hóa và
mô phỏng", một môn học bắt buộc trong Khung chương trình đào
tạo cử nhân ngành Công nghệ Kỹ thuật Điện tử - Truyền thông,
Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội.
Nội dung của giáo trình ngoài việc cung cấp các kiến thức cơ
bản còn là các kiến thức về ứng dụng mô phỏng trong thực tiễn
với các bước cơ bản trong giải quyết các bài toán mô phỏng cụ thể.
Một số công cụ mô phỏng đang được dùng trong thực hành môn
học cũng được chọn lọc để trình bày trong giáo trình này.
Cấu trúc của giáo trình gồm bảy chương:
Phần 1: Các kiến thức cơ sở, gồm có:
Chương 1. Mở đầu: cung cấp một số khái niệm cơ bản nhất về
mô hình hóa và mô phỏng;
Chương 2. Các mô hình và phương pháp mô phỏng: phân loại
các mô hình và phương pháp mô phỏng;
Chương 3. Phương pháp luận mô phỏng: trình bày các bước cần
thực hiện trong việc áp dụng phương pháp mô phỏng để giải các
bài toán trên thực tế (dự án mô phỏng).
Phần 2: Một số công cụ mô phỏng phổ biến, gồm có:
Chương 4. Mô phỏng với Matlab Communication Toolbox: giới
thiệu và ứng dụng Matlab Communication Toolbox trong mô phỏng;
1
2 GIỚI THIỆU
15
16 CHƯƠNG 2. CÁC MÔ HÌNH VÀ PHƯƠNG PHÁP MÔ PHỎNG
Đối với một quá trình mô phỏng, thông thường có hai mô hình
được xây dựng: mô hình giải tích (phân tích) và mô hình mô phỏng
như biểu diễn trên Hình 2.1. Cả hai mô hình này đều mô tả tính
trừu tượng của hệ thống. Mô hình giải tích (phân tích) thường biểu
diễn ở dạng công thức toán học hay các hệ phương trình xác định
mối quan hệ vào/ra của hệ thống. Các công thức và các phương
trình này thường mô tả một phần hệ thống, và có độ chính xác trong
một phạm vi nào đó. Mô hình mô phỏng trên máy tính thường là
một tập hợp của các thuật toán để giải các phương trình trong mô
hình giải tích (phân tích). Các phương pháp số được sử dụng để
thực hiện công việc này.
ThÊp Ng¾n
ThÊp §é phøc t¹p M« h×nh Cao
Hình 2.2: Quan hệ sai số-thời gian chạy-độ phức tạp của mô hình.
hợp này, để đánh giá phẩm chất hệ thống cần thực hiện mô phỏng
nhiều lần và lấy giá trị trung bình.
Chúng ta cũng có thể phân loại các mô hình mô phỏng thành:
Mô hình mô phỏng tĩnh biểu diễn hệ thống tại một thời điểm
cụ thể hay một mô hình trong đó thời gian không phải là tham số
đáng quan tâm. Trong khi đó mô hình mô phỏng động biểu diễn
các hệ thống khi chúng biến đổi theo thời gian.
Ngoài ra, nếu mô hình thay đổi liên tục và đều chúng ta có mô
hình mô phỏng liên tục. Ngược lại nếu mô hình biến đổi theo các
bước gia tăng thì mô hình trở thành mô hình mô phỏng rời rạc.
Mô hình rời rạc tương tự như một bộ phim trong đó các khung ảnh
được biến đổi với tốc độ nhanh (30 khung/s) làm cho người xem
có cảm giác chuyển động. Tuy nhiên, trong một vở kịch biểu diễn
trực tiếp thì các cảnh diễn là liên tục. Tương tự như trường hợp
làm phim, chúng ta thường phát triển các mô hình mô phỏng rời
rạc để biểu diễn các tình huống liên tục.
một kết quả. Trong trường hợp này, mô phỏng được sử dụng để
tiết kiệm thời gian và tránh các lỗi toán học do phải thực hiện các
phép toán dài và nhàm chán.
Nếu giả thiết đầu vào của hệ thống là một dạng sóng ngẫu
nhiên, nói chính xác là nếu đầu vào hệ thống là một hàm mẫu của
một quá trình ngẫu nhiên, thì một cách tương đương có thể coi trở
kháng của điện trở là một biến ngẫu nhiên xác định bởi một hàm
mật độ xác suất xác định. Kết quả của mô phỏng này sẽ không còn
là một dạng sóng xác định và các mẫu của dạng sóng này sẽ tạo
nên một tập hợp của các biến ngẫu nhiên. Các mô phỏng trong đó
xuất hiện các giá trị ngẫu nhiên được gọi là các mô phỏng ngẫu
nhiên.
Để lấy ví dụ, chúng ta giả thiết điện áp qua một phần tử mạch
điện được ký hiệu là e(t) và mô phỏng được sử dụng để tạo ra e(t)
trong khoảng thời gian 1ms, tức là e(0, 01). Trong mô phỏng xác
định thì e(0, 01) không đổi và chúng ta có kết quả như nhau sau
mỗi lần mô phỏng.
Một ví dụ khác là hệ thống truyền dẫn số trong đó tín hiệu
thu bao gồm tín hiệu phát cộng tạp âm ngẫu nhiên. Giả thiết rằng
nhiệm vụ của chúng ta là tính xác suất lỗi dấu tại đầu ra máy thu.
Từ lý thuyết truyền dẫn chúng ta biết rằng đối với truyền dẫn tín
hiệu BPSK (Khóa dịch pha nhị phân - Binary Phase Shift Key-
ing) qua kênh AWGN (Nhiễu Gauss trắng cộng - Additive White
Gaussian Noise), thì xác suất lỗi dấu là
2Eb
PE = Q (2.1)
N0
trong đó, Eb là năng lượng dấu, N0 là mật độ phổ công suất tạp
âm một phía và Q(x) là hàm Q Gauss được định nghĩa bởi
∞ 2
1 y
Q(x) = exp − (2.2)
2π x 2
20 CHƯƠNG 2. CÁC MÔ HÌNH VÀ PHƯƠNG PHÁP MÔ PHỎNG
chất là phương pháp mô phỏng một thí nghiệm ngẫu nhiên sử dụng
các công cụ nhân tạo, tức là không yêu cầu phải lặp lại thí nghiệm
vật lý hoàn toàn.
Trong truyền thông số, mô phỏng đòi hỏi phải tạo ra các mẫu
có các dạng sóng khác nhau, xử lý các mẫu tín hiệu này qua các
mô hình với các khối chức năng trong hệ thống, và ước lượng phẩm
chất hệ thống từ các mẫu tín hiệu đầu ra tại các điểm trong mô
hình. Trường hợp phổ biến trong truyền thông số là sử dụng mô
phỏng Monte-Carlo để ước lượng tỉ số lỗi bit (BER).
u(t)
HÖ thèng y(t)
v(t)
truyÒn dÉn
w(t)
1
N
E[Ĝ{(y(t)}] = G{y(k)} (2.3)
N k=1
22 CHƯƠNG 2. CÁC MÔ HÌNH VÀ PHƯƠNG PHÁP MÔ PHỎNG
trong đó, dấu mũ biểu diễn giá trị ước lượng và N là số mẫu sử
dụng mô phỏng.
• Tạo các mẫu của chuỗi bit đầu vào b(k), k = 1, 2, ..., N, và các
mẫu tạp âm z(k), k = 1, 2, ..., N.
• Xử lý các mẫu này qua mô hình các khối chức năng của hệ
thống cần mô phỏng và tạo một chuỗi đầu ra b̃(k).
1
N
P̂e = G{b̃(k)} (2.4)
N k=1
2.4. MÔ PHỎNG MONTE-CARLO TRONG TRUYỀN THÔNG SỐ 23
Độ chính xác của các ước lượng thu được từ mô phỏng Monte-
Carlo sẽ phụ thuộc vào thủ tục ước lượng sử dụng, kích thước mẫu
N, khả năng tái tạo chính xác các mẫu đầu vào, và các giả thiết
mô hình hóa và phép tính xấp xỉ.
Để đánh giá phẩm chất của một hệ thống truyền thông số, mô
phỏng Monte-Carlo thường được sử dụng để ước lượng tỉ số BER.
Như đã thảo luận ở các phần trên, để có ước lượng chính xác của
BER, chúng ta cần tăng số lượng bit gửi đi N đến vô cùng (∞).
Tuy nhiên, việc tăng số lượng bit gửi đi đồng nghĩa với thời gian
chạy mô phỏng sẽ lâu hơn. Vì vậy, để có được sự thỏa hiệp giữa
độ chính xác của kết quả mô phỏng và thời gian chạy mô phỏng,
chúng ta mong muốn tìm được số lượng bit cần gửi đi N tương ứng
với giá trị BER mong muốn có độ chính xác cho phép. Chúng ta sẽ
nghiên cứu tìm ra số bit N này thông qua trường hợp dưới đây.
Xét một hệ thống truyền dẫn đơn giản chịu ảnh hưởng của tạp
âm. Giả thiết tín hiệu s phát đi là một hằng số và tạp âm z là một
biến ngẫu nhiên Gauss với giá trị trung bình bằng 0, phương sai
σz2 = 1. Do tạp âm z là ngẫu nhiên nên tín hiệu thu được
y =s+z (2.5)
là một biến ngẫu nhiên. Để đơn giản ta xét trường hợp s > 0, tương
đương với trường hợp gửi đi một bit thông tin ở mức điện áp cao.
Chúng ta có thể dễ dàng nhận thấy y cũng là một biến ngẫu nhiên
Gauss với giá trị trung bình s và phương sai σy2 = 1.
Giả thiết là chúng ta cần sử dụng mô phỏng Monte-Carlo để
ước lượng xác suất thu được y < 0 khi phát đi một tín hiệu s > 0
24 CHƯƠNG 2. CÁC MÔ HÌNH VÀ PHƯƠNG PHÁP MÔ PHỎNG
Trường hợp này tương tự như khi chúng ta gửi đi một tín hiệu
s = +1, nhưng do ảnh hưởng của tạp âm Gauss z trên kênh truyền
nên máy thu nhận được một mẫu tín hiệu y < 0. Để ước lượng tín
hiệu phát s, máy thu sử dụng phương pháp tách tín hiệu hợp lẽ cực
đại (maximum likelihood) thực hiện phép quyết định theo ngưỡng
tại giá trị bằng 0 (tức là quyết định s = +1 nếu y > 0 và s = −1
nếu y < 0) và cho ta kết quả s = −1. Trường hợp này xảy ra một
lỗi tách tín hiệu và xác suất P (s) = P (y < 0|s) chính là xác suất
thu lỗi của hệ thống.
Để ước lượng được xác suất lỗi P (s), chúng ta sử dụng máy
tính để tạo ra một chuỗi các biến Gauss ngẫu nhiên, có kỳ vọng
bằng 0 và phương sai bằng 1, độc lập thống kê và có phân bố giống
nhau, zk , k = 1, 2, ..., N. Cộng zk với s, chúng ta có một chuỗi N
biến ngẫu nhiên
yk = s + zk , k = 1, 2, ..., N. (2.7)
Từ các biến ngẫu nhiên tạo ra bằng máy tính này, chúng ta
mong muốn ước lượng xác suất một biến ngẫu nhiên Gauss, với kỳ
vọng s > 0 và phương sai đơn vị, nhỏ hơn 0, tức là ước lượng xác
suất yk < 0. Để thu được ước lượng xác suất, chúng ta làm phép
kiểm tra xem yk < 0 và định nghĩa một biến ngẫu nhiên mới xk có
quan hệ với yk như sau:
⎧
⎨0, nếu y ≥ 0
k
xk = (2.8)
⎩1, nếu yk < 0
Có thể nhận thấy rằng xk chính là biến biểu diễn lỗi, và ước
lượng của xác suất P (y < 0|s) có thể biểu diễn như sau:
1
N
P̂ (s) = xk (2.9)
N k=1
2.4. MÔ PHỎNG MONTE-CARLO TRONG TRUYỀN THÔNG SỐ 25
Nói cách khác, ước lượng P̂ (s) đơn giản là số các biến ngẫu
nhiên yk , k = 1, 2, ..., N nhỏ hơn 0 chia cho tổng số N biến ngẫu
nhiên.
Do ước lượng P̂ (s) là một hàm số của các biến ngẫu nhiên
xk , k = 1, 2, ..., N, nên nó cũng là một biến ngẫu nhiên. Để có được
ước lượng của xác suất lỗi P̂ (s) gần với giá trị của xác suất lỗi
P (s), chúng ta mong muốn E[P̂ (s)] = P (s) và σP̂ (s) P (s).
Chúng ta bắt đầu bằng việc xét giá trị kỳ vọng của P̂ (s)
1
N
E[P̂ (s)] = E[xk ] (2.10)
N k=1
Nhưng do
E[xk ] = 0 · P (yk > 0) + 1 · P (yk < 0) (2.11)
nên
1
N
E[P̂ (s)] = P (yk < 0) (2.12)
N k=1
1
N
= P (s) = P (s) (2.13)
N k=1
Điều này chứng tỏ rằng giá trị kỳ vọng của ước lượng P̂ (s) đúng
bằng giá trị thật P (s).
Tiếp theo, chúng ta đi tính phương sai của ước lượng P̂ (s).
Phương sai của P̂ (s) được định nghĩa như sau:
2
σP2 (s) = E P̂ (s) − E[P̂ (s)] (2.14)
= E P̂ 2 (s) − P 2 (s) (2.15)
Tuy nhiên,
1
N N
2
E[P̂ (s)] = E xk x (2.16)
N2
k=1 =1
1 1
N N N
2
= 2 E[xk ] + 2 E[xk x ]. (2.17)
N k=1 N k=1 =1,=k
26 CHƯƠNG 2. CÁC MÔ HÌNH VÀ PHƯƠNG PHÁP MÔ PHỎNG
Để ý rằng chúng ta có
và
tức là
1
P (s)[1 − P (s)] P 2 (s). (2.25)
N
Vì vậy
1 − P (s) 1
N = − 1. (2.26)
P (s) P (s)
2.5. MÔ PHỎNG BĂNG THÔNG VÀ MÔ PHỎNG BĂNG GỐC 27
Do xác suất lỗi thường rất nhỏ hơn 1 nên 1/P (s) 1 và chúng ta
có
1
N . (2.27)
P (s)
Như vậy, để thu được ước lượng của xác suất lỗi P̂ (s) chính xác
so với P (s), chúng ta cần chọn N 1/P (s). Ví dụ, với P (s) = 10−3 ,
thì yêu cầu N 1000. Để ý rằng xác suất lỗi P (s) = 10−3 có nghĩa
là khi chúng ta gửi đi N = 103 bit thì trung bình sẽ có một bit
lỗi. Nếu chúng ta chọn N = 104 thì trung bình sẽ có 10 bit lỗi, và
tương tự khi tăng số bit N. Thực tế, theo kinh nghiệm cho thấy
kết quả mô phỏng có thể chấp nhận được khi chúng ta đếm được
100 bit lỗi trở lên, và vì vậy, số lượng mẫu nhỏ nhất để thu được
ước lượng tin cậy của P (s) cần thỏa mãn [8]
10
N> (2.28)
P (s)
khi P (s) 1. Điều kiện này thường đủ để ước lượng xác suất lỗi
của một hệ thống truyền dẫn số chịu ảnh hưởng của tạp âm cộng
và nhiễu khác.
một tín hiệu liên tục có thể biểu diễn duy nhất bởi một mô hình
rời rạc chỉ khi tần số lấy mẫu lớn hơn hoặc bằng hai lần thành
phần tần số lớn nhất trong phổ tần tín hiệu. Đối với tín hiệu băng
gốc, giả thiết thành phần tần số lớn nhất fmax , thì tần số lấy mẫu
fs ≥ 2fmax . Đối với tín hiệu băng thông có phổ tần tín hiệu nằm
trong dải fc − B/2 ≤ f ≤ fc + B/2 thì thành phần tần số lớn nhất
là fc + B/2. Dựa theo định lý lấy mẫu băng thông [6] thì tần số lấy
mẫu không cần phải thỏa mãn điều kiện fs ≥ 2fc + B, mà chỉ cần
thỏa mãn điều kiện
2fmax 2fc + B
fs ≥ = , (2.29)
m m
trong đó
fmax
m= (2.30)
B
với m là kết quả của phép tính fmax /B lấy làm tròn xuống [6]. Điều
này có nghĩa là 2B ≤ fs ≤ 4B và trong trường hợp f0 B thì
fs ≈ 2B, tuy nhiên không nhỏ hơn 2B.
Trên cơ sở mô hình tín hiệu rời rạc cho tín hiệu băng gốc và
tín hiệu băng thông có thể thực hiện tương ứng các mô phỏng băng
gốc và mô phỏng băng thông. Tuy nhiên, biểu diễn của tín hiệu
sử dụng các mẫu của dạng sóng băng thông thường phức tạp hơn
các tín hiệu băng gốc [9]. Vì vậy, tín hiệu và hệ thống băng thông
thường được biểu diễn ở dạng băng gốc tương đương trong mô
phỏng. Phương pháp biểu diễn tín hiệu băng thông về dạng băng
gốc tương đương được gọi là phương pháp đường bao phức. Ý tưởng
của phương pháp này là với một tín hiệu điều chế sóng mang x(t)
ở dạng
x(t) = r(t) cos[2πfc t + φ(t)] (2.31)
trong đó, r(t) là điều chế biên độ, φ(t) là điều chế pha của tín hiệu,
còn fc là tần số sóng mang, chúng ta có thể viết lại thành
x(t) = r(t)ej(2πfc +φ(t))
= r(t)ejφ(t) ej2πfc (2.32)
2.5. MÔ PHỎNG BĂNG THÔNG VÀ MÔ PHỎNG BĂNG GỐC 29
trong đó [·] biểu diễn phép tính lấy phần thực của thành phần
phức bên trong dấu ngoặc. Để ý rằng thành phần tín hiệu
chứa tất cả các thông tin và là tín hiệu băng gốc. Tín hiệu x̃(t)
thường được gọi là biên độ phức hay tín hiệu băng gốc tương đương
của tín hiệu băng thông. Trong mô phỏng tín hiệu băng gốc tương
đương ở công thức (2.33) thay thế cho tín hiệu băng thông công
thức (2.31). Việc mô hình hóa tín hiệu băng thông ở dạng băng gốc
tương đương thường liên quan đến biến đổi Hilbert. Việc tính toán
biến đổi Hilbert trong miền tần số thường dễ dàng hơn trong miền
thời gian. Tuy nhiên, trong thực tế với phần lớn tín hiệu băng thông
điều chế biên độ hoặc pha có băng thông hữu hạn và có fc B. Vì
vậy, để mô hình hóa tín hiệu cho mô phỏng, tín hiệu băng gốc tương
đương cho các tín hiệu điều chế này có thể nhận được bằng cách
ánh xạ thành phần đồng pha (inphase) của tín hiệu băng thông trở
thành phần thực và thành phần trực giao (quadrature) trở thành
phần ảo của biên độ phức. Tức là
trong đó
63
CHƯƠNG 4. MÔ PHỎNG VỚI MATLAB COMMUNICATION TOOLBOX
64
• Phát triển ứng dụng bao gồm cả việc phát triển giao diện
người sử dụng.
• Các hàm phục vụ cho việc thiết kế lớp vật lý các tuyến truyền
thông như mã nguồn, mã hóa kênh, xáo trộn, điều chế, các
mô hình kênh và san bằng tín hiệu.
• Các công cụ vẽ đồ thị mẫu mắt, chòm sao tín hiệu để trực
giác hóa các tín hiệu truyền thông.
• Các kiểu dữ liệu trường Galois phục vụ cho xây dựng các
thuật toán truyền thông.
Ví dụ này trình bày phương pháp thực hiện mô phỏng một hệ thống
truyền thông số đơn giản bao gồm các thành phần sau: một bộ điều
4.3. KHAI THÁC CÁC PHẦN TỬ CỦA HỆ THỐNG TRUYỀN THÔNG67
Signal Source Nguồn tín hiệu ngẫu nhiên. Cho phép tạo các
dạng tín hiệu ngẫu nhiên khác nhau.
Source Coding Các hàm thực hiện các chức năng lượng tử
hóa, nén và các loại mã hóa nguồn khác.
Error Control Mã hóa sửa lỗi khối và mã chập
Coding
Interleaving & Xáo trộn theo khối hoặc chập
Deinterleaving
Analog Các bộ điều chế và giải điều chế băng thông
Modulation như điều chế pha, biên độ, tần số
& Demodulation
Digital Các bộ điều chế và giải điều chế số băng gốc
Modulation
& Demodulation
Pulse shaping Cho phép thực hiện lấy mẫu quá hạn và tạo
dạng tín hiệu
Filters Bộ lọc cosine nâng và Hilbert
Channels Các mô hình kênh cho tín hiệu thực, phức và
nhị phân
Equalizers Các bộ san bằng MLSE và san bằng thích nghi
Performance Đánh giá hiệu năng
Evaluation
GUI Giao diện đồ họa người dùng
Galois Field Xử lý các phần tử của các trường hữu hạn bậc
chẵn
Galois Field Xử lý các phần tử của các trường hữu hạn bậc
of Odd lẻ
Characteristic
Utilities Các chức năng liên quan khác
chế băng gốc, kênh, và giải điều chế. Chương trình mô phỏng sẽ
thực hiện tính tỉ lệ lỗi bit (BER) của hệ thống, và hiển thị các tín
hiệu phát và thu trên sơ đồ chòm sao tín hiệu.
Sơ đồ khối của hệ thống cần mô phỏng kèm theo các hàm của
CHƯƠNG 4. MÔ PHỎNG VỚI MATLAB COMMUNICATION TOOLBOX
68
scatterplot
Điều chế
Nguồn nhị Giải điều
băng gốc Đích
phân chế QAM
QAM
Tạp âm awgn
AWGM
So sánh
&
tính BER
biterr
Nhiệm vụ Hàm
Tạo dòng bit nhị phân ngẫu nhiên randint
Điều chế sử dụng 16-QAM modulate
sử dụng
modem.qammod
Tạo tạp âm Gauss trắng awgn
Tạo đồ thị tán xạ scatterplot
Giải điều chế sử dụng 16-QAM modulate
sử dụng
modem.qamdemod
Tính BER hệ thống bitterr
4.3. KHAI THÁC CÁC PHẦN TỬ CỦA HỆ THỐNG TRUYỀN THÔNG69
Luồng dữ liệu sẽ được biểu diễn ở dạng véc-tơ hay ma trận. Trong
trường hợp này, chúng ta sẽ tạo ra chuỗi nhị phân {0, 1} ở dạng
véc-tơ cột với chiều dài dữ liệu bất kỳ, ví dụ 30.000 bit (n = 3e4),
sử dụng câu lệnh x=randint(n,1). Để quan sát chuỗi bit tạo ra
bằng hình vẽ, có thể sử dụng câu lệnh stem.
Để khởi tạo tham số mô phỏng, chúng ta định nghĩa các tham
số sẽ được sử dụng bao gồm bậc điều chế M=16, số bit được điều
chế trong một ký hiệu (symbol) k = log2(M), số mẫu được lấy
trong một ký hiệu nsamp = 1 biểu diễn quá trình lấy mẫu tới hạn
(critical sampling), và định nghĩa modem sẽ được sử dụng để điều
chế là QAM: hMod = modem.qammod(M).
%% Setup
% Define parameters.
M = 16; % Size of signal constellation
k = log2(M); % Number of bits per symbol
n = 3e4; % Number of bits to process
nsamp = 1; % Oversampling rate
hMod = modem.qammod(M); % Create a 16-QAM modulator
%% Signal Source
% Create a binary data stream as a column vector.
x = randint(n,1); % Random binary data stream
Kết thúc tập hợp câu lệnh trên thu được biểu diễn chuỗi bit nhị
phân phát như ở Hình 4.2, trong đó trục hoành biểu diễn số thứ tự
của các bit còn trục tung biểu diễn giá trị của bit.
CHƯƠNG 4. MÔ PHỎNG VỚI MATLAB COMMUNICATION TOOLBOX
70
Random Bits
1
0.9
0.8
0.7
0.6
Binary Value
0.5
0.4
0.3
0.2
0.1
0
0 5 10 15 20 25 30 35 40
Bit Index
Hình 4.2: Chuỗi bit phát ngẫu nhiên: trường hợp 40 bit đầu tiên.
%% Bit-to-Symbol Mapping
% Convert the bits in x into k-bit symbols.
4.3. KHAI THÁC CÁC PHẦN TỬ CỦA HỆ THỐNG TRUYỀN THÔNG71
xsym = bi2de(reshape(x,k,length(x)/k).’,’left-msb’);
%% Stem Plot of Symbols
% Plot first 10 symbols in a stem plot.
figure; % Create new figure window.
stem(xsym(1:10));
title(’Random Symbols’);
xlabel(’Symbol Index’); ylabel(’Integer Value’);
Random Symbols
14
12
10
Integer Value
0
1 2 3 4 5 6 7 8 9 10
Symbol Index
Hình 4.3: Chuỗi thập phân biến đổi từ chuỗi bit ngẫu nhiên.
Trong tập câu lệnh trên, câu lệnh figure nhằm tạo ra một cửa
sổ hình vẽ mới để kết quả biểu diễn mới không đè lên kết quả cũ.
Các số thập phân được tạo ra từ chuỗi bit ngẫu nhiên được biểu
diễn trên Hình 4.3.
Để thực hiện điều chế 16-QAM cần thực hiện khởi tạo bộ MODEM
điều chế nhờ câu lệnh modem.qammod(M), sau đó gọi hàm điều chế
để tiến hành điều chế, tức là:
y = modulate(modem.qammod(M), xsym)
CHƯƠNG 4. MÔ PHỎNG VỚI MATLAB COMMUNICATION TOOLBOX
72
Kết quả đầu ra bộ điều chế y là một véc-tơ cột chứa các ký hiệu
phức thuộc chòm sao tín hiệu 16-QAM. Để quan sát chòm sao tín
hiệu sau khi điều chế, có thể sử dụng câu lệnh scatterplot.
Trong ví dụ này, giả thiết kênh truyền chỉ chịu ảnh hưởng của
tạp âm Gauss trắng cộng tính (AWGN: Additive White Gaussian
Noise). Do nhiệm vụ của mô phỏng truyền dẫn tín hiệu số thường
là để quan sát chất lượng tín hiệu thu theo hàm của Eb /N0 nên
cần phải tạo được tạp âm có mức độ ảnh hưởng tương ứng. Để tạo
được tạp âm AWGN có thể sử dụng hàm awgn như ví dụ sau:
%% Transmitted Signal
ytx = y;
%% Channel
% Send signal over an AWGN channel.
EbNo = 10; % In dB
snr = EbNo + 10*log10(k) - 10*log10(nsamp);
ynoisy = awgn(ytx,snr,’measured’);
%% Received Signal
yrx = ynoisy;
Do tín hiệu truyền trên kênh truyền là các ký hiệu phức chịu
ảnh hưởng của tạp âm nên trong trường hợp này cần tạo ra tạp âm
theo tỷ số công suất tín hiệu trên công suất tạp âm (SNR). Tỷ số
này được xác định như sau:
tùy chọn ’measured’ của hàm awgn cho phép tự tính công suất tín
hiệu ytx để đặt ảnh hưởng của tạp âm tương ứng với tỉ số SNR.
Tín hiệu thu được tại máy thu chính là ynoisy, hay nói cách khác
yrx = ynoisy.
%% Scatter Plot
% Create scatter plot of noisy signal and transmitted
% signal on the same axes.
h = scatterplot(yrx(1:nsamp*5e3),nsamp,0,’g.’);
hold on;
scatterplot(ytx(1:5e3),1,0,’k*’,h);
title(’Received Signal’);
legend(’Received Signal’,’Signal Constellation’);
axis([-5 5 -5 5]); % Set axis ranges.
hold off;
Received Signal
5
Received Signal
Signal Constellation
4
1
Quadrature
−1
−2
−3
−4
−5
−5 −4 −3 −2 −1 0 1 2 3 4 5
In−Phase
Để thực hiện giải điều chế tín hiệu 16-QAM chỉ cần áp dụng hàm
demodulate vào tín hiệu thu sử dụng đối tượng: modem.qamdemod,
cụ thể là
%% Demodulation
% Demodulate signal using 16-QAM.
zsym = demodulate(modem.qamdemod(M),yrx);
Đầu ra của MODEM là chuỗi số thập phân tương ứng với chuỗi đã
phát đi bên phát.
Bước 7. Chuyển các giá trị thập phân về tín hiệu nhị phân
Để tái tạo lại chuỗi bit nhị phân đã phát từ véc-tơ các số nguyên
(decimal- to-binary), sử dụng hàm de2bi để chuyển đổi một số
nguyên thành tổ hợp 4 bit tương ứng, mỗi tổ hợp tương ứng với
một hàng của ma trận sau z=de2bi(zsym, ’left-msb’). Sau đó,
sử dụng hàm reshape để chuyển ma trận nhị phân thành véc-tơ
4.3. KHAI THÁC CÁC PHẦN TỬ CỦA HỆ THỐNG TRUYỀN THÔNG75
%% Symbol-to-Bit Mapping
% Undo the bit-to-symbol mapping performed earlier.
z = de2bi(zsym,’left-msb’); % Convert integers to bits.
% Convert z from a matrix to a vector.
z = reshape(z.’,numel(z),1);
Để tính toán tỷ lệ BER giữa chuỗi bit phát x và chuỗi bit thu được
z, sử dụng hàm: biterr như sau
%% BER Computation
% Compare x and z to obtain the number of errors and
% the bit error rate.
[number_of_errors,bit_error_rate] = biterr(x,z)
Kết quả cho biết số lỗi xảy ra trong chuỗi bit nhận được: number-of-error
và tỉ lệ lỗi bit bit-error-rate. Các số liệu thống kê này sẽ được
hiển thị trên cửa sổ câu lệnh của MATLAB. Kết quả thực tế có thể
khác chút ít do ví dụ sử dụng các số ngẫu nhiên.
number_of_errors =
71
bit_error_rate =
0.0024
CHƯƠNG 4. MÔ PHỎNG VỚI MATLAB COMMUNICATION TOOLBOX
76
Ví dụ này có sẵn trong phần demo của Matlab với tên gọi
commdoc_const. Để xem lại toàn bộ ví dụ này sử dụng câu lệnh
sau từ cửa sổ câu lệnh:
edit commdoc_const
Ví dụ 2. Biểu diễn quá trình ánh xạ lên chòm sao tín hiệu
Ví dụ 1 ở trên đã có biểu diễn tín hiệu trên sơ đồ chòm sao tín hiệu
(signal constellation). Tuy nhiên, việc mô tả quá trình ánh xạ một
số nguyên trong dải từ 0 đến M-1 chưa được rõ ràng. Ví dụ này sẽ
trình bày phương pháp hiển thị các điểm tín hiệu của sơ đồ điều
chế 16-QAM tương ứng với các số nguyên kèm theo đánh dấu chú
giải các điểm tín hiệu.
Bước 1. Tìm tất cả các điểm tín hiệu thuộc chòm sao tín hiệu
16-QAM
Để làm việc với chòm sao tín hiệu của một bộ điều chế sử dụng
tính chất “Constellation” của một đối tượng MODEM điều chế như
modem.qammod cho trường hợp điều chế QAM. Đối tượng được tạo
ra h=modem.qammod(M) sẽ chứa đầy đủ các điểm tín hiệu và các
thông tin liên quan. Để thực hiện khởi tạo một đối tượng MODEM
điều chế và thu thập các tính chất liên quan đến chòm sao tín hiệu
như vec-tơ ánh xạ mapping và vec-tơ chứa các điểm tín hiệu pt,
thực hiện các câu lệnh mẫu sau đây
Để thực hiện vẽ sơ đồ chòm sao tín hiệu, chúng ta sử dụng câu lệnh
scatterplot đối với vec-tơ pt
4.3. KHAI THÁC CÁC PHẦN TỬ CỦA HỆ THỐNG TRUYỀN THÔNG77
Để chú thích hình vẽ biểu diễn mối quan hệ giữa mapping và pt, sử
dụng hàm text để thay thế một số hiển thị bên cạnh điểm chòm
sao thành tổ hợp các bit nhị phân. Tọa độ của điểm đặt chú thích
được lựa chọn gần với các giá trị của phần thực và phần ảo của
điểm tín hiệu, nhưng được đặt lệch một chút để tránh chồng lấn
lên điểm tín hiệu. Để có được tổ hợp bit nhị phân tương ứng với
điểm ánh xạ, sử dụng hàm dec2bin để tạo ra một xâu các ký tự số
phục vụ cho câu lệnh text. Kết quả thu được sơ đồ chòm sao tín
hiệu như ở Hình 4.5.
Quan sát Hình 4.5 chúng ta có thể thấy hai điểm tín hiệu kế nhau
0001 và 0010 khác nhau hai bit. Điều này cho thấy đối tượng
MODEM tạo ra modem.qammod không sử dụng phương pháp ánh
xạ (mã hóa) Gray. Trong thực tế, các hệ thống truyền thông đều
sử dụng ánh xạ Gray sao cho các điểm tín hiệu kề nhau chỉ khác
biệt một bit. Ánh xạ Gray cho phép nâng cao chất lượng truyền
dẫn tín hiệu. Ví dụ, trên kênh pha-đinh Rayleigh, ánh xạ Gray cho
phép thu được BER tốt hơn so với ánh xạ tự nhiên khoảng 0,5dB.
Để nhận được ánh xạ Gray, cần đưa vào tùy chọn ’Gray’ khi định
nghĩa đối tượng modem.qammod như sau:
Scatter plot
4
−2
−4
−4 −2 0 2 4
In−Phase
Hình 4.5: Sơ đồ chòm sao tín hiệu phát sử dụng ánh xạ tự nhiên.
Trong ví dụ sau đây sẽ biểu diễn phương pháp sử dụng bộ lọc căn
bậc hai cosine nâng ở phía phát và phía thu nhằm tạo dạng tín
4.3. KHAI THÁC CÁC PHẦN TỬ CỦA HỆ THỐNG TRUYỀN THÔNG79
Scatter plot
4
−2
−4
−4 −2 0 2 4
In−Phase
Hình 4.6: Sơ đồ chòm sao tín hiệu phát sử dụng ánh xạ Gray.
hMod = modem.qammod(M);
hMod.imputType = ‘Bit’;
hMod.symbolOrder = ‘Gray’;
hDemod = modem.qamdemod(hMod)
Dựa trên các định nghĩa cho hai MODEM điều chế hMod và giải
điều chế hDemod này có thể thực hiện điều chế sử dụng câu lệnh
CHƯƠNG 4. MÔ PHỎNG VỚI MATLAB COMMUNICATION TOOLBOX
80
Đồng thời, định nghĩa các tham số chính của bộ lọc bằng cách
bổ sung thêm các câu lệnh sau vào sau phần điều chế và tạo tín
hiệu phát.
%% Filter Definition
% Define filter-related parameters.
filtorder = 40; % Filter order
delay = filtorder/(nsamp*2); % Group delay (# of input samples)
rolloff = 0.25; % Rolloff factor of filter
Có thể thấy bộ lọc sử dụng có bậc bằng 40, trễ nhóm bằng 5
và hệ số uốn lọc bằng 0,25.
Impulse Response
0.6
0.5
0.4
Amplitude
0.3
0.2
0.1
−0.1
0 5 10 15 20 25 30 35 40
n (samples)
Để lọc tín hiệu điều chế, sử dụng bộ lọc cosine nâng nhờ hàm
rcosflt và để xem sơ đồ mẫu mắt tín hiệu sử dụng hàm eyediagram
như ở các câu lệnh sau
%% Transmitted Signal
% Upsample and apply square root raised cosine filter.
ytx = rcosflt(y,1,nsamp,’filter’,rrcfilter);
Câu lệnh rcosflt tự động lấy mẫu lên (upsample) đối với tín
hiệu điều chế y với hệ số nsamp và chèn thêm 0 vào tín hiệu đã lấy
mẫu lên để làm sạch bộ lọc ở phần cuối trước khi thực hiện lọc. Sử
dụng câu lệnh eyediagram cho phép tạo ra một sơ đồ mẫu mắt của
một phần (2000 mẫu) của tín hiệu không có tạp âm đã được lọc.
Hình 4.8 biểu diễn sơ đồ mẫu mắt của tín hiệu cho hai thành phần
đồng pha (In-phase) và vuông pha (Quadrature). Có thể nhận thấy
CHƯƠNG 4. MÔ PHỎNG VỚI MATLAB COMMUNICATION TOOLBOX
82
tín hiệu chịu ảnh hưởng lớn của nhiễu liên ký tự (ISI) do bộ lọc chỉ
là căn bậc hai cosine nâng, không phải là bộ lọc cosine nâng đầy
đủ.
1
Amplitude
−1
−2
−3
−0.5 0 0.5
Time
1
Amplitude
−1
−2
−3
−0.5 0 0.5
Time
Để lọc tín hiệu thu, chúng ta cũng sử dụng một bộ lọc căn bậc hai
cosine nâng giống bên phát, sau đó lấy mẫu xuống (downsample)
kết quả với hệ số nsamp. Câu lệnh mẫu thực hiện như sau:
%% Received Signal
% Filter received signal using square root raised cosine filter.
yrx = rcosflt(ynoisy,1,nsamp,’Fs/filter’,rrcfilter);
4.3. KHAI THÁC CÁC PHẦN TỬ CỦA HỆ THỐNG TRUYỀN THÔNG83
Câu lệnh cuối cùng loại bỏ 2*delay ký hiệu đầu tiên và 2*delay
ký hiệu cuối cùng ở trong tín hiệu đã lấy mẫu xuống do chúng đại
diện cho thành phần trễ tích lũy của hai thao tác lọc. Nhờ vậy, tín
hiện đầu vào bộ giải điều chế yrx và tín hiệu đầu ra bộ điều chế y
có cùng kích thước để tính tỉ lệ lỗi sau này.
Để thấy được hiệu quả của bộ lọc thu, có thể điều chỉnh để vẽ hai
đồ thị tán xạ trên cùng một hình vẽ. Để làm được điều này, thực
hiện các câu lệnh sau.
1
Quadrature
−1
−2
−3
−4
−5
−5 0 5
In−Phase
Hình 4.9: Đồ thị tán xạ tín hiệu trước (·) và sau khi lọc (×).
%% Scatter Plot
% Create scatter plot of received signal before and
CHƯƠNG 4. MÔ PHỎNG VỚI MATLAB COMMUNICATION TOOLBOX
84
% after filtering.
h = scatterplot(sqrt(nsamp)*ynoisy(1:nsamp*5e3),nsamp,0,’g.’);
hold on;
scatterplot(yrx(1:5e3),1,0,’kx’,h);
title(’Received Signal, Before and After Filtering’);
legend(’Before Filtering’,’After Filtering’);
axis([-5 5 -5 5]); % Set axis ranges.
Để ý rằng để bù lại công suất thay đổi do thao tác lọc, câu lệnh vẽ
đồ thị tán xạ đầu tiên đã điều chỉnh ynoisy bởi một hệ số tương
ứng với hệ số lấy mẫu quá hạn sqrt(nsamp). Kết quả được minh
họa ở Hình 4.9. Có thể thấy rõ hiệu quả lọc cho phép giảm tán xạ
của tín hiệu rất nhiều.
Do mã chập cải thiện phẩm chất BER, nên tỉ lệ lỗi sẽ nhỏ. Vì vậy,
để thu được tỉ lệ lỗi tin cậy cần phải tăng số ký hiệu phát. Trong
phần Setup, thay định nghĩa số bit bằng câu lệnh sau:
Để mã hóa dữ liệu nhị phân trước khi ánh xạ thành các số nguyên
phục vụ cho điều chế, bổ sung thêm các câu lệnh sau vào sau phần
4.3. KHAI THÁC CÁC PHẦN TỬ CỦA HỆ THỐNG TRUYỀN THÔNG85
%% Encoder
% Define a convolutional coding trellis and use it
% to encode the binary data.
t = poly2trellis([5 4],[23 35 0; 0 5 13]); % Trellis
code = convenc(x,t); % Encode.
coderate = 2/3;
Đầu ra 1
+
Đầu vào 1
1 0 0 1 1
z-1 z-1 z-1 z-1
1 1 1 0 1
+
Đầu ra 2
Đầu vào 2 0 1 0 1
z-1 z-1 z-1
1 0 1 1
Đầu ra 3
+
trong mỗi thanh ghi dịch cộng với một bit hiện thời nên chiều dài
ràng buộc là [5 4].
Để xác định tham số bộ tạo mã theo ma trận 2 hàng 3 cột chứa
các số cơ số 8 (bát phân), sử dụng phần tử ở hàng thứ i và cột thứ
j để chỉ thị ảnh hưởng của đầu vào thứ i tới đầu ra thứ j. Ví dụ,
để tính phần tử ở hàng thứ hai và cột thứ 3, phần tử ngoài cùng
bên trái và hai phần tử ngoài cùng bên phải ở thanh ghi dịch thứ
2 được đưa đến bộ cộng, tạo nên đầu ra thứ 3. Thông tin này được
được biểu diễn ở dạng số nhị phân là 1011, tương đương với số 13
bát phân. Như vậy, ma trận tạo mã được biểu diễn đầy đủ như sau
[23 35 0; 0 5 13].
Ở bước này, chúng ta thực hiện chuyển các bit đã được mã hóa
thành các ký hiệu. Thao tác này được thực hiện bằng cách thay
xsym ở ví dụ trước bằng câu lệnh sau:
Để thực hiện giải mã chập trước khi tính tỉ lệ lỗi BER, bổ sung
thêm các câu lệnh sau phần Symbol-to-Bit Mapping và trước BER
Computation.
%% Decoder
% Decode the convolutional code.
tb = 16; % Traceback length for decoding
z = vitdec(z,t,tb,’cont’,’hard’); % Decode.
Hai tùy chọn của hàm giải mã Viterbi vitdec là ’hard’ để thực
hiện quyết định cứng và ’cont’ để yêu cầu bộ giải mã sử dụng chế
độ liên tục để bù cho trễ giải mã như mô tả ở bước sau.
Ở chế độ giải mã liên tục, bộ giải mã Viterbi gây nên một lượng
trễ với độ lớn tính theo đơn vị bit bằng độ dài traceback, tb, nhân
với số luồng đầu vào bộ mã hóa. Với mã có tốc độ 2/3, bộ mã hóa
có hai đầu vào nên độ trễ tính được là 2*tb bit.
Vì vậy, 2*tb bit đầu tiên trong véc-tơ giải mã, z, đều bằng 0.
Khi tính tỉ lệ lỗi BER cần phải loại bỏ 2*tb bit đầu tiên ở z và
2*tb bit cuối cùng ở véc-tơ gốc, x. Nếu không thực hiện bù trễ, tỉ
lệ BER tính được sẽ không có ý nghĩa vì hai vec-tơ không tương
ứng với nhau. Vì vậy, thay phần BER Computation bằng các câu
lệnh sau đây:
%% BER Computation
% Compare x and z to obtain the number of errors and
% the bit error rate. Take the decoding delay into account.
decdelay = 2*tb; % Decoder delay, in bits
[number_of_errors,bit_error_rate] = ...
CHƯƠNG 4. MÔ PHỎNG VỚI MATLAB COMMUNICATION TOOLBOX
88
biterr(x(1:end-decdelay),z(decdelay+1:end))
• Tạo vòng lặp theo một tập các giá trị của một tham số xác
định như Eb/No, kích thước tập tín hiệu (alphabet size) hoặc
tốc độ lấy mẫu quá hạn để quan sát ảnh hưởng của các tham
số trong hệ thống.
• Xử lý dữ liệu ở các tập nhỏ hơn thay cho một tập lớn hơn
nhằm đáp ứng yêu cầu về bộ nhớ.
• Xác định lượng dữ liệu cần xử lý để có được kết quả tin cậy
thay cho việc phỏng đoán ban đầu.
Các phương pháp trình bày dưới đây cung cấp các ví dụ để
cho phép người dùng có thể thực hiện mô phỏng của một hệ thống
truyền thông mong muốn.
Trong ví dụ này, chúng ta sử dụng ví dụ điều chế tín hiệu ngẫu nhiên
ở phần trước để tính BER cho các giá trị Eb/No trong khoảng từ
0 đến 7 dB. Vẽ BER theo Eb/No sử dụng thang lô-ga-rít cho trục
tung.
4.4. MÔ PHỎNG MỘT HỆ THỐNG TRUYỀN THÔNG 89
Trong trường hợp này, BERTool cho phép thực hiện một loạt
các mô phỏng với các giá trị Eb/No khác nhau, thu thập kết quả
và vẽ đồ thị. Người dùng cần tự xây dựng phần lõi của mô phỏng.
Trong phần này, chúng ta sẽ tận dụng ví dụ về điều chế tín hiệu
ngẫu nhiên và sửa đổi làm lõi cho chương trình như một ví dụ về
chương trình lõi. Để mở ví dụ điều chế ngẫu nhiên và template của
BERTool sử dụng các câu lệnh sau đây:
edit commdoc_gray
edit bertooltemplate
Bước 1. Lưu template vào thư mục người dùng mong muốn
Tại cửa sổ edit của bertooltemplate, di chuyển đến thư mục mong
muốn và save bertooltemplate thành tệp có tên my_commdoc_bertool.
Thay dòng đầu của my_commdoc_bertool để định nghĩa lại hàm
% Setup
% Define parameters.
M = 16; % Size of signal constellation
k = log2(M); % Number of bits per symbol
n = 1000; % Number of bits to process
nsamp = 1; % Oversampling rate
CHƯƠNG 4. MÔ PHỎNG VỚI MATLAB COMMUNICATION TOOLBOX
90
bằng phần còn lại (đoạn mã sau phần Setup) của toàn bộ mã ở
ví dụ comdoc_gray.m. Ngoài ra bổ sung dấu ";" ở cuối dòng lệnh
cuối cùng (biterr) để ngăn hiển thị kết quả trong quá trình mô
phỏng.
Bổ sung đoạn mã sau đây vào sau đoạn mã đã được dán trước đó
và ngay trước câu lệnh end ở template
Hai câu lệnh này cho phép hàm bám theo số bit đã xử lý và số lỗi
phát hiện được.
Chạy một tập hợp các vòng lặp sẽ tạo nên một số lượng lớn các đồ
thị. Ví dụ này biểu diễn thao tác cho phép tắt các đồ thị một cách
đơn giản. Ở tệp my_commdoc_bertool, loại bỏ các dòng lệnh sử
4.4. MÔ PHỎNG MỘT HỆ THỐNG TRUYỀN THÔNG 91
Khi BERTool kích hoạt function mô phỏng, nó sẽ xác định một giá
trị EbNo. Hàm my_commdoc_bertool không cho phép gán trực tiếp
EbNo. Vì vậy, cần loại bỏ hoặc ngăn thực hiện câu lệnh bằng câu
lệnh sau (trong phần Channel)
Đến đây kết thúc phần soạn thảo hàm mô phỏng my_commdoc_bertool,
cần lưu tệp lại để BERTool có thể sử dụng sau này.
bertool
Bấm vào nút Run ở BERTool. BERTool bắt đầu thực hiện một loạt
các mô phỏng và cuối cùng sẽ đưa ra kết quả ở dạng đồ thị như
dưới đây. Để kiểm tra kết quả mô phỏng với các giá trị lý thuyết,
CHƯƠNG 4. MÔ PHỎNG VỚI MATLAB COMMUNICATION TOOLBOX
92
ii) Bấm vào phím Plot. Đồ thị tạo ra một đường cong liền nét
cho các giá trị BER lý thuyết và vẽ các dấu * cho kết quả
mô phỏng trước đó (Hình 4.14). Có thể thấy các giá trị mô
phỏng gần sát với đường lý thuyết. Để ý là mã mô phỏng
trong trường hợp này có sử dụng ánh xạ Gray. Các kết quả lý
thuyết giả thiết sử dụng ánh xạ Gray lên chòm sao tín hiệu.
4.4. MÔ PHỎNG MỘT HỆ THỐNG TRUYỀN THÔNG 93
Hình 4.13: Nhập các giá trị cho tính toán BER lý thuyết.
Để tiếp tục khai thác BERTool có thể đánh dấu vào ô Fit để hợp
một đường cong với các kết quả mô phỏng, hoặc đặt Confidence
Level bằng một giá trị tính toán số để bổ sung thêm các khoảng
tin cậy (confidence interval: là khoảng có xác suất cao) ở đồ thị.
CHƯƠNG 4. MÔ PHỎNG VỚI MATLAB COMMUNICATION TOOLBOX
94
phải thực hiện thao tác để đảm bảo tính liên tục của các tính toán
khi chuyển từ một vòng lặp sang vòng lặp khác. Ví dụ, tính liên tục
rất quan trọng khi mô phỏng có chứa giải mã chập, ghép xen/giải
ghép xen chập, điều chế pha liên tục, kênh pha-đinh, và san bằng.
Có thể xem thêm về đảm bảo tính liên tục qua các ví dụ: vitdec,
viterbisim, muxdeintrlv, mskdemod. Trường hợp chia tập dữ liệu
thành một chuỗi các tập dữ liệu nhỏ quá, mô phỏng phải gọi một
số lượng lớn các hàm nên có thể làm cho mô phỏng chạy chậm. Có
thể sử dụng công cụ Profiler trong Matlab để làm cho chương
trình chạy nhanh hơn.
Một nhiệm vụ thường gặp trong phân tích một hệ thống truyền
thông là thay đổi một tham số, ngoài Eb/No để tìm đáp ứng của
hệ thống. Ví dụ sau đây đề cập đến vấn đề này. Nhiệm vụ là thay
đổi ví dụ điều chế tín hiệu ngẫu nhiên để tính BER cho các bậc
điều chế (M): 4, 8, 16, 32 và các giá trị Eb/No nguyên từ 0 đến
7. Với mỗi giá trị của M, vẽ BER theo hàm của EbNo sử dụng thang
lô-ga-rít cho trục tung.
Ví dụ trước đã trình bày một mô hình tính BER cho các giá trị
nhất định của M và Eb/No và thu thập một số tỉ lệ BER. Để đơn
giản, giải pháp này sử dụng cùng số lượng các bit cho mỗi giá trị
của M và Eb/No.
Để xem mã gốc chương trình điều chế tín hiệu ngẫu nhiên, sử
dụng câu lệnh sau ở cửa sổ câu lệnh:
edit commdoc_mod
Ở đầu chương trình, định nghĩa một số biến số liệt kê tất cả các
giá trị của M và EbNo yêu cầu. Đồng thời phân bổ trước không gian
CHƯƠNG 4. MÔ PHỎNG VỚI MATLAB COMMUNICATION TOOLBOX
96
cho các thống kê lỗi tương ứng với mỗi tổ hợp M và EbNo
%% Ranges of Variables
Mvec = [4 8 16 32]; % Values of M to consider
EbNovec = [0:7]; % Values of EbNo to consider
Sau khi Mvec và EbNovec được định nghĩa và đã xác lập không gian
các thống kê, có thể tích hợp tất cả các câu lệnh còn lại vào trong
một vòng lặp như sau:
%% Simulation loops
for idxM = 1:length(Mvec)
for idxEbNo = 1:length(EbNovec)
% OTHER COMMANDS
Tương tự thay phần BER Computation bằng các câu lệnh sau:
%% BER Computation
4.4. MÔ PHỎNG MỘT HỆ THỐNG TRUYỀN THÔNG 97
Để thực hiện tạo các đồ thị BER liên tiếp nhau sau mỗi vòng lặp,
sử dụng các câu lệnh sau ngay trước khi kết thúc vòng lặp cho M.
%% Plot a Curve.
markerchoice = ’.xo*’;
plotsym = [markerchoice(idxM) ’-’]; % Plotting style for this curve
semilogy(EbNovec,bit_error_rate(idxM,:),plotsym); % Plot one curve.
drawnow; % Update the plot instead of waiting until the end.
hold on; % Make sure next iteration does not remove this curve.
Bổ sung thêm các câu lệnh sau khi kết thúc cả hai vòng lặp
Sau khi chạy chương trình cho kết quả như hình vẽ sau.
CHƯƠNG 4. MÔ PHỎNG VỚI MATLAB COMMUNICATION TOOLBOX
98
Hình 4.15: Phẩm chất BER theo các bậc điều chế khác nhau.