Tải bản đầy đủ (.pdf) (7 trang)

mô phỏng các hệ thống thông tin số sử dụng matlab

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

MÔ PHỎNG CÁC HỆ THỐNG
THÔNG TIN VÔ TUYẾN SỬ
DỤNG MATLAB
Simulation of Radio Communication Systems using Matlab
Trần Xuân Nam
Bộ môn Thông tin, Khoa Vô tuyến điện tử
Đại học Kỹ thuật Lê Quí Đôn
100 Hoàng Quốc Việt, Cầu Giấy , Hà Nội, Việt Nam
Phone: (069)-515392 E-mail:
Chương 5
Mô phỏng Monte-Carlo
một số hệ thống vô tuyến
điển hình
5.1 Mô phỏng truyền dẫn BPSK qua kênh AWGN
Hình vẽ 5.1 mô tả một sơ đồ mô phỏng đơn giản trên kênh AWGN sử dụng
điều chế BPSK.
Data Source
b
k
{0,1}
+
AWGN
n
k
ysn
kk k
=+
Detector
s
k
^


Error Detection
&
BER Calculation
s
k
^
Modulator
s
k
s
k
s
k
^
Hình 5.1: Sơ đồ mô phỏng truyền dẫn BPSK trên kênh AWGN.
Tại máy phát dữ liệu phát b
k
∈{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 b
k
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 b
k
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ạ
s
k
=


E
s
nếu b
k
=0


E
s
nếu b
k
=1
(5.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 s
k
∈{+

E
s
, −

E

s
}. Trong trường hợp điều chế
BPSK, E
s
= E
b
=1nên s
k
∈{+1, −1}. Do đó phép ánh xạ b
k
→ s
k
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 s
k
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 y
k
là xếp chồng (cộng) của
các dấu phát s
k
và các dấu tạp âm n
k
,tứclà
y
k
= s
k

+ n
k
(5.2)
trong đó n
k
là các dấu tạp âm AWGN phức có dạng
n
k
= n
I,k
+ jn
Q,k
(5.3)
trong đó n
I,k
và n
Q,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 σ
2
n
I
= σ
2
n
Q
= σ
2
n
= N

0
/2, trong đó
N
0
/2 là mật độ phổ công suất tạp âm. Như vậy, phương sai của tạp âm n
k
trở
thành 2σ
2
n
= N
0
. Để tạo được tạp âm n
k
với phương sai 2σ
2
n
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, N
s
)) (5.4)
Đểtạoratạpâmcónănglượngthỏamãntỉsố(E
b
/N
0
)

req
cho trước chúng ta
đặt độ lệch chuẩn
σ
n
=


2
n
)=

E
b
2(E
b
/N
0
)
req
. (5.5)
Tức là,
sigma = sqrt(Eb/(2 ∗EbNo))
nk = sigma ∗ (randn(1, N)+j ∗ randn(1, N
s
))
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 s
k
từ tín hiệu thu được y

k
,máythu
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 y
k
≥ 0 → ˆs
k
=+1 (5.6)
elseif y
k
< 0 → ˆs
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ínhiệutáchđượcˆs
k
sau đó được so sánh với tín hiệu phát s
k
để 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 =10
5
dấu BPSK {+1, −1}.Kếtquả
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]
BER

BPSK−AWGN
=
1
2
erfc


E
b
/N
0

(5.8)
để 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
0 1 2 3 4 5 6 7 8 9 10
10
−6
10
−5
10
−4
10
−3
10
−2
10
−1
Eb/No [dB]
BER

BER cua BPSK qua kenh AWGN
By simulation
By theory
Hình 5.2: Phẩm chất BPSK trên kênh AWGN.
Matlab Program 5.1 BPSKAWGN.m
% Chuong trinh mo phong truyen dan BPSK qua kenh AWGN
% Dinh nghia tham so
EbNodB=0:10;
EbNo=10.^(EbNodB./10);
sigLen=5*10^5;
% Tao tin hieu BPSK {+1,-1}
s=1-2*(rand(1,sigLen)>=0.5);
% Tinh toan nang luong bit tin hieu Eb
Eb=norm(s)^2/sigLen;
% Mat do pho AWGN
No=Eb./EbNo;
% Vong lap tinh toan BER theo Eb/No
for k=1:length(EbNo)
% Tao AWGN
n=sqrt(No(k)./2).*(randn(1,sigLen)+j*randn(1,sigLen));
% Tin hieu thu
y=s+n;
% Tach tin hieu
shat=sign(real(y));
error=s-shat;
noError=length(find(error~=0));
BER(k)=noError/sigLen;
end
66 Chương 5. Mô phỏng Monte-Carlo một số hệ thống vô tuyến điển hình
% BER ly thuyet cua truyen dan BPSK qua kenh AWGN

BERtheory=1/2*erfc(sqrt(EbNo));
%Vedothi
semilogy(EbNodB,BER,’*’,EbNodB,BERtheory)
xlabel(’Eb/No’)
ylabel(’BER’)
legend(’By simulation’,’By theory’)
title(’BER cua BPSK qua kenh AWGN’)
grid
5.2 Mô phỏng truyền dẫn M-PSK qua kênh pha-đinh
Rayleigh
Sơ đồ mô phỏng Monte-Carlo của hệ thống truyền dẫn MPSK qua kênh pha-
đinh Rayleigh được biểu diễn ở Hình 5.3
Data Source
b
k
+
AWGN
n
k
ygsn
kkk
=+
k
Coherent Detector
g
k
Error Detection
SER/BER
Calculation
y

k
^
Modulator
s
k
s
k
s
k
^
Mapping
q
k
Fading
generator
g
k
*
g
k
g
k
*
Decision
s
k
=Q{ }y
k
^
^

s
k
^
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).
0
12
3
4
56
7 ( -1)M
p/M
2p/M
I
Q
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ạodữliệuvàĐiềuchế:điều chế M-PSK thực hiện nhóm κ =log
2
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
s
i
= A exp



M
i +
π
M

(5.9)
Trong đó A =

E
s
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 s
k
, chúng ta
có thể tạo ra các số nguyên ngẫu nhiên b
k
∈{0, 1, 2, , M −1},rồithay
i = b
k
ở 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, [0M− 1]);
theta = 2 ∗pi/M ∗ bk + pi/M;
sk = A ∗exp(j ∗ theta)
2. Tạo kênh pha-đinh: kênh pha-đinh g

k
đượ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 n
k
: tạp âm n
k
được tạo ra sử dụng phương pháp
mô tả ở Mục 5.1 với σ
2
n
=
E
s
2E
s
/N
0
.VớitínhiệuMPSK một dấu s
k
chứa
κ =log
2
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 E
s
= κE
b
= E

b
log
2
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 ˆg
k
(ước lượng
được nhờ các bộ ước lượng kênh) nhân với tín hiệu thu y
k
để quay pha
tín hiệu, bị dịch đi do pha-đinh, về vị trí ban đầu, tức là, ˆy
k
=ˆg

k
y
k
.Để
thuận tiện cho mô phỏng chúng ta có thể coi ˆg
k
được ước lượng một cách
chính xác, tức là, ˆg
k
= g
k
, và sử dụng ngay g
k
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 ˆy
k
.Tứclà,
ˆ
θ
k
= ∠ˆy
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 b
k
bằng thao tác ánh xạ ngược
ˆ
b
k
=

M

ˆ
θ

k

(5.11)
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 b
k
vàtínhiệuthuđược
ˆ
b
k
, được xác định nhờ so sánh hiệu số

k
=
ˆ
b
k
−b
k
,mỗi
k
=0tươngứngvớimộtdấubịsai.Vìvậy,tỉsốSER
có thể tính được tính bởi
SER =
N
s
e

N
(5.12)
Để 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)
với kappa=κ =log
2
M.
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.
Tài liệu tham khảo
[1] H. Harada and R. Prasad, Simulation and Software Radio for Mobile Com-
munications. Artech House, 2002.

×