Tải bản đầy đủ (.doc) (13 trang)

Mô phỏng mạng truyền thông

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 (378.34 KB, 13 trang )

BỘ GIÁO DỤC ĐÀO TẠO

TRƯỜNG ĐẠI HỌC QUY NHƠN

TIỂU LUẬN MÔN MÔ HÌNH HÓA VÀ
MÔ PHỎNG MẠNG TRUYỀN THÔNG
Đề tài: Mô phỏng Monte-Carlo hệ thống truyền dẫn
BPSK qua kênh AWGN

Họ và tên học viên:
1. Lê Quang Hưng

Lớp: Kỹ thuật Viễn thông

Quy Nhơn, tháng 6 năm 2018


I.

Kênh tạp âm AWGN

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


thiết bị hay sử dụng các phương pháp lọc. Tuy nhiên, có một nguồn tạp âm tự
nhiên không thể loại bỏ là tạp âm nhiệt. Tạp âm nhiệt xuất hiện do chuyển động
nhiệt của các điện tử trong tất cả các linh kiện điện tử như điện trở, dây dẫn hay
các phần tử dẫn điện khác. Sự chuyển động ngẫu nhiên và độc lập của vô hạn
các điện tử tạo nên các đặc tính thống kê Gauss theo định lý giới hạn trung tâm
(central limit theorem). Vì vậy, tạp âm nhiệt có thể mô tả như một quá trình
ngẫy nhiên Gauss có giá trị trung bình bằng không (zero mean).
Hàm mật độ xác suất (PDF Probability Density Function) của một quá trình
ngẫu nhiên Gauss n(t) được biểu diễn như sau:

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 = E{n2(t)}.
Tạp âm trắng: một đặc tính quan trong của tạp âm nhiệt là mật độ phổ tần số
của nó như nhau ở mọi tần số. Tức là, nó là nguồn tạp âm phát ra một lượng
công suất như nhau trên một đơn vị băng tần tại tất cả các tần số bằng

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 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).


Trong MATLAB, chúng ta có thể sử dụng hàm có sẵn randn để mô phỏng
tạp âm AWGN. Hàm randn cho phép tạo ra các biến ngẫu nhiên theo phân bố
chuẩn chính tắc (standard normal distribution) với giá trị trung bình 0, phương
sai 1 và độ lệch chuẩn 1.
II.

Sơ đồ truyền dẫn số qua kênh AWGN


Hình vẽ mô tả một sơ đồ truyền dẫn thông tin số cơ bản. Tại phía phát, nguồn
dữ liệu tạo ra một chuỗi các dấu phát dk, trong đó một dấu phát được tạo ra độc
lập với các dấu khác. Đối với một hệ thống thông tin nhị phân, chuỗi dấu phát
chứa hai dấu {1, 0}. Các nguồn dữ liệu kiểu này thường được sử dụng phổ biến
trong mô phỏng và được gọi là nguồn gián đoạn không nhớ (DMS: Discrete
Memory Source). Các dấu phát được tạo ra sau đó được ánh xạ thành các dạng
sóng phù hợp. Với hệ thống nhị phân, tập dạng sóng được định nghĩa {s 1(t),
s2(t)}. Máy phát (Tx), sau đó, sẽ thực hiện chức năng khuếch đại dạng sóng đầu
ra của bộ điều chế để phát đi trên kênh truyền với công suất yêu cầu.

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, để đơn giản, chúng ta giả thuyết kênh
truyền chỉ tạo ra tạp âm trắng cộng (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 của 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 PE.


Hệ thống được đề cập 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ế xác suất lỗi PE đã được tính toán một cách dễ dàng và trình
bày ở hầu hết các tài liệu về thông tin số, và cho bởi

Trong đó Es là năng lượng trung bình của các dấu phát, N 0 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, thì
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 s 2(t) = - s1(t), thì các
tín hiệu sẽ tương quan ngược (anticorrelated), và k=2.
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 đâ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.
III.

Truyền dẫn số BPSK

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 Keying) 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à

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

Để ý 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ỗi 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ả 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 hai 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 là 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, ước lượng PE sử dụng một số hữu hạn các
dấu nhị phân phát, 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 xem xét phương pháp Monte-Carlo.
IV.

Mô phỏng Monte-Carlo trong truyền dẫn số

Mô phỏng Monte-Carlo là một phương pháp mô phỏng ngẫu nhiên được sử
dụng để đánh giá sự lặp lại chất lượng của một mô hình xác định sử dụng các
tập biến đầu vào ngẫu nhiên. Phương pháp mô phỏng Monte-Carlo được bắt
nguồn từ trò chơi may rủi được các casino tạo ra bằng các bộ tạo số ngẫu nhiên
cơ khí. Tên gọi Monte-Carlo được lấy từ tên gọi của thành phố quê hương nổi
tiếng của các sòng bạc Monte-Carlo. Kỹ thuật Monte-Carlo về bản 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).


Hình 4.1 Mô hình mô phỏng Monte-Carlo.
Giả thiết chúng ta có mô hình một hệ thống truyền dẫn được mô tả bởi
các tín hiệu đầu vào u(t), v(t), và w(t) là các quá trình ngẫu nhiên. Mục tiêu của
chúng ta là đi tìm các đặc tính thống kê của y(t) hay giá trị kỳ vọng của một hàm
G{y(t)} nào đó của y(t). Nếu chúng ta giải bài toán này bằng cách giả lập hệ
thống trong đó tất cả các dạng sóng biến đổi theo thời gian, chúng ta sẽ có một
mô phỏng "thuần" Monte-Carlo. Điều này hàm . việc tạo ra các mẫu của tất cả
các quá trình đầu vào, cho các mô hình của các khối chức năng trong hệ thống
làm việc với các mẫu đầu vào này, rồi quan sát các dạng sóng đầu ra. Trong
trường hợp lý tưởng, mô phỏng Monte-Carlo tương ứng với hệ thống thực trong


phạm vi giới hạn của các giả thiết mô hình hóa và phép tính xấp xỉ. Giá trị kỳ
vọng E[G{y(t)}] được ước lượng từ mô phỏng Monte-Carlo theo công thức sau:

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.

Hình 4.2 Biểu diễn phương pháp mô phỏng Monte-Carlo.
Trong trường hợp mô hình mô phỏng hệ thống truyền dẫn số điển hình,
sơ đồ mô tả việc thực hiện mô phỏng Monte-Carlo để ước lượng tỉ lệ lỗi bit
BER hay tỉ lệ lỗi dấu SER được biểu diễn ở Hình 4.2 Mô phỏng Monte-Carlo
được tiến hành theo các bước sau đây:
• 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).
• Ước lượng tỉ số lỗi theo công thức sau:

trong đó, G{˜b(k)} = 1 nếu ˜b(k) ≠ b(k) và G(y(k)) = 0 nếu ˜b(k) ≠ b(k), tức là
G{˜d(k)} là hàm tính lỗi.

Độ 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ỉ.


V.

Mô phỏng Monte-Carlo 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.

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 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ạ

(1)
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

(2)

trong đó nk là các dấu tạp âm AWGN phức có dạng
nk = nI,k + jnQ,k

(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 σ2nI = σ2nQ = σ2n = 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σ2n= N0.
Để tạo được tạp âm nk với phương sai 2σ2n 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))

(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

(5)
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 → ˆsk = +1

(6)

elseif yk < 0 → ˆsk = −1

(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 ˆsk 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.
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. 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]


(8)
để xác định tính chính xác của kết quả mô phỏng (xem Hình vẽ 5.2).

Hình 5.2: Phẩm chất BPSK trên kênh AWGN.
Matlab Program 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

% BER ly thuyet cua truyen dan BPSK qua kenh AWGN
BERtheory=1/2*erfc(sqrt(EbNo));


% Ve do thi
semilogy(EbNodB,BER, '*',EbNodB,BERtheory)
xlabel('Eb/No [dB]')
ylabel('BER')
legend('By simulation', 'By theory')
title('BER cua BPSK qua kenh AWGN')
grid

VI.

Một số code mô phỏng bằng MATLAB

1, Code: Điều chế BPSK
f = 2; fs = 100; t = 0:1/fs:1;
% thiet lap cac pha khac nhau cua BPSK
p1 = 0;p2 = pi;N = 10;
% so bit duoc dieu che


bit_stream=round(rand(1,N));
time = [];
digital_signal = [];
PSK = [];
carrier_signal = [];
for ii = 1:1:N
if bit_stream(ii) == 0
bit = zeros(1,length(t));
else
bit = ones(1,length(t));
end


% tao bit ngau nhien nhi phan

% bit0 = (bit_stream(ii)==0)*zeros(1,length(t));
% bit1 = (bit_stream(ii)==1)*ones(1,length(t));
digital_signal = [digital_signal bit];
% tin hieu BPSK
if bit_stream(ii) == 0
bit = sin(2*pi*f*t+p1);
else
bit = sin(2*pi*f*t+p2);
end
PSK = [PSK bit];
%song mang
carrier = sin(2*f*t*pi);carrier_signal = [carrier_signal carrier];
time = [time t];t = t + 1;
end
% ve tin hieu so
subplot(3,1,1);
plot(time,digital_signal,'r');title(' Tin hieu so');grid on;
axis([0 time(end) -0.5 1.5]);
% ve song mang
subplot(3,1,2);
plot(time,carrier_signal);title(' song mang');grid on;axis tight;
%ve tin hieu dieu che BPSK
subplot(3,1,3);plot(time,PSK);title(' BPSK');grid on;axis tight;


Hình 6.1 Điều chế BPSK
2, Code BER của BPSK trên kênh AWGN

N = 10^6 %so bit
rand('state',100);
randn('state',200);
% May phat
ip = rand(1,N)>0.5;

% tao ma tran 0,1 voi xac suat bang nhau

s = 2*ip-1; %dieu che BPSK
n = 1/sqrt(2)*[randn(1,N) + j*randn(1,N)]; %nhieu trang GAUS
Eb_N0_dB = [-3:10];

%nhieu gia tri Eb/N0

for ii = 1:length(Eb_N0_dB)
% Nhieu cong
y = s + 10^(-Eb_N0_dB(ii)/20)*n; % them nhieu trang gauss
ipHat = real(y)>0;
nErr(ii) = size(find([ip- ipHat]),2);


end
simBer = nErr/N; % simulation BER
theoryBer = 0.5*erfc(sqrt(10.^(Eb_N0_dB/10)));

% BER theo ly thuyet

% vẽ BER
close all
figure

semilogy(Eb_N0_dB,theoryBer,'b.-');
hold on
semilogy(Eb_N0_dB,simBer,'mx-');
axis([-3 10 10^-5 0.5])
grid on
legend('theory', 'simulation');
xlabel('Eb/No, dB');
ylabel('Bit Error Rate');
title('BER-BPSK-AWGN');

Hình 6.2. BER của BPSK trên AWGN



×