Professional Documents
Culture Documents
3 Lý thuyết mô phỏng 31
3.1 Vai trò của mô phỏng . . . . . . . . . . . . . . . . . . . . . . 31
3.2 Mô phỏng vs. Phân tích . . . . . . . . . . . . . . . . . . . . . 32
3.2.1 Sơ đồ truyền dẫn số qua kênh AWGN . . . . . . . . 32
3.2.2 Sơ đồ truyền dẫn số qua kênh AWGN sử dụng các
bộ lọc và KĐCS phi tuyến . . . . . . . . . . . . . . 33
3.2.3 Hệ thống truyền dẫn qua kênh thông tin vệ tinh . . 35
3.3 Xây dựng mô hình mô phỏng . . . . . . . . . . . . . . . . . . 35
3.4 Các phương pháp mô phỏng . . . . . . . . . . . . . . . . . . 37
i
ii Mục lục
5 Điều chế số 59
5.1 Điều chế pha sóng mang . . . . . . . . . . . . . . . . . . . . . 59
4.1 Một ví dụ về tạp âm Gauss với giá trị trung bình 0 và phương
sai σ 2 = 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.2 Hàm mật độ xác suất Gauss với σ 2 = 1. . . . . . . . . . . . . 46
4.3 Mật độ phổ công suất và hàm tự tương quan của tạp âm trắng. 47
4.4 Sơ đồ mô phỏng truyền dẫn BPSK trên kênh AWGN. . . . . . 48
4.5 Phẩm chất BPSK trên kênh AWGN. . . . . . . . . . . . . . . 50
4.6 Mô hình truyền sóng đa đường. . . . . . . . . . . . . . . . . . 51
4.7 Đáp ứng xung của một bộ lọc FIR. . . . . . . . . . . . . . . . 54
4.8 Hàm phân bố Rayleigh với σ 2 = 1. . . . . . . . . . . . . . . . 55
v
vi Danh sách hình vẽ
1
2 Chương 1. Giới thiệu Matlab
trên màn hình desktop của windows. Sau khi khởi động xong màn hình sẽ hiện
ra cửa sổ Môi trường Làm việc của MATLAB gồm 3 phần chính là: Thư mục
Hiện thời (Current Directory), cửa sổ Lịch sử Câu lệnh (Command History)
và Cửa sổ Câu lệnh (Command Windows) như ở Hình 1.1.
1.3. Làm việc với MATLAB Desktop 3
Để kết thúc MATLAB có thể thực hiện bằng cách nhắp phím chuột trái
vào ô đóng cửa sổ hình dấu sao ( ) phía trên và bên tay trái cửa sổ MAT-
LAB. Ngoài ra cũng có thể kết thúc MATLAB bằng cách nhập vào câu lệnh
» quit
ở cửa sổ Command Windows rồi bấm Enter.
» ls
. .. temp
liệt kê thư mục con temp bên trong thư mục làm việc hiện thời của
MATLAB.
» pwd Hiển thị đường dẫn của thư mục hiện tại. Ví dụ:
» pwd
ans =
C:\MATLAB701\work
chỉ ra đường dẫn của thư mục làm việc hiện tại là C:\MATLAB701\work
a =
» b=2
b =
» who
a b
liệt kê hai biến a và b đang được lưu trữ ở bộ nhớ chương trình.
1.5. Các ký hiệu đặc biệt 5
» clear [tên biến] xóa biến có tên được khai báo khỏi bộ nhớ. Ví dụ:
» clear a
» who
b
Để xóa hết tất cả các biến đang được lưu tại bộ nhớ, sử dụng lệnh
»clear all
»clc lệnh xóa toàn bộ thông tin trên Command Windows và đưa con trỏ trở
về vị trí ban đầu.
Ví dụ:
Ví dụ:
» A=[2 6 3]
A =
2 6 3
» A=[2 6 3; 1 2 3]
6 Chương 1. Giới thiệu Matlab
A =
2 6 3
1 2 3
» 2 + 1
ans=
3
» 3 − 1
ans=
2
» 2 ∗ 3
ans=
6
» 6/3
ans=
2
Với các phép tính phức tạp hơn có dấu ngoặc thì dấu ngoặc đơn (gồm cả
mở và đóng) được sử dụng để phân cách thứ tự ưu tiên. Ví dụ, phép tính
[(2 + 3) − (15 − 3)][7 + 5 − 4]
(2.1)
2
được biểu diễn trong Matlab như sau
7
8 Chương 2. Tính toán và Lập trình sử dụng Matlab
» ((2+3)-(15-3))*(7+5-4)/2
trong đó dấu ngoặc đơn được sử dụng thay cho dấu ngoặc vuông đã được mặc
định dùng cho vector và ma trận trong Matlab.
Trong Matlab phép tính lấy mũ được biểu diễn bởi ký hiệu bởi dấu mũ ˆ
như:
» 5ˆ 2
ans=
25
0
» 3 > 1
ans =
1
» 4 <= 10
ans =
1
» 3 ∼= 7
ans =
1
2.2. Các toán tử so sánh 9
Trong trường hợp so sánh 2 vector hay 2 ma trận với nhau thì toán sử
so sánh thực hiện và cho ta kết quả so sánh của từng phần tử tương ứng ở 2
vector hay ma trận với nhau. Ví dụ
» A=[1 3 4; 2 8 7; 6 9 5]
A =
1 3 4
2 8 7
6 9 5
» B=[3 1 4; 7 8 2; 6 5 9]
B =
3 1 4
7 8 2
6 5 9
» A==B
ans =
0 0 1
0 1 0
1 0 0
» A∼=B
ans =
1 1 0
1 0 1
0 1 1
» A >= B
ans =
0 1 1
0 1 1
10 Chương 2. Tính toán và Lập trình sử dụng Matlab
1 1 0
» A < B
ans =
1 0 0
1 0 0
0 0 1
» a=[3 5 0 4 0]
a =
3 5 0 4 0
» b=[3 1 0 0 2]
b =
3 1 0 0 2
» a & b
ans =
1 1 0 0 0
Các số 1 chỉ ra các phần tử tương ứng khác không của cả a và b .
Phép toán OR ( | ) cho kết quả TRUE nếu một toán hạng hoặc cả hai toán
hạng là TRUE về mặt logic. Nói theo thuật ngữ số thì phép toán OR chỉ cho kết
2.4. Vector và Ma trận 11
» a | b
ans =
1 1 0 1 1
Phép toán NOT (∼) thực hiện phép đảo toán hạng, cho kết quả FALSE nếu
toán hạng là TRUE và cho kết quả TRUE nếu toán hạng là FALSE. Theo thuật
ngữ số thì các toán hạng bằng không sẽ bằng một và tất cả các toán hạng
khác không sẽ bằng không.
Ví dụ:
» ∼a
ans =
0 0 1 0 1
» A=[1; 2; 3]
và thu được
» A=
1
2
3
A = [1 2 3] (2.3)
12 Chương 2. Tính toán và Lập trình sử dụng Matlab
chúng ta có thể sử dụng dấu cách hoặc dấu phẩy để phân chia cột như sau:
» A=[1, 2, 3]
hoặc
» A=[1 2 3]
đều cho chúng ta kết quả
» A=
1 2 3
Tương tự như vector để tạo một ma trận, chúng ta nhập trực tiếp các
phần tử rồi sử dụng dấu chấm phảy (;) và dấu cách (hoặc dấu phảy) để phân
chia các cột và hàng. Ví dụ, để tạo ma trận
" #
1 4 7
A= 2 5 8 (2.4)
3 6 9
chúng ta nhập vào các phần tử như sau
» A=[1 4 7; 2 5 8; 3 6 9]
và thu được
» A=
1 4 7
3 5 8
4 6 9
» A′
là thu được ma trận chuyển vị của A
2.4. Vector và Ma trận 13
» ans=
1 2 3
4 5 6
7 8 9
Trong trường hợp A là một ma trận gồm các phần tử phức thì phép toán
′
này còn thực hiện cả việc lấy liên hợp phức của các phần tử trong ma trận.
Trong trường hợp chỉ muốn chuyển vị mà không cần lấy liên hợp phức thì
nhập thêm dấu chấm vào trước dấu sắc (.′ ). Ví dụ, ma trận phức
" #
−0.43 + j1.06 −1.14 + j0.29 0.32 − j0.69
A = −1.66 + j0.05 1.19 − j1.33 0.17 + j0.85 (2.6)
0.12 − j0.09 1.18 + j0.71 −0.18 + j1.25
nếu lấy chuyển vị liên hợp phức cho chúng ta
» A′
» ans=
-0.43 - 1.06i -1.66 - 0.05i 0.12 + 0.09i
-1.14 - 0.29i 1.19 + 1.33i 1.18 - 0.71i
0.32 + 0.69i 0.17 - 0.85i -0.18 - 1.25i
còn nếu chỉ lấy chuyển vị mà không lấy liên hợp phức sẽ có
» A.′
» ans=
-0.43 + 1.06i -1.66 + 0.05i 0.12 - 0.09i
-1.14 + 0.29i 1.19 - 1.33i 1.18 + 0.71i
0.32 - 0.69i 0.17 + 0.85i -0.18 + 1.25i
Cộng và trừ vector/ma trận: các phép toán cộng hay trừ vector/ma
trận được thực hiện theo từng phần tử. Phép toán cộng và trừ đòi hỏi các ma
trận/vector được cộng hay trừ phải có kích thước (có cùng số hàng và cột)
như nhau. Ví dụ, thao tác cộng hai vector a và b được thực hiện như sau
» a=[1; 4; 6]
a =
1
4
14 Chương 2. Tính toán và Lập trình sử dụng Matlab
6
» b=[2; 9; 3]
b =
2
9
3
» a + b
ans =
3
13
9
Thao tác trừ hai ma trận A và B được biểu diễn như sau:
» A=[1 3 7; 4 1 6; 6 4 2]
A =
1 3 7
4 1 6
6 4 2
» B=[5 1 9; 3 8 7; 5 2 3]
B =
5 1 9
3 8 7
5 2 3
» A - B
ans =
-4 2 -2
1 -7 -1
1 2 -1
2.4. Vector và Ma trận 15
Tích số vector: Hai vector a và b có cùng độ dài có thể nhân với nhau
theo cả hai trình tự ab và ba. Kết quả là một số vô hướng (scalar) với trường
hợp tích trong (inner product) hoặc là một ma trận với trường hợp tích ngoài
(outer product). Ví dụ:
» a = [-1 2 4]
a =
-1 2 4
» b = [3; 8; 10]
b =
3
8
10
» a*b
ans =
53
» b*a
ans =
-3 6 12
-8 16 32
-10 20 40
Nhân ma trận: tích hai ma trận C = AB được xác định khi chiều
của cột A bằng chiều của hàng B, hoặc khi một trong số chúng là một số vô
hướng. Nếu kích thước của A là m × p và của B là p × n, thì ma trận tích
C của chúng có kích thước là m × n. Ví dụ, nhân ma trận A có kích thước
2 ×3 với ma trận B có kích thước là 3 ×2 cho ta ma trận C có kích thước 2 ×2
» A=[2 5 6; 1 4 3]
A =
2 5 6
1 4 3
16 Chương 2. Tính toán và Lập trình sử dụng Matlab
» B=[4 9; 7 2; 6 1]
B =
4 9
7 2
6 1
» C=A*B
C =
79 34
50 20
Trong trường hợp nhân một số vô hướng với một ma trận thì kết quả là
một ma trận mới với các phần tử là tích của từng phần tử với số vô hướng đó.
Ví dụ
» A=[2 5 6; 1 4 3]
A =
2 5 6
1 4 3
» b=5
b =
5
» A*b
ans =
10 25 30
5 20 15
Đối với trường hợp hai ma trận có cùng kích thước, Matlab cho phép
thực hiện nhân từng phần tử với nhau thông qua phép toán nhân từng phần
tử (.∗). Ví dụ:
» A=[2 4 6; 9 3 5; 1 4 2]
2.4. Vector và Ma trận 17
A =
2 4 6
9 3 5
1 4 2
» B=[6 2 5; 7 3 8; 1 0 4]
B =
6 2 5
7 3 8
1 0 4
» C=A.*B
C =
12 8 30
63 9 40
1 0 8
Đảo ma trận: phép toán đảo ma trận được thực hiện nhờ hàm số có
sẵn (built-in function) inv. Ma trận đảo inv(A) của ma trận A chỉ tồn tại khi
A là một ma trận vuông và không gần đơn điệu (nearly singular). Ví dụ:
» A=rand(4,4)
A =
0.9077 0.6220 0.2050 0.2539
B =
-0.4924 -1.2604 1.5160 0.8057
2.3661 1.4403 -2.5141 -0.6797
18 Chương 2. Tính toán và Lập trình sử dụng Matlab
» inv(A)
Warning: Matrix is singular to working precision.
(Type "warning off MATLAB:singularMatrix" to suppress this warning.)
ans =
A =
1.1650 -0.6965 0.2641 1.2460
0.6268 1.6961 0.8717 -0.6390
0.0751 0.0591 -1.4462 0.5774
0.0914
1 Sau khi đã quen với Matlab có thể dùng hàm có sẵn find thay cho vòng for này.
2.5. Lập trình với Matlab 21
clear all
rand(’seed’,0)
noOne=0;
k=1;
while noOne<=9
n(k)=rand>0.5;
s(k)=1-2*n(k);
if s(k)==1
noOne=noOne+1
end
k=k+1;
end
s
Kết quả thu được là một chuỗi 24 bit 1, −1 trong đó có chứa 10 bit 1
s =
Columns 1 through 15
1 1 -1 -1 -1 1 -1 -1 1 1 -1 -1 1 1 1
Columns 16 through 24
1 -1 -1 -1 -1 -1 1 -1 1
rand(’seed’,0)
noOne=0;
for k=1:100
n(k)=rand>0.5;
s(k)=1-2*n(k);
if s(k)==1
noOne=noOne+1;
end
if noOne==10
break
end
end
s
Kết quả chúng ta cũng thu được một chuỗi 24 bit giống như ở ví dụ về câu
lệnh while
22 Chương 2. Tính toán và Lập trình sử dụng Matlab
s =
Columns 1 through 15
1 1 -1 -1 -1 1 -1 -1 1 1 -1 -1 1 1 1
Columns 16 through 24
1 -1 -1 -1 -1 -1 1 -1 1
Để soạn thảo các script hay các function của MATLAB chúng ta có thể
sử dụng bất kỳ một chương trình soạn thảo văn bản nào rồi lưu lại với tên
mở rộng .m. Chúng ta cũng có thể sử dụng ngay chương trình soạn thảo của
MATLAB (MATLAB Editor). Để xem hay soạn thảo lại một m-file có sẵn
chỉ cần sử dụng câu lệnh
» edit fileName
Để tạo một tệp mới chỉ cần sử dụng câu lệnh
2.5. Lập trình với Matlab 23
» edit
không cần tên tệp.
function delta=discriminant(a,b,c)
% Function to calculate the discriminant of a quaratic equation
% ax^2 + bx + c = 0
delta=b^2 - 4*a*c;
Giả sử phương trình bậc hai cần tìm nghiệm số là x2 + 4x + 3 = 0. Các
hệ số phương trình là a = 1, b = 4 và c = 3. Sử dụng hàm discriminant.m
vừa tạo chúng ta có thể tính được ngay biệt thức của phương trình này
»delta=discriminant(a,b,c)
delta =
báo theo dạng plot(x1,y1,x2,y2,...,xN,yN) với {xn,yn} là cặp giá trị của
từng đồ thị. Để đánh dấu từng đồ thị chúng ta có thể gán cho chúng các dấu
(marker), các màu, kiểu đường đồ thị riêng, hay cũng có thể kết hợp với nhau.
Các định dạng đường đồ thị định nghĩa trong MATLAB được liệt kê ở bảng
sau
Bảng 2.1: Các tham số định dạng đường đồ thị trong MATLAB
Ký hiệu màu Màu Ký hiệu dấu Dấu Ký hiệu đường Kiểu đường
b blue . point - solid
g green o circle : dotted
r red x x-mark -. dashdot
c cyan + plus – dashed
m magenta * star
y yellow s square
k black d diamond
v triangle (down)
∧ triangle (up)
< triangle (left)
> triangle (right)
p pentagram
h hexagram
x = 0:pi/10:2*pi;
y = sin(x);
z= cos(x);
plot(x,y,’r+:’, x,z, ’b-.o’)
xlabel(’x’)
ylabel(’sin(x)/cos(x)’)
title(’Do thi ham sin(x) va cos(x)’)
legend(’sin(x)’,’cos(x)’)
grid
Trong đó đường đồ thị sin(x) được biểu diễn bởi đường đứt nét màu đỏ với
các dấu cộng (+), còn đường đồ thị cos(x) được biểu diễn bởi đường “gạch
và chấm” (.−) màu xanh nước biển với các dấu tròn. Câu lệnh xlabel(’x’)
và xlabel(’sin(x)/cos(x)’) dùng để đánh dấu trục hoành và trục tung của
đồ thị. Câu lệnh title(’Do thi ham sin(x) va cos(x)’) dùng để đặt tên
cho đồ thị. Câu lệnh legend(’sin(x)’,’cos(x)’) dùng để ghi chú giải cho
từng đồ thị và cuối cùng, câu lệnh grid dùng để hiển thị các đường lưới giá
trị đồ thị. Kết quả cụ thể được biểu diễn trên Hình vẽ 2.2
Sử dụng câu lệnh help plot chúng ta có thể biết thêm chi tiết về cách
dùng hàm plot.
Một câu lệnh vẽ đồ thị khác thường được sủ dụng nhiều trong thông tin
số để vẽ tỉ số lỗi bit (BER: Bit Error Rate) là câu lệnh semilogy(x,y). Câu
lệnh tương tự như câu lệnh plot nhưng cho phép biểu diễn trục tung của đồ
thị ở thang logarith.
26 Chương 2. Tính toán và Lập trình sử dụng Matlab
0.6
0.4
0.2
sin(x)/cos(x)
−0.2
−0.4
−0.6
−0.8
−1
0 1 2 3 4 5 6 7
x
Ví dụ, tỉ số BER của hệ thống truyền dẫn BPSK qua kênh pha-đinh
Rayleigh phân tích bằng lý thuyết là [1]
1 1
BERBPSK−Fading = 1 − q (2.7)
2 1+ 1 Eb /N0
trong đó Eb /N0 là tỉ số năng lượng bit tín hiệu trên phổ tần số tạp âm (một
số trường hợp được hiểu và gọi là tỉ số tín hiệu trên tạp âm S/N). Sử dụng
chương trình BERBPSKFading.m sau với câu lệnh semilogy(BER,EbNodB) cho
phép vẽ đồ thị BER theo tỉ số Eb /N0 trên thang logarith.
[BERBPSKFading.m]
% Chuong trinh ve do thi BER cua h/t BPSK tren kenh fading Rayleigh
EbNodB=0:30
EbNo=10.^(EbNodB./10)
BER=1/2*(1-1./sqrt(1+1./EbNo))
semilogy(EbNodB,BER)
xlabel(’Eb/No’)
ylabel(’BER’)
title(’Ti so BER cua he thong BPSK qua kenh pha-dinh Rayleigh ’)
2.6. Sử dụng đồ hoạ trong MATLAB 27
grid
−1
10
BER
−2
10
−3
10
−4
10
0 5 10 15 20 25 30
Eb/No
Hình 2.2: Mô tả BER của hệ thống BPSK trên kênh pha-đinh Rayleigh.
Một số câu lệnh vẽ đồ thị thường dùng khác gồm bar hay hist. Để biết
thêm chi tiết về các câu lệnh này sử dụng lệnh help trong MATLAB.
Bài tập
1. Sử dụng hàm randn tạo một chuỗi ngẫu nhiên gồm N = 1000 giá trị
x = {x1 , x2 , ..., xk , ..., xN }. Viết chương trình tính giá trị trung bình (kỳ
vọng) Ex , phương sai σx2 và độ lệch chuẩn σx sử dụng các công thức sau
đây
28 Chương 2. Tính toán và Lập trình sử dụng Matlab
N
1 X
Ex = xk (2.8)
N k=1
2
N
X N
X
x2k xk
k=1 k=1
σx2 = E(x2 ) − Ex2 = − (2.9)
N N
p
σx = σx2 (2.10)
2. Viết chương trình tạo một chuỗi −1 và +1 ngẫu nhiên x có độ dài 104
bit. Tạo một chuỗi bit thứ 2 y giống như x tuy nhiên các phần tử thứ
10, 50, 100, 150, 250, 300, 350 bị đảo dấu so với các phần tử tương ứng
ở y. Tức là, y10 = −x10 , ..., y350 = −x350 . So sánh y và x và tính toán tỉ
số sai số giữa hai chuỗi.
3. Dựa vào ví dụ vẽ đồ thị BER của hệ thống BPSK trên kênh pha-đinh
Rayleigh ở mục 2.6.1 và hàm sai số bù erfc có sẵn trong MATLAB,
i. Viết chương trình vẽ đồ thị BER của hệ thống BPSK trên kênh tạp
âm Gauss theo công thức sau[1]
1 p
BERBPSK−AWGN = erfc Eb /N0 (2.11)
2
ii. Vẽ đồ thị BER của hệ thống BPSK trên kênh tạp âm Gauss kết hợp
với đồ thị BER của hệ thống BPSK trên kênh pha-đinh Rayleigh
vào một hình vẽ, đánh dấu và đặt chú giải cho từng đồ thị.
4. Viết một hàm MATLAB y=QPSKMap(x) nhận đối số là một chuỗi ngẫu
nhiên 1 và 0 có độ dài N bit. Hàm QPSKMap thực hiện kiểm tra từng cặp
2 bit liên tiếp xn và xn+1 rồi thực hiện phép biến đổi sau
xn xn+1 ym
00 → √1
2
+ j √12
01 → − √12 + j √12
10 → − √12 − j √12
11 → √1
2
− j √12
Lý thuyết mô phỏng
31
32 Chương 3. Lý thuyết mô phỏng
thể phân tích, đánh giá và so sánh với các kết quả thực hiện trên phần cứng.
dk
Nguån §iÒu chÕ
D÷ liÖu vµ Tx
Kªnh truyÒn
AWGN zk +
^
dk d~k
QuyÕt ®Þnh LÊy mÉu Läc phèi hîp
Hình 3.1: Ví dụ về một hệ thống dễ dàng thực hiện phân tích giải tích.
Tín hiệu phát đi qua kênh truyền trước khi đến máy thu. Trong thực tế
kênh truyền là một môi trường truyền dẫn phức tạp, gây ảnh hưởng lớn đến
chất lượng truyền dẫn tín hiệu. Tuy nhiên, trong ví dụ đơn giản này, chúng
ta giả thiết kênh truyền chỉ tạo ra tạp âm trắng cộng tính (AWGN). Tín hiệu
thu nhận được ở đầu vào máy thu sẽ được đưa qua bộ lọc phối hợp, còn được
gọi là máy thu tương quan. Đầu ra bộ lọc phối hợp được lấy mẫu tại cuối chu
kỳ dấu để tạo nên thống kê quyết định (decision statistic), d˜k , rồi so sánh với
ngưỡng quyết định T để tạo nên ước lượng dˆk của tín hiệu gốc dk . Nếu d˜k > T
thì quyết định được thực hiện theo một trong hai dấu, còn ngược lại, d˜k < T ,
quyết định theo dấu còn lại. Máy thu kiểu này thường được gọi là máy thu tối
ưu do bản chất của việc ước lượng tín hiệu phát là làm tối giản xác suất lỗi
3.2. Mô phỏng vs. Phân tích 33
PE .
Hệ thống đề cập đến ở Hình 3.1 là một hệ thống có thể phân tích bằng
giải tích một cách dễ dàng nhờ các kiến thức cơ bản về lý thuyết thông tin và
giải tích. Thực tế là xác suất lỗi PE đã được tính toán một cách dễ dàng và
trình bày ở trong hầu hết các tài liệu về thông tin số, và cho bởi
r !
Es
PE = Q k (3.1)
N0
trong đó Es là năng lượng trung bình của các dấu phát, N0 là mật độ phổ
công suất đơn phía của tạp âm, k là hệ số xác định bởi tương quan giữa các
dạng sóng {s1 (t), s2 (t)}. Nếu các tần số được chọn một cách chính xác, các tín
hiệu không tương quan và k = 1. Với tín hiệu điều chế khóa dịch pha (PSK),
các tín hiệu điều chế có cùng tần số và công suất, nhưng khác pha ban đầu.
Trong trường hợp pha khác nhau π, sao cho s2 (t) = −s1 (t)}, thì các tín hiệu
sẽ tương quan ngược (anticorrelated), và k = 2.
Sở dĩ chúng ta nói rằng hệ thống truyền dẫn trên Hình 3.1 là hệ thống có
thể phân tích bằng giải tích dễ dàng là do các lý do sau:
• Do giả thiết kênh truyền AWGN và máy thu tuyến tính. Giả thiết này
dẫn đến thống kê quyết định d˜ trở thành một biến Gauss ngẫu nhiên.
• Do các giả thiết nguồn dữ liệu không có nhớ
• Do giả thiết đồng bộ dấu được thực hiện lý tưởng nên chúng ta có thể
biết chính xác thời điểm bắt đầu và kết thúc của một dấu, vì vậy, cho
phép thống kê quyết định được tách ra một cách chính xác.
Mặc dù có thể phân tích được dễ dàng nhưng trong một số trường hợp
xây dựng chương trình mô phỏng cho các hệ thống kiểu này vẫn cần thiết. Lý
do là do đây là một hệ thống cơ bản nên nó thường được sử dụng làm cơ sở
để mở rộng cho các hệ thống truyền dẫn phức tạp hơn. Ví dụ, nếu thay khối
kênh AWGN bằng khối kênh pha-đinh Rayleigh chúng ta có mô hình truyền
dẫn số qua kênh pha-đinh Rayleigh, hay chúng ta cũng có thể thêm vào khối
san bằng kênh ở máy thu để có được sơ đồ truyền dẫn sử dụng bộ san bằng để
loại bỏ ảnh hưởng của pha-đinh chọn lọc theo tần số đối với kênh có trễ. Trong
những trường hợp như vậy, việc xây dựng thành công chương trình mô phỏng
cho hệ thống truyền dẫn cơ bản được kiểm nghiệm bằng lý thuyết này, cho
phép mở rộng nhanh chóng để xây dựng thành công chương trình mô phỏng
cho các hệ thống phức tạp.
dk K§CS
Nguån
§iÒu chÕ Phi tuyÕn
D÷ liÖu
vµ Läc
Kªnh truyÒn
AWGN zk +
^
dk d~k
QuyÕt ®Þnh LÊy mÉu Läc phèi hîp
Hình 3.2: Ví dụ về một hệ thống khó thực hiện phân tích giải tích.
hệ thống. Trong mục này chúng ta sẽ xét một sơ đồ phức tạp hơn, trong đó
có sử dụng thêm một bộ khuếch đại công suất (KĐCS) phi tuyến và bộ lọc ở
đầu ra máy phát. Chúng ta đã biết rằng bộ khuếch đại công suất phi tuyến
có hiệu suất nguồn cao hơn bộ khuếch đại công suất tuyến tính, và vì vậy,
thường được sử dụng ở các ứng dụng đòi hỏi tiết nghiệm nguồn như thông tin
di động chẳng hạn. Tuy nhiên, việc sử dụng bộ khuếch đại phi tuyến lại tạo
nên méo hài và méo điều chế lẫn nhau (intermodulation), làm cho phổ của tín
hiệu đầu ra KĐCS rộng hơn rất nhiều so với phổ đầu ra bộ điều chế. Bộ lọc
đầu ra, thông thường là một bộ lọc băng thông có tần số trung tâm trùng với
tần số sóng mang, có nhiệm vụ làm suy giảm méo hài và méo điều chế lẫn
nhau do tính phi tuyến của bộ KĐCS gây nên. Tuy nhiên, bộ lọc này lại làm
cho tín hiệu bị phân tán theo thời gian, do đó gây nên nhiễu xuyên dấu (ISI).
Hậu quả của ISI là xác suất lỗi của một dấu phụ thuộc vào một hay nhiều
dấu trước đó. Nếu như xác suất lỗi của dấu thứ i phụ thuộc vào k dấu trước
đó thì chúng ta cần tính xác suất
Pr(Ei |di−1 , di−2 , ..., di−k )
Đối với trường hợp nhị phân có 2k chuỗi khác nhau, do đó chúng ta cần tính
cho 2k trường hợp. Giả thiết là mỗi dấu dữ liệu có xác suất là 0 hay 1 như
nhau, chúng ta có xác suất lỗi của dấu thứ i được tính như sau
1 1 1
1 X X X
PE = k ··· Pr(Ei |di−1 , di−2 , ..., di−k ) (3.2)
2 d d d
i−1=0 i−2=0 i−k=0
Tức là, chúng ta cần tính 2 xác suất lỗi khác nhau, với mỗi xác suất lỗi phụ
k
thuộc một trong 2k chuỗi trước đó, sau đó chia trung bình cho k. Do kênh
truyền đang xét là kênh AWGN nên mỗi xác suất trong 2k xác xuất lỗi là hàm
Q Gauss. Phương pháp tính dễ hiểu, việc tính toán đối số của mỗi hàm Q lại
nhàm chán, và vì vậy, mô phỏng thường được sử dụng thay thế cho giải tích.
Hệ thống ở Hình 3.2 có một tính chất quan trọng làm cho phân tích trở
nên dễ dàng hơn. Đó là phần hệ thống từ điểm có tạp âm đến điểm xuất hiện
3.3. Xây dựng mô hình mô phỏng 35
thống kê Vk là tuyến tính. Thống kê d˜k có thể được biểu diễn ở dạng
d˜k = Sk + Ik + Nk (3.3)
trong đó Sk và Ik là các thành phần của d˜k do tín hiệu và nhiễu, còn Nk là
thành phần do tạp âm. Do tính chất tuyến tính nên nếu tạp âm là Gauss thì
Nk cũng là một biến ngẫu nhiên Gauss, do nó là kết quả của phép biến đổi
tuyến tính của một biến ngẫu nhiên Gauss. Hơn nữa, thống kê quyết định của
d˜k cũng sẽ là một biến Gauss có cùng phương sai như của Nk , nhưng với giá
trị trung bình Sk + Ik , trong đó cả hai thành phần này đều xác định. Giá trị
trung bình của d˜k được xác định từ kiến thức về mật độ phổ công suất của
tạp âm kênh và băng tần tạp âm tương đương của hệ thống từ kênh đến đầu
ra của d˜k . Vì vậy, hàm mật độ phổ công suất (PDF) của d˜k có thể biết được
và xác suất lỗi dễ dàng được xác định. Nói tóm lại, lý do chúng ta có thể dễ
dàng xác định PDF của d˜k , cho dù hệ thống có tính phi tuyến, là do tạp âm
không đi qua phần phi tuyến của hệ thống.
Do tạp âm chỉ đi qua phần tuyến tính của hệ thống nên phương pháp mô
phỏng được đơn giản hóa. Cũng do tạp âm không đi qua phần phi tuyến nên
giá trị trung bình của d˜k có thể xác định được bằng giải tích và do đó PDF
của d˜k có thể biết được và xác suất lỗi được xác định dễ dàng. Các khái niệm
này được kết hợp vào trong một kỹ thuật mô phỏng vừa đơn giản, lại nhanh
chóng. Đó là phương pháp bán giải tích (semi-analytical), trong đó giải tích
và mô phỏng được kết hợp với nhau làm cho mô phỏng được thực hiện nhanh
hơn. Mô phỏng bán giải tích là một công cụ quan trọng và được sử dụng rộng
rãi trong nghiên cứu.
dk K§CS
Nguån
§iÒu chÕ p hi tuyÕn
D÷ liÖu
vµ Läc
Kªnh truyÒn
Up link noise +
K§CS
p hi tuyÕn
vµ Läc
Downlink noise
+
^
dk d~k
QuyÕt ®Þnh LÊy mÉu Läc phèi hîp
Hình 3.3: Ví dụ về một hệ thống khó thực hiện phân tích giải tích.
thường được biểu diễn ở dạng toán học mô tả mối quan hệ vào/ra của hệ
thống. Nghệ thuật của mô hình hóa là phát triển mô hình hoạt động có chứa
đầy đủ các tính năng cần thiết nhưng lại không quá phức tạp để có thể thực
hiện được bằng các máy tính thông dụng. Yêu cầu này đòi hỏi phải có sự thỏa
hiệp giữa tính chính xác, độ phức tạp và yêu cầu tính toán của mô hình.
Đố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 và mô hình mô phỏng như ở Hình 3.4. 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 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 này thường là mô tả một phần của hệ
thống, và có độ chính xác trong một giải điện áp, dòng điện, hay tần số nào
đó. Mô hình mô phỏng thường là một tập hợp của các thuật toán thực hiện
giải pháp tính toán bằng số (numerical) của các công thức xác định mô hình
giải tích. Các kỹ thuật giải tích số và xử lý tín hiệu số là các công cụ được sử
dụng để phát triển các thuật toán này.
Mối quan hệ giữa sai số mô hình, độ phức tạp và thời gian mô phỏng được
3.4. Các phương pháp mô phỏng 37
ThÊp Ng¾n
ThÊp §é phøc t¹p M« h×nh Cao
Hình 3.5: Mối quan hệ giữa sai số, thời gian chạy mô phỏng so với độ phức tạp của mô
hình.
biểu diễn ở Hình 3.5. Chúng ta có thể thấy rằng một mô hình có độ phức tạp
thấp có sai số mô hình hóa lớn, nhưng lại yêu cầu thời gian chạy mô phỏng
ngắn. Ngược lại, mô hình có độ phức tạp lớn có sai số nhỏ nhưng lại yêu cầu
thời gian mô phỏng dài.
tín hiệu phát cộng tạ â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ừ giáo trình truyền dẫn chúng
ta biết rằng đối với truyền dẫn tín hiệu BPSK qua kênh AWGN, thì xác suất
lỗi dấu là r !
2Eb
PE = Q (3.4)
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
Z ∞ 2
1 y
Q(x) = exp − (3.5)
2π x 2
Để ý rằng PE là một số chứ không phải một biến ngẫu nhiên, mặc dù tạp âm
ngẫu nhiên xuất hiện ở đầu vào máy thu. Số PE là một giá trị trung bình sau
một số lần thử vô hạn, trong đó một lần thử bao gồm việc gửi một số dấu số
đi qua hệ thống và quan sát kết quả đầu ra. Tất nhiên là kết quả sẽ có thể
là chính xác hoặc là một lỗi ở đầu ra. Đối với các quá trình Ergodic (dừng),
chúng ta có thể xác định xác suất lỗi bằng 2 cách. Chúng ta có thể xem một
bit được truyền và tính PE như là trung bình tập hợp (ensemble average),
trong đó chúng ta có một tập hợp (ensemble) của các dạng sóng tạp âm có
cùng tính chất thống kê. Một cách khác là chúng ta có thể xác định PE như
là trung bình thời gian bằng cách truyền vô hạn các dấu nhị phân và sử dụng
hàm mẫu đơn của tạp âm. Điểm mấu chốt laf chúng ta tính PE dựa trên một
số vô hạn các dấu nhị phân phát đi. Nếu thay vì xác định PE dựa trên một
số vô hạn các dấu phát, chúng ta ước lượng PE dựa trên một số vô hạn các
dấu phát, chúng ta ước lượng PE sử dụng một số hữu hạn các dấu nhị phân
phát, chúng ta sẽ tìm được rằng ước lượng của PE thực tế là một biến ngẫu
nhiên do mỗi hàm mẫu có khoảng hữu hạn sẽ tạo nên một giá trị khác nhau
(mong muốn là không nhiều lắm) cho xác suất lỗi. Điều này sẽ được trình bày
ở phần sau khi chúng ta xem xét kỹ thuật Monte Carlo
xác suất là
Ne
PE = lim . (3.7)
N →∞ N
Do một mô phỏng theo yêu cầu có thể chỉ cần xử lý một số hữu hạn các dấu,
nên xác suất lỗi dấu chỉ có thể xác định xấp xỉ.
Do thuật ngữ tỉ số lỗi bít và xác suất lỗi bit thường được dùng chung, có
thể có lúng túng trong việc phân biệt hai khái niệm này. Thực chất hai khái
niệm này hoàn toàn khác nhau. BER là ước lượng của xác suất lỗi bit. BER
thực chất là một tỉ số (tỉ lệ), do nó mang ý nghĩa Ne lỗi trong N dấu truyền.
Nếu xét một thí nghiệm truyền N dấu qua một kênh ngẫu nhiên (tạp âm) K
lần, thì số lỗi NE đếm được trong mỗi lần thường khác nhau. Xác suất lỗi bit,
tuy nhiên, lại là một số chứ không phải một biến ngẫu nhiên. Víp dụ, xác suất
lỗi bit cho một hệ thống nhị phân PSK trên kênh AWGN là Q( 2Eb /N0 ) là
cố định nếu Eb và N0 không đổi.
Thực tế là với N lớn, ước lượng P̂E hội tụ đến PE , theo định nghĩa tần
suất tương đối của xác suất.
lượng, độ phức tạp/chi phí, kênh công tác, tuổi thọ mong muốn của hệ thống.
Dựa trên yêu cầu người dùng, kỹ sư hệ thống xác định các khái niệm ban đầu
của hệ thống như sơ đồ điều chế, kỹ thuật mã hóa và san bằng nếu cần thiết.
Một tập hợp của các giá trị tham số, được gọi là chỉ tiêu mức A, như mức
công suất, băng tần, và chỉ số điều chế cũng được thiết lập trong giai đoạn
đầu này của thiết kế.
Mục đích chính của giai đoạn này là xác định tô-pô của hệ thống và các
giá trị tham số sẽ đáp ứng các ràng buộc thiết kế. Như đã nói trước đây, phẩm
chất hệ thống là hàm số của tỉ số tín hiệu trên tạp âm (SNR, hay tương đương
là Eb /N0 ) và méo tổng cộng gây ra do các phần tử trên đường truyền dẫn. Tỉ
số SNR được xây dựng thông qua quá trình tính toán quĩ tuyến, mà chủ yếu
là liên quan đến tính toán công suất và các tham số liên quan như công suất
phát, độ lợi anten, suy hao truyến, độ lợi công suất, hệ số tạp âm của các bộ
khuếch đại và lọc. Mặc dù tính toán quĩ tuyến không phải là bài toán quan
tâm của mô phỏng, nó lại giúp thiết lập một dải các giá trị SNR hay Eb /N0
để tiến hành ước lượng phẩm chất trong khoảng đó.
Người thiết kế bắt đầu với cấu hình ban đầu của hệ thống với các chỉ tiêu
cấp A và quĩ tuyến. Quĩ tuyến chỉ ra Eb /N0 tại một điểm quan trọng (critical)
của hệ thống sau khi tất cả các suy hao triển khai đã được tính đến. Điểm
“cực” này thường chính là đầu vào máy thu. Quĩ tuyến được gọi là “cân bằng”
nếu như tuyến có Eb /N0 đủ lớn, với một lề an toàn (safe margin), để tạo ra
phẩm chất chấp nhận được của hệ thống.
Nếu quĩ tuyến không cân bằng, các chỉ tiêu cấp A, suy hao triển khai, và
ngay cả cấu hình hệ thống cần thay đổi và quĩ tuyến cần phải tính lại. Ví dụ,
có thể cần thay đổi lại công suất phát, kích thước anten hay các bộ khuếch đại
tạp âm thấp. Sau khi đã cân bằng được quĩ tuyến, thì sử dụng mô phỏng để
kiểm tra lại quĩ tuyến và điều chỉnh lại hệ thống. Nếu như quĩ tuyến đã được
cân bằng thì chuyển sang giai đoạn tiếp theo là thiết kế các hệ thống con và
các phần tử.
được mà được ước lượng nhờ mô phỏng Monte-Carlo. Giả thiết số N bit được
truyền đi và xảy ra Ne bit lỗi ở đầu ra, tỉ số BER được định nghĩa là
Ne
BER = . (3.9)
N
Thực chất đây là ước lượng của xác suất lỗi bít được định nghĩa bởi
Ne
PE = lim (3.10)
N →∞ N
Trong trường hợp tín hiệu rời rạc (đã lấy mẫu), năng lượng và công suất tín
hiệu được định nghĩa như sau
∞
X
Es = Ts s2 [n] (3.14)
n=−∞
N
1 X
Ps = lim s2 (t)dt (3.15)
N →∞ 2N + 1
n=−N
Nếu chuỗi tín hiệu là hữu hạn và chuỗi được phát lặp lại, thì
N
X −1
Es = Ts s2 [n] (3.16)
n=0
N −1
1 X
Ps = s2 [n] (3.17)
N n=0
Trong Matlab công suất của chuỗi tín hiệu s[n] được tính nhờ sử dụng
hàm norm.m như sau: Ps=norm(s)ˆ 2/length(s)
để 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
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. Chúng
ta sẽ nghiên cứu vấn đề này thông qua trường hợp dưới đây.
Xét biến ngẫu nhiên
y =s+z (3.18)
trong đó s là một hằng số, z là một biến ngẫu nhiên Gauss với giá trị trung
bình m và phương sai σz2 = 1. Rõ ràng là y cũng là một biến ngẫu nhiên Gauss
với giá trị trung bình m và phương sai σy2 = 1.
Giả thiết là chúng ta cần ước lượng xác suất y < 0 cho một giá trị s cho
trước, tức là
P (s) = P (y < 0|s) (3.19)
Nói cách khác, ước lượng P (s) đơn giản là số các biến ngẫu nhiên yi , i =
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 xi , i =
1, 2, ..., N, nên nó cũng là một biến ngẫu nhiên. Để xác định độ chính xác
của ước lượng này so với giá trị thật P (s), chúng ta tính giá trị kỳ vọng và
phương sai của ước lượng này. Đầu tiên là giá trị kỳ vọng của P̂ (s)
N
1 X
E[P̂ (s)] = E[xi ] (3.23)
N i=1
Nhưng do
E[xi ] = 0 · P (yi > 0) + 1 · P (yi < 0) (3.24)
3.10. Mô phỏng Monte-Carlo trong Truyền dẫn Số 43
nên
N
1 X
E[P̂ (s)] = P (yi < 0) (3.25)
N i=1
N
1 X
= P (s) = P (s) (3.26)
N i=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 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
h i2
2
σP (s) = E P̂ (s) − E[P̂ (s)] (3.27)
h i
= E P̂ 2 (s) − P 2(s) (3.28)
Tuy nhiên,
" N N
#
1 XX
2
E[P̂ (s)] = E xi xj (3.29)
N 2 i=1 j=1
N N N
1 X 1 X X
= 2 2
E[xi ] + 2 E[xi xj ] (3.30)
N i=1 N i=1 i=1,i6=j
Và chúng ta có
E[x2i ] = 0 · P (yi ≥ 0) + 1 · P (yi < 0) (3.31)
và
E[xi xj ] = E[xi ] E[xj ] = P 2(s) (3.32)
Thay (3.31) và (3.32) vào (3.30), chúng ta thu được phương sai của ước
lượng như sau
1 N(N − 1) 2
E[P̂ 2 (s)] = P (s) + P (s) (3.33)
N N2
1
P (s)[1 − P (s)] (3.34)
N
Nói chung, khi ước lượng P (s) dựa vào mô phỏng chúng ta mong muốn độ
lệch chuẩn σP (s) là nhỏ so với P (s). Ví dụ, giả sử là chúng ta ước lượng một
xác suất nhỏ, P (s) = 10−3 . Chúng ta cần biết số mẫu cần thiết là bao nhiêu
để đảm bảo độ lệch chuẩn σP (s) là nhỏ so với P (s)? Tức là
1/2
1
σP (s) = P (s)[1 − P (s)] ≪ P (s) (3.35)
N
hay, một cách tương đương,
σP2 (s) ≪ P 2 (s).
44 Chương 3. Lý thuyết mô phỏng
Vì vậy
1
N≫ (3.36)
P (s)
Ví dụ, nếu P (s) = 10−3 , thì N ≫ 1000. Nếu chúng ta chọn kích thước mẫu
N = 104 , thì trung bình, chúng ta sẽ có 10 giá trị của yi , i = 1, 2, ..., 104 sẽ nhỏ
hơn 0. Chúng ta coi kích thước mẫu này như giá trị nhỏ nhất để thu được ước
lượng tin cậy của P (s). Vì vậy, theo kinh nghiệm (as a rule of thumb) kích
thước mẫu cần thỏa mãn
10
N> (3.37)
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.
Ví dụ: Trong một hệ thống thông tin số, tín hiệu thu được với mức điện
áp s, (s > 0), chịu ảnh hưởng của tạp âm Gauss cộng tính có kỳ vọng bằng 0
và phương sai đơn vị. Xác định số mẫu nhỏ nhất N cần thiết để xác định xác
suất P (y < 0|s) khi yi = s + zi , cho s = 3 và s = 5, dựa theo kinh nghiệm
(3.37).
Xác suất đúng ước lượng được bằng mô phỏng Monte-Carlo được tính
như sau:
10
s=3→N = = 7047 (3.40)
P (3)
10
s=5→N = = 107 (3.41)
P (5)
MÔ PHỎNG CÁC HỆ THỐNG
THÔNG TIN VÔ TUYẾN SỬ
DỤNG MATLAB
n2
1
p(n) = √ exp − 2 (4.1)
σ 2π 2σ
Hình vẽ 4.2 biểu diễn hàm PDF Gauss với giá trị trung bình bằng không
và độ lệch chuẩn (standard deviation) σ = 1.
Một đặc tính quan trọng của tạp âm Gauss có giá trị trung bình bằng
không là phương sai σ 2 bằng trung bình bình phương của n, tức là, σ 2 =
45
46 Chương 4. Kênh thông tin vô tuyến
1
n(t)
−1
−2
−3
−4
0 100 200 300 400 500 600 700 800 900 1000
t
Hình 4.1: Một ví dụ về tạp âm Gauss với giá trị trung bình 0 và phương sai σ 2 = 1.
E{n2 (t)}.
0.4
0.35
0.3
σ=1
0.25 0.242
0.2
0.15
0.1
0.05
0
−5 −4 −3 −2 −1 0 1 2 3 4 5
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
4.1. Kênh tạp âm AWGN 47
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
N0
Gn (f ) = [W/Hz] (4.2)
2
như mô tả ở Hình vẽ 4.3(a). Hệ số 2 trong công thức trên chỉ thị rằng Gn (f )
là một hàm mật độ phổ công suất 2 phía (two-sided power spectral density
function) còn N0 thì được gọi là mật độ phổ 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).
G n( f ) R n( t )
N 0/2
N 0/2
f t
(a) MËt ®é phæ c«ng suÊt t¹p ©m tr¾ng (b) Hµm tù t− ¬ng quan
Hình 4.3: 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
Z ∞
−1
Rn (τ ) = F {Gn (f )} = Gn (f )ej2πf τ df (4.3)
−∞
N0
= δ(τ ) (4.4)
2
như biểu diễn ở Hình vẽ 4.3(b). Tức là, 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 trọng số với N0 /2. Để ý rằng
Rn (τ ) = 0 với mọi τ 6= 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).
0.45
Theory
0.4 Simulated
0.35
0.3
0.25
p(n)
0.2
0.15
0.1
0.05
0
−5 −4 −3 −2 −1 0 1 2 3 4 5
n
Hình 4.4 biểu diễn hàm pdf của tạp âm AWGN tạo nên bằng mô phỏng
sử dụng hàm randn sử dụng chương trình Prog. 4.1.
Matlab Program 4.1 SimAWGN.m
%% Script to describe AWGN
% Plot time version of AWGN
N=10^6;
t=1:N;
n=randn(1,N);
plot(t,n)
xlabel(’t’)
ylabel(’n(t)’)
axis([0 1000 -4 4])
legend(’Theory’,’Simulated’)
%hold on
%pdfplot(z,100)
Do phân bố chuẩn chính tắc là một trường hợp đặc biệt của phân bố
Gauss trong đó giá trị trung bình bằng 0 và phương sai bằng 1, nên để mô
phỏng tạp√âm AWGN với phương sai bằng N0 chúng ta chỉ việc nhân hàm
randn với N0 , tức là độ lệch chuẩn mong muốn. Do tạp âm mô phỏng là một
biến số phức gồm hai thành phần thực và ảo, nên công suất tạp âm là tổng
công suất của từng thành phần. Để tạo được tạp âm phức với công suất N0
chúng ta cần chuẩn hóa công suất của mỗi thành phần (thực và ảo) bằng 1/2.
Ví dụ, để tạo được 1000 dấu tạp âm phức có công suất N0 chúng ta làm như
sau:
n = sqrt(N0 /2) ∗ (randn(1, 1000) + j ∗ randn(1, 1000))
Hình 4.6: Sự lan truyền của đường l tới một trạm MS.
3 s(t) còn được gọi là tín hiệu băng tần gốc tương đương
4.2. Kênh pha-đinh 51
Hình vẽ 4.6 minh hoạ sự chuyển động của một trạm MS theo trục x trong mặt
phẳng x − y với vận tốc v. Ở đây, chúng ta đã giả thiết rằng ăng ten phát được
phân cực một cách phù hợp sao cho vector điện trường song song với trục z.
Khi MS chuyển động với tốc độ v, độ dài đường truyền sóng thứ l thay đổi
một khoảng là
x′l = xl − ∆xl (4.12)
Nếu góc tới của tia thứ l so với hướng chuyển động là φl , chúng ta có
∆xl ≈ vt cos(φl ). (4.13)
Như vậy, tín hiệu thu được khi không có tạp âm là
" #
X j2πfc t− xl −∆xl x l − ∆x l
r̃(t) = ℜ al e c
s t− (4.14)
l
c
" #
X xl v cos(φl ) x l v cos(φ l )t
=ℜ al ej2πfc t e−j2πfc c ej2πfc c t s t − + (4.15)
l
c c
Thông thường do tốc độ của MS rất nhỏ so với vận tốc truyền sóng nên ta có
v/c ≈ 0 nên
" #
X xl v cos(φl )
xl
r̃(t) = ℜ al ej2πfc t e−j2πfc c ej2πfc c t s t − . (4.16)
l
c
Đặt
fc
fD = v (4.17)
c
là tần số Doppler lớn nhất, sau một số phép biến đổi toán học thuần tuý chúng
ta có
" #
X
r̃(t) = ℜ al ej2πfD cos(φl )τl ej2π[fc +fD cos(φl )](t−τl ) s (t − τl ) (4.18)
l
Nếu đặt
αl = al ej2πfD cos(φl )τl (4.19)
và
fD,l = fD cos(φl ) (4.20)
ta có thể viết lại r̃(t) ở dạng rút gọn sau
" #
X
r̃(t) = ℜ αl ej2π(fc +fD,l )(t−τl )
s (t − τl ) (4.21)
l
trong đó αl và fD,l tương ứng là hệ số suy hao và tần số Doppler của tia l
dưới tác động của sự chuyển động của MS. Từ công thức (4.21) chúng ta có
thể thấy rằng vật tán xạ thứ l đã dịch tín hiệu phát đi τl về thời gian và fD,l
về tần số.
52 Chương 4. Kênh thông tin vô tuyến
Ta hoàn toàn có thể viết r̃(t) dưới dạng tín hiệu băng thông như trong
biểu thức (4.10) trong đó đường bao phức của tín hiệu thu được có dạng
X
r(t) = αl e−jϕl(t) s (t − τl ) (4.22)
l
với
ϕl (t) = 2π[(fc + fD,l )τl − fD,l t] (4.23)
là góc pha của đường tín hiệu thứ l. Từ biểu thức (4.22), ta có thể mô hình
hoá kênh truyền bằng một bộ lọc tuyến tính biến đổi theo thời gian (linear
time-variant filter) với đáp ứng xung được cho bởi:
X
g(t, τ ) = αl e−jϕl(t) δ(τ − τl ) (4.24)
l
rằng do tần số sóng mang fc có giá trị rất lớn nên dù sự khác biệt giữa các
4.2. Kênh pha-đinh 53
thời gian trễ là nhỏ thì giữa các góc pha ϕl (t) vẫn có sự khác biệt lớn. Kết
quả là làm cho độ tăng ích đường truyền g(t) biến đổi theo thời gian. Điều
này có nghĩa là tín hiệu thu được vẫn trải qua hiện tượng pha đinh. Hơn nữa,
do g(t) thay đổi nhanh hơn s(t) nên tín hiệu thu bị trải (spread) trên thang
tần số. Hiện tượng này còn được gọi là Doppler spread. Cụ thể là, một âm
đơn s(t) = A sẽ bị trải thành vài thành phần ở băng tần [−fD , fD ], mỗi thành
phần tương ứng với một vật tán xạ.
Thực hiện biến đổi Fourier đối với đáp ứng xung g(t, τ ), ta thu được hàm
truyền đạt
Z +∞
G(t, f ) = g(t, τ )e−j2πf τ dτ (4.30)
−∞
Z +∞
= g(t)δ(τ − τ̂ )e−j2πf τ dτ (4.31)
−∞
= g(t)e−j2πf τ̂ (4.32)
Do biên độ của hàm truyền đạt bằng |G(t, f )| = g(t) với f bất kỳ, tất cả các
thành phần tần số trong tín hiệu thu được đều có cùng một độ tăng ích là
g(t). Trong trường hợp này ta nói rằng tín hiệu thu trải qua hiện tượng pha
đinh phẳng (flat fading). Và kênh truyền như thế này được gọi là kênh pha
đinh phẳng.
Delay spread . Xét trường hợp các tần số Doppler fD,l rất nhỏ tương
ứng với MS đứng im. Khi đó các góc pha ϕl (t) trong (4.23) xấp xỉ bằng
ϕl (t) ≈ 2πfc τl = ψl và là một hằng số. Như vậy, công thức (4.24) có thể được
viết lại như sau
X
g(t, τ ) = gl δ(τ − τl ) = gs (τ ) (4.33)
l
Hình vẽ 4.7 minh hoạ đáp ứng xung của một bộ lọc FIR tuyến tính bất
biến. Giải τD được gọi là trải trễ (delay spread). Chúng ta có thể thấy do độ
dài các đường truyền sóng khác nhau nên đã làm cho tín hiệu bị dịch chuyển
trễ.
Thực hiện biến đổi Fourier lên đáp ứng xung ở (4.33) chúng ta có đáp
ứng tần số
Z +∞
G(f ) = gs (τ )e−j2πf τ dτ (4.34)
−∞
X
= gl e−j2πf τl . (4.35)
l
Từ đây chúng ta thấy rằng tại các tần số khác nhau thì biên độ |G(f )| có giá
trị khác nhau. Kênh truyền dẫn trong trường hợp này được gọi là kênh pha
đinh chọn lọc theo tần số (frequency selective fading).
Trong trường hợp không tồn tại tia trực tiếp (LOS: Line Of Sight) giữa BS và
MS và tín hiệu thu được là tổng hợp của một số lượng lớn các đường tín hiệu,
theo luật số lớn ta có thể coi g(t) = gI (t) + jgQ (t), trong đó gI (t) và gQ (t)
là các số thực với mọi t, là một quá trình ngẫu nhiên Gauss phức dừng rộng
(wide-sense stationary complex Gaussian random process) [3]. Trong một số
môi trường tán xạ, gI (t) và gQ (t) là các biến ngẫu nhiên Gauss độc lập với
nhau, có giá trị trung bình bằng không và cùng phương sai σg2 tại bất kỳ thời
điểm t nào, tức là
E{gI (t)} = E{gQ (t)} = 0 (4.37)
và
E{gI (t)2 } = E{gQ (t)2 } = σg2 (4.38)
trong đó E{a} là trung bình thống kê hay trung bình tập hợp của một biến
ngẫu nhiên a.
Sử dụng công thức về phân bố Gauss ở (4.1) chúng ta có
gI2
1
p(gI ) = √exp − 2 (4.39)
σg 2π 2σg
2
gQ
1
p(gQ ) = √ exp − 2 (4.40)
σg 2π 2σg
4.3. Kênh pha-đinh Rayleigh 55
0.7
0.6
0.5
0.4
p(α)
0.3
0.2
0.1
0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
α
Do gI (t) và gQ (t) là các quá trình độc lập nên chúng ta có phân bố
|g|2
1
p(g) = p(gI )p(gQ ) = 2 exp − 2 (4.41)
σg 2π 2σg
với
|g(t)|2 = gI2 (t) + gQ
2
(t). (4.42)
Chuyển g(t) sang hệ toạ độ cực g(t) = α(t)ejθ(t) , với α(t) = |g(t)| là biên
độ của g(t), chúng ta có pdf kết hợp [2]
α2
α
p(α, θ) = 2 exp − 2 . (4.43)
σg 2π 2σg
Do α và θ là các biến độc lập nên chúng ta có thể viết
α2
α 1
p(α, θ) = p(α) · p(θ) = 2 exp − 2 · (4.44)
σg 2σg 2π
hay
α2
α
p(α) = 2 exp − 2 , α ≥ 0 (4.45)
σg 2σg
1
p(θ) = , −π ≤ θ < π (4.46)
2π
Tức là, pdf của biên độ α(t) là phân bố Rayleigh, và pha-đinh kiểu này
được gọi là pha-đinh Rayleigh. Hình vẽ 4.8 mô tả phân bố Rayleigh với σ = 1.
56 Chương 4. Kênh thông tin vô tuyến
2.5
K = 0
K = 5
K = 10
K = 18
1.5
p(α)
0.5
0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
α
Hình 4.9: Hàm phân bố Rice cho các giá trị khác nhau của K với Ap = 1.
Trong trường hợp môi trường tán xạ tồn tại tia truyền thẳng, gI (t) và
gQ (t) là các biến ngẫu nhiên Gauss độc lập với nhau, có giá trị trung bình
bằng µI (t) và µQ (t) khác 0. Nếu ta vẫn giả thiết gI (t) và gQ (t) có cùng phương
sai σg2 tại bất kỳ thời điểm t nào,thì biên độ của g(t), tức là α(t), tại một thời
điểm t bất kỳ sẽ có phân bố Rice được cho bởi [3]
α2 + χ2
α αχ
p(α) = 2 exp − 2
I0 , α≥0 (4.47)
σg 2σg σg2
trong đó
χ = µ2I (t) + µ2Q (t) (4.48)
được gọi là tham số lệch tâm (non-centrality parameter), và I0 (x) là hàm số
Bessel sửa đổi bậc 0 loại 1 (zero order modified Bessel function of the first
kind). Dạng pha đinh này được gọi là pha đinh Rice.
Một số mô hình kênh Rice đã được đề xuất trong thực tế giả thiết rằng
µI (t) và µQ (t) là các hằng số khác không [4, 5]. Một phương pháp có nhiều ưu
điểm hơn đã được đề xuất bởi Aulin [6]. Trong phương pháp này các giá trị
trung bình µI (t) và µQ (t) tương ứng với các thành phần đồng pha (in phase)
và trực giao (quadrature) của tia LOS được mô hình là các tham số xác định
4.5. Mô phỏng pha đinh Rayleigh và pha đinh Rice 57
biến đổi theo thời gian (deterministic time-varying) như sau [3, 6]
µI (t) = χ cos(2πfD cos(φ0 )t + θ0 ) (4.49)
µQ (t) = χ sin(2πfD cos(φ0 )t + θ0 ) (4.50)
trong đó fD cos(φ0 ) và θ0 là tần số Doppler và góc lệch pha ngẫu nhiên ứng
với tia LOS.
Một thông số quan trọng của kênh pha đinh Rice là hệ số Rice (Rice
factor), K, được định nghĩa là tỉ số giữa công suất của tia LOS χ2 và công
χ2
suất của các thành phần tán xạ 2σg2 , tức là K = 2σ 2 . Ta thấy rằng, khi K = 0
g
thì kênh truyền thuần tuý là kênh Rayleigh, và khi K = ∞ kênh truyền sẽ
không còn hiện tượng pha đinh.
Sử dụng hệ số Rice, ta có thể viết
KAp Ap
χ2 = , 2σg2 = , (4.51)
K +1 K +1
trong đó Ap = E{α2} = χ2 + 2σg2 là công suất trung bình của g(t). Khi đó,
hàm phân bố Rice trong (4.47) được viết lại như sau
s !
2
2α(K + 1) (K + 1)α K(K + 1)
p(α) = exp −K − I0 2α , α≥0
Ap Ap Ap
(4.52)
Hình vẽ 4.9 minh hoạ phân bố Rice cho một số giá trị khác nhau của K.
Trường hợp K = 0 chính là hàm phân bố Rayleigh. Từ hình vẽ ta thấy rằng
khi p
K càng lớn thì bề rộng của p(α) càng có xu hướng co hẹp lại quanh giá
trị Ap = 1. Điều đó chứng tỏ rằng khi K càng lớn thì tính ngẫu nhiên của
α càng giảm.
Hình 4.10: Đường bao tín hiệu bị pha đinh Rayleigh, số lượng tia L = 35, tần số Doppler
cực đại fD = 100 Hz.
sau
L
X
r(t) = αl e−jϕl (t) (4.53)
l=1
XL
= al ej2πfD,lτl e−jϕl (t) (4.54)
l=1
Sử dụng ϕl (t) ở công thức (4.23), sau một số biến đổi toán học, ta có
L
X
r(t) = al ej[2πfD cos(φl )t+θl ] (4.55)
l=1
với θl = −2πfc τl là góc pha ban đầu của tia tới thứ l. Các góc pha θl được giả
thiết là độc lập thống kê với nhau và có phân bố đều trong khoảng [0, 2π). Để
thuận tiện, ta thực hiện chuẩn hoá r(t) sao cho công suất của nó bằng 1, tức
là ta chọn các hệ số al = √1L . Lúc này ta có
L
1 X j[2πfD cos(φl )t+θl ]
r(t) = √ e (4.56)
L l=1
4.5. Mô phỏng pha đinh Rayleigh và pha đinh Rice 59
Theo mô hình của Jakes thì tia thứ l đến đều từ tất cả các hướng nên nếu
chọn ψ0 là một giá trị ngẫu nhiên trong khoảng [0, 2π) thì
l−1
φl = ψ0 + 2π , với l = 1, 2, . . . , L (4.57)
L
Thuật toán mô phỏng được tổng kết như sau.
• Chọn L lẻ
• For l = 1 to L
• End
L
1 X
• Tính r(t) = √ rl (t)
L l=1
Thuật toán này tuy dễ hiểu và dễ thực hiện nhưng số lượng phép tính sẽ
tăng lên đáng kể nếu ta chọn L có giá trị lớn. Trong [7] Jakes đã trình bày một
phương pháp nhằm làm giảm số lượng các thành phần dao động tần số thấp
trong (4.56), nhờ đó giảm được số lượng phép tính. Jakes đã chọn số lượng tia
L thoả mãn điều kiện
L = 4M + 2 (4.58)
Khi đó số lượng thành phần tần số thấp trong (4.56) sẽ giảm từ L xuống còn
M + 1. Trong [8], Pop và các cộng sự cũng đã đề xuất phương pháp nhằm
khắc phục những nhược điểm trong phương pháp giảm số lượng thành phần
dao động tần thấp của Jakes. Bạn đọc có thể tham khảo [7] và [8] để hiểu rõ
hơn về các phương pháp này.
Hình vẽ 4.10 minh hoạ một đường bao bị pha đinh Rayleigh điển hình
được tạo ra bởi chương trình mô phỏng pha đinh Rayleigh trình bày ở trên.
Trong chương trình mô phỏng, số lượng tia đến được chọn là L = 35 và tần
số Doppler cực đại fD = 100 Hz.
60 Chương 4. Kênh thông tin vô tuyến
Hình 4.11: Đường bao tín hiệu bị pha đinh Rice, số lượng tia L = 35, tần số Doppler cực
đại fD = 100 Hz, hệ số Rice K = 5 và K = 10.
Bài tập
1. Giả sử độ rộng xung là Ts , công thức mô phỏng pha-đinh Rayleigh sử
dụng mô hình của Jakes theo thời gian rời rạc là
L−1
1 X j[θl+2π cos(φl )fD Ts n]
gn = √ e . (4.61)
L l=0
với fD Ts được gọi là tần số Doppler chuẩn hoá (normalized Dopller
frequency). Cho fD Ts = 0.001, tạo 104 mẫu kênh pha-đinh Rayleigh. Sử
dụng hai hàm có sẵn hist và abs, vẽ phân bố biên độ của kênh pha đinh
tạo ra.
Mô phỏng Monte-Carlo
một số hệ thống vô tuyến
điển hình
AWGN
nk s^k
sk Error Detection
&
BER Calculation
Tại máy phát dữ liệu phát bk ∈ {0, 1} được tạo ra từ một nguồn gián đoạn
không không nhớ (DMS:Discrete Memoryless Source). Trong Matlab chuỗi dữ
liệu phát bk có thể được tạo nhờ sử dụng hàm có sẵn rand hoặc randn như
sau
bk = rand(1, N) > 0.5
hoặc
bk = randn(1, N) > 0
trong đó N là số mẫu cần tạo.
Chuỗi dữ liệu bk sau đó được điều chế BPSK. Phép điều chế BPSK ở đây
có thể coi tương đương với phép ánh xạ
√
sk = √Es nếu bk = 0 (5.1)
− Es nếu bk = 1
63
64 Chương 5. Mô phỏng Monte-Carlo một số hệ thống vô tuyến điển hình
√ √
tạo nên chuỗi dấu phát sk ∈ {+ Es , − Es }. Trong trường hợp điều chế
BPSK, Es = Eb = 1 nên sk ∈ {+1, −1}. Do đó phép ánh xạ bk → sk trong
điều chế BPSK có được thực hiện bằng Matlab như sau
sk = 1 − 2 ∗ bk
Các dấu phát sk truyền qua kênh truyền và chịu ảnh hưởng của tạp âm
AWGN. Do ảnh hưởng của AWGN, tín hiệu thu yk là xếp chồng (cộng) của
các dấu phát sk và các dấu tạp âm nk , tức là
yk = sk + nk (5.2)
trong đó nk là các dấu tạp âm AWGN phức có dạng
nk = nI,k + jnQ,k (5.3)
trong đó nI,k và nQ,k tương ứng là thành phần đồng pha và vuông pha của
tạp âm. Do phương sai của các thành phần σn2 I = σn2 Q = σn2 = N0 /2, trong đó
N0 /2 là mật độ phổ công suất tạp âm. Như vậy, phương sai của tạp âm nk trở
thành 2σn2 = N0 . Để tạo được tạp âm nk với phương sai 2σn2 chúng ta có thể
sử dụng hàm randn có sẵn trong Matlab để tạo ra chuỗi các dấu tạp âm có
phân bố chuẩn chính tắc, rồi nhân với độ lêch chuẩn của tạp âm σn như sau
nk = sigma ∗ (randn(1, N) + j ∗ randn(1, Ns )) (5.4)
Để tạo ra tạp âm có năng lượng thỏa mãn tỉ số (Eb /N0 )req cho trước chúng ta
đặt độ lệch chuẩn
Eb
σn = (σn2 ) = . (5.5)
2(Eb /N0 )req
Tức là,
sigma = sqrt(Eb/(2 ∗ EbNo))
nk = sigma ∗ (randn(1, N) + j ∗ randn(1, Ns ))
Tại máy thu, do tín hiệu điều chế BPSK chỉ chứa thành phần đồng pha
(phần thực), nên để tách tín hiệu phát sk từ tín hiệu thu được yk , máy thu
thực hiện tách lấy phần thực trước, sau đó thực hiện tách tín hiệu sử dụng
phương pháp tách sóng hợp lẽ tối ưu (MLD: Maximum Likelihood Detection).
Cụ thể, máy thu thực hiện phép so sánh và quyết định sau:
if yk ≥ 0 → ŝk = +1 (5.6)
elseif yk < 0 → ŝk = −1 (5.7)
Phép so sánh này được thực hiện trong Matlab nhờ sử dụng hàm sign(yk).
Tín hiệu tách được ŝk sau đó được so sánh với tín hiệu phát sk để tính toán
phẩm chất lỗi bít BER của hệ thống.
Một ví dụ mẫu chương trình mô phỏng truyền BPSK qua kênh AWGN
được trình bày ở chương trình MATLAB BPSKAWGN.m ở Matlab Program 5.1.
Chương trình thực hiện mô phỏng với N = 105 dấu BPSK {+1, −1}. Kết quả
BER thu được tù chương trình mô phỏng BPSKAWGN.m được so sánh với giá trị
lý thuyết [1]
1
BERBPSK−AWGN = erfc Eb /N0 (5.8)
2
để xác định tính chính xác của kết quả mô phỏng (xem Hình vẽ 5.2).
5.1. Mô phỏng truyền dẫn BPSK qua kênh AWGN 65
−2
10
−3
10
BER
−4
10
−5
10
−6
10
0 1 2 3 4 5 6 7 8 9 10
Eb/No [dB]
% Ve do thi
semilogy(EbNodB,BER,’*’,EbNodB,BERtheory)
xlabel(’Eb/No’)
ylabel(’BER’)
legend(’By simulation’,’By theory’)
title(’BER cua BPSK qua kenh AWGN’)
grid
gk g k*
AWGN *
nk
gk
Fading
generator
gk
sk Error Detection sk
^
SER/BER
Calculation
Hình 5.3: Sơ đồ mô phỏng truyền dẫn MPSK qua kênh pha-đinh sử dụng tách tín hiệu
đồng bộ (coherent detection).
Q
2 1 2p/M
3 0
p/M
I
4
7 ( M -1)
5 6
Hình 5.4: Sơ đồ phân bố tín hiệu (signal constellation) của tín hiệu 8PSK.
5.2. Mô phỏng truyền dẫn M-PSK qua kênh pha-đinh Rayleigh 67
Dựa trên thuật toán mô phỏng truyền dẫn BPSK qua kênh AWGN, chúng
ta có thể xây dựng thuật toán mô phỏng hệ thống truyền dẫn MPSK qua kênh
pha-đinh Rayleigh như sau:
1. Tạo dữ liệu và Điều chế: điều chế M-PSK thực hiện nhóm κ = log2 M
bít dữ liệu nhị phân thành một điểm tín hiệu trên sơ đồ phân bố tín
hiệu như trên Hình 5.4. Dựa trên phương pháp gán nhãn các điểm tín
hiệu từ 0 đến M − 1 như ở hình vẽ, chúng ta thấy rằng điểm tín hiệu
thứ i có thể được biểu diễn bởi
2π π
si = A exp i+ (5.9)
M M
√
Trong đó A = Es là biên độ tín hiệu và M π
là pha ban đầu của sơ đồ
tín hiệu. Như vậy, để tạo ra chuỗi các dấu điều chế MPSK sk , chúng ta
có thể tạo ra các số nguyên ngẫu nhiên bk ∈ {0, 1, 2, ..., M − 1}, rồi thay
i = bk ở công thức (5.9). Như vậy, toàn quá trình tạo dữ liệu, mapping,
và điều chế có thể được thực hiện bằng Matlab như sau
bk = randint(1, N, [0 M − 1]);
theta = 2 ∗ pi/M ∗ bk + pi/M;
sk = A ∗ exp(j ∗ theta)
2. Tạo kênh pha-đinh: kênh pha-đinh gk được tạo bởi thuật toán tạo pha-
đinh Rayleigh ở Mục 4.5. Trong trường hợp pha-đinh Rayleigh có thể sử
dụng kết quả Bài tập 4.1.
3. Tạo tạp âm AWGN nk : tạp âm nk được tạo ra sử dụng phương pháp
mô tả ở Mục 5.1 với σn2 = 2EEs /N
s
0
. Với tín hiệu MPSK một dấu sk chứa
κ = log2 M bit dữ liệu nhị phân, vì vậy, quan hệ năng lượng bit và dấu
được biểu diễn bởi Es = κEb = Eb log2 M
4. Tách tín hiệu đồng bộ (coherent detection): nguyên lý tách coherent de-
tection là sử dụng liên hợp phức của ước lượng kênh truyền ĝk (ước lượng
được nhờ các bộ ước lượng kênh) nhân với tín hiệu thu yk để quay pha
tín hiệu, bị dịch đi do pha-đinh, về vị trí ban đầu, tức là, ŷk = ĝk∗ yk . Để
thuận tiện cho mô phỏng chúng ta có thể coi ĝk được ước lượng một cách
chính xác, tức là, ĝk = gk , và sử dụng ngay gk cho tách tín hiệu coherent.
Mặc dù bằng cách này ảnh hưởng quay pha do pha-đinh đã được khắc
phục, nhưng góc pha tín hiệu thu vẫn không trùng với góc pha của tín
hiệu phát do còn chịu ảnh hưởng của tạp âm. Sử dụng phương pháp tách
tín hiệu hợp lẽ tối đa (MLD), bộ tách tín hiệu thực hiện quyết định dựa
trên góc pha của ŷk . Tức là,
θˆk = ∠ŷk (5.10)
trong đó ∠ biểu diễn phép tính lấy góc pha. Trong Matlab phép tính lấy
góc này có thể thực hiện được nhờ hàm có sẵn angle. Từ góc pha θˆk
68 Chương 5. Mô phỏng Monte-Carlo một số hệ thống vô tuyến điển hình
này chuỗi dữ liệu phát ban đầu bk bằng thao tác ánh xạ ngược
M ˆ
b̂k = θk (5.11)
2π
trong đó · biểu diễn phép tính làm tròn về số nguyên gần nhất về phía
0, tức là phép tính lấy floor. Trong Matlab phép tính · được thực hiện
bằng hàm có sẵn floor.
5. Tính toán tỉ số lỗi dấu SER và tỉ số lỗi bit BER: sai số dấu của giữa tín
hiệu phát bk và tín hiệu thu được b̂k , được xác định nhờ so sánh hiệu số
k = b̂k − bk , mỗi k
= 0 tương ứng với một dấu bị sai. Vì vậy, tỉ số SER
có thể tính được tính bởi
Ns
SER = e (5.12)
N
Để tính được tỉ số BER chúng ta có thể sử dụng hàm biterr của Matlab
như sau:
BER = biterror(bk, bk_hat, kappa) (5.13)
Bài tập
5.1 Sử dụng thuật toán mô phỏng truyền dẫn M-PSK ở Mục 5.2, viết chương
trình mô phỏng tính tỉ số lỗi SER và BER cho điều chế QPSK qua kênh
pha-đinh Rayleigh. So sánh tỉ số BER của QPSK thu được với xác suất
lỗi của BPSK ở công thức (2.7), viết nhận xét.