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
Trang 1BỘ 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
Trang 2I 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)
Trang 3Trong 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 d k, 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 {s1(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
Trang 4Hệ 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
bày ở hầu hết các tài liệu về thông tin số, và cho bởi
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
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
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 đó, E b là năng lượng dấu, N 0 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 P E 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ố P E 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ể
Trang 5xá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 P E 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 P E 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 P E 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 P E dựa trên một số vô hạn các dấu phát, chúng ta ước lượng P E
dựa trên một số vô hạn các dấu phát, ước lượng P E 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 P E 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
Trang 6phạ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ỉ
Trang 7V 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 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ạ
(1)
tạo nên chuỗi dấu phát s k ∈ {+√Es,−√Es} Trong trường hợp điều chế BPSK,
Es = E b = 1 nê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ức là
Trang 8y k = s k + n k (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 (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 nI = σ2
nQ = σ2 n = 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 n k trở thành 2σ 2
n = N0.
Để 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, Ns)) (4)
Để tạo ra tạp âm có năng lượng thỏa m.n tỉ số (E b /N 0)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 s k từ tín hiệu thu được y k, 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 s k để 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]
Trang 9để 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;
Trang 10% 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
Trang 11bit_stream=round(rand(1,N)); % tao bit ngau nhien nhi phan 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
% 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;
Trang 12Hì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);
Trang 13end
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