You are on page 1of 11

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

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN


ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
KHOA ĐIỆN TỬ - VIỄN THÔNG


BÁO CÁO LAB 8


Hệ thống đa anten phát và đa anten thu
Học kỳ I – Năm học: 2023-2024

Nguyễn Dũng MSSV: 20200121


GVGD: Nguyễn Thị Xuân Uyên

Thành phố Hồ Chí Minh, ngày 15 tháng 12 năm 2023


Báo cáo Lab 8 Nguyễn Dũng - 20200121

NỘI DUNG THỰC HÀNH


I. Thực hành:.......................................................................................... 3
1. Hệ thống 2 anten phát và 1 anten thu: .........................................................3
2. Hệ thống 2 anten phát, 2 anten thu: .............................................................7

2|Page
Báo cáo Lab 8 Nguyễn Dũng - 20200121

I. Thực hành:
1. Hệ thống 2 anten phát và 1 anten thu:
Xét hệ thống gồm một nút nguồn S trang bị 2 anten phát và nút thu D được trang
bị 1 anten phát. S và D đặt cách nhau 𝑑 = 1, hệ số suy hao đường truyền 𝛼 = 2 . Tỷ số
SNR phát được cho bởi 𝑃/𝑁0 = 0 ∶ 2.5: 25 𝑑𝐵 , công suất nhiễu 𝑁0 = 0.1 . Nút nguồn
sử dụng điều chế QPSK.
Phần code:

clc; clear; close all;


M = 4; %bậc điều chế
alphaM = 2;
betaM = 1;
d = 1; alpha = 2;
Mt = 2; Mr = 1;
PN0dB = 0:2.5:25; PN0 = 10.^(PN0dB/10);
N0 = 0.1; P = PN0*N0;
Ntry = 2*10^4; Ns = 2*10^3;
BER2_simul = zeros(length(PN0dB));
for i = 1:length(PN0dB)
Num_Err = 0;
for j = 1:Ntry
%--------------------- Đầu phát -----------------------
[s,Bit_data,Point_con] = a__Modulation_QPSK(Ns);
%------------------ Kênh truyền fading ----------------
h11 = sqrt(1/2) * (randn(1,1) + 1i*randn(1,1));
h12 = sqrt(1/2) * (randn(1,1) + 1i*randn(1,1));
r = zeros(1,Ns);
s_de = zeros(1,Ns);
for k = 1:2:Ns
%-------------------- AWGN ------------------------
n1 = sqrt(N0/2) * (randn(1,1) + 1i*randn(1,1));
n2 = sqrt(N0/2) * (randn(1,1) + 1i*randn(1,1));
%-------------------- Tín hiệu thu ----------------
r(k) = sqrt(P(i)*d^(-alpha)) * h11 * s(k) +...
sqrt(P(i)*d^(-alpha)) * h12 * s(k+1) + n1;
r(k+1)= -sqrt(P(i)*d^(-alpha)) * h11 *...
conj(s(k+1)) + sqrt(P(i)*d^(-alpha)) * h12 *...
conj(s(k)) + n2;

3|Page
Báo cáo Lab 8 Nguyễn Dũng - 20200121

%------------- Tín hiệu giải điều chế -------------


temp = sqrt(P(i)*d^(-alpha)) * (abs(h11)^2 +
abs(h12)^2);
s_de(k) = (conj(h11)*r(k) + h12*conj(r(k+1)))/temp;
s_de(k+1) = (conj(h12)*r(k)-h11*conj(r(k+1)))/temp;
end
%---------------------- Giãi mã ----------------------
Bit_de = a__Demodulation_QPSK(s_de, Point_con);
%---------------------- Error ------------------------
[Num, Rate] = biterr(Bit_data, Bit_de);
Num_Err = Num_Err + Num;
end
BER2_simul(i) = Num_Err/(length(Bit_data)*Ntry);
end
%---------------------- Lý thuyết ---------------------------
phiM = PN0 * betaM * d^(-alpha);
BER1_asy = (1/(2*log2(M)))*alphaM*betaM^-1*d^(1*alpha)*PN0.^-1;
BER2_asy = (3/(4*log2(M)))*alphaM*betaM^-2*d^(2*alpha)*PN0.^-2;
BER1 = alphaM/(2*log2(M))*(1-sqrt(0.5*phiM ./ (1 + 0.5*phiM)));
BER2 = alphaM/(2*log2(M)) * (1 - sqrt(phiM./(2+phiM)) -
1./(2+phiM) .* sqrt(phiM./(2+phiM)));
%---------------------- Đồ thị ------------------------------
figure(1);
semilogy(PN0dB,BER1,'b','linewidth',1.2); hold on;
semilogy(PN0dB,BER1_asy,'k-s','linewidth',1.2);
semilogy(PN0dB,BER2,'r','linewidth',1.2);
semilogy(PN0dB,BER2_asy,'k--','linewidth',1.2);
semilogy(PN0dB,BER2_simul,'ko','linewidth',1.2,'markersize',5);
xlabel('SNR (dB)'); ylabel('BER'); grid on;
legend('Exact 1x1','Asymptotic 1x1', 'Exact 2x1','Asymptotic2x1',
'Simulation 2x1')

4|Page
Báo cáo Lab 8 Nguyễn Dũng - 20200121

Phần code được xây dựng chủ yếu dựa trên mô hình sau:

Các tín hiệu chuỗi bit sẽ được ánh xạ lên giản đồ chòm sao QPSK. Sau đó dựa vào
mô hình MIMO STBC ở trên để tín hành truyền dữ liệu và thu nhận dữ liệu. Chúng ta đang
khảo sát trên kênh Rayleigh fading biến đổi chậm và phẳng (Trong quá trình truyền 1
symbol kênh truyền không thay đổi). Cách tạo kênh cũng như các bài lab trước đã được
học. Ngoài ra còn có nhiễu Gauss ở phía thu…
Các tín hiệu thu được ở 2 thời điểm 𝑖, 𝑗 là:

Dựa trên tín hiệu thu được, ta tiến hành ước lượng và giải điều chế:

5|Page
Báo cáo Lab 8 Nguyễn Dũng - 20200121

Sau khi ước lượng tiến hành giải điều chế, tính BER và vẽ đồ thi so sánh hiệu suất
giữa SISO, Mô hình 2 × 1.
Kết quả chạy code:

Nhận xét:
Quan sát kết quả, ta thấy đối với mô hình 2 × 1, sẽ cho ra tỷ lệ lỗi BER thấp hơn
so với SISO 1 × 1. Điều nay đúng với lý thuyết đã được học. Bằng việc tăng số lượng
anten lên thì khả năng chống nhiễu fading đa đường cũng tăng (Phân tập không gian). Về
tốc độ truyền cũng tương tự nhau.
6|Page
Báo cáo Lab 8 Nguyễn Dũng - 20200121

2. Hệ thống 2 anten phát, 2 anten thu:


Cho hệ thống MIMO 2 × 2 , ở đây nút nguồn được trang bị 2 anten phát và nút nhận được
trang bị 2 anten thu. Tại đầu phát, mã STBC cho 2 anten phát được sử dụng như (4), các ký hiệu
được phát trên anten có công suất trung bình P và công suất trung bình nhiễu trên mỗi anten thu là
𝑁0 . Khoảng cách giữa đầu phát và đầu thu là 𝑑 , hệ số suy hao đường truyền 𝛼 . Kênh truyền giữa
nút nguồn và đích là Rayleigh fading biến đổi chậm và phẳng. Mô hình mô tả như Hình 5

Sơ đồ hệ thống:

Cơ sở lý thuyết:
Các tín hiệu chuỗi bit sẽ được ánh xạ lên giản đồ chòm sao QPSK.
Tín hiệu nhận tại đầu thu anten 1 tại thời điểm thứ nhất 𝑡1 :

𝑟11 = √𝑃𝑑 −𝛼 ℎ11 𝑥𝑖 + √𝑃𝑑 −𝛼 ℎ12 𝑥𝑗 + 𝑛1

Tín hiệu nhận tại đầu thu anten 2 tại thời điểm thứ nhất 𝑡1 :

𝑟21 = √𝑃𝑑 −𝛼 ℎ21 𝑥𝑖 + √𝑃𝑑 −𝛼 ℎ22 𝑥𝑗 + 𝑛1

Tín hiệu nhận tại đầu thu anten 1 tại thời điểm thứ nhất 𝑡2 :

𝑟12 = −√𝑃𝑑 −𝛼 ℎ11 𝑥𝑗∗ + √𝑃𝑑 −𝛼 ℎ12 𝑥𝑖∗ + 𝑛2

Tín hiệu nhận tại đầu thu anten 2 tại thời điểm thứ nhất 𝑡2 :

𝑟22 = −√𝑃𝑑 −𝛼 ℎ21 𝑥𝑗∗ + √𝑃𝑑 −𝛼 ℎ22 𝑥𝑖∗ + 𝑛2

7|Page
Báo cáo Lab 8 Nguyễn Dũng - 20200121

Chúng ta đang khảo sát trên kênh Rayleigh fading biến đổi chậm và phẳng (Trong
quá trình truyền 1 symbol kênh truyền không thay đổi). Cách tạo kênh cũng như các bài
lab trước đã được học. Ngoài ra còn có nhiễu Gauss ở phía thu…
Ước lượng, dựa trên 4 phương trình thu được ở trên:
∗ ∗ ∗ ∗
ℎ11 ∗ 𝑟11 + ℎ12 ∗ 𝑟12 + ℎ21 ∗ 𝑟21 + ℎ22 ∗ 𝑟22
𝑥̃𝑖 =
√𝑃𝑑 −𝛼 (|ℎ11 |2 + |ℎ12 |2 + |ℎ21 |2 + |ℎ22 |2 )
∗ ∗ ∗ ∗
ℎ12 ∗ 𝑟11 − ℎ11 ∗ 𝑟12 + ℎ22 ∗ 𝑟21 − ℎ21 ∗ 𝑟22
𝑥̃𝑗 =
√𝑃𝑑 −𝛼 (|ℎ11 |2 + |ℎ12 |2 + |ℎ21 |2 + |ℎ22 |2 )
Sau khi ước lượng tiến hành giải điều chế, tính BER và vẽ đồ thi so sánh hiệu suất
giữa SISO, Mô hình 2 × 1, Mô hình 2 × 2.
Thiết lập code:

clc; clear; close all;


M = 4; %Bậc điều chế
alphaM = 2;
betaM = 1;
d = 1; alpha = 2;
Mt = 2; Mr = 2;
PN0dB = 0:2.5:25; PN0 = 10.^(PN0dB/10);
N0 = 0.1; P = PN0*N0;
Ntry = 2*10^3; Ns = 2*10^3;
BER2_2_simul = zeros(length(PN0dB));
for i = 1:length(PN0dB)
Num_Err = 0;
for j = 1:Ntry
%--------------------- Đầu phát -----------------------
[s,Bit_data,Point_con] = a__Modulation_QPSK(Ns);
%------------------ Kênh truyền fading ----------------
h11 = sqrt(1/2) * (randn(1,1) + 1i*randn(1,1));
h12 = sqrt(1/2) * (randn(1,1) + 1i*randn(1,1));
h21 = sqrt(1/2) * (randn(1,1) + 1i*randn(1,1));
h22 = sqrt(1/2) * (randn(1,1) + 1i*randn(1,1));
r = zeros(1,Ns);
z = zeros(1,Ns);
s_de = zeros(1,Ns);

for k = 1:2:Ns
%-------------------- AWGN ------------------------
8|Page
Báo cáo Lab 8 Nguyễn Dũng - 20200121

n1 = sqrt(N0/2) * (randn(1,1) + 1i*randn(1,1));


n2 = sqrt(N0/2) * (randn(1,1) + 1i*randn(1,1));
%-------------------- Tín hiệu thu ----------------
r(k) = sqrt(P(i)*d^(-alpha)) * h11 * s(k) +...
sqrt(P(i)*d^(-alpha)) * h12 * s(k+1) + n1;
r(k+1)= -sqrt(P(i)*d^(-alpha)) * h11 *...
conj(s(k+1)) + sqrt(P(i)*d^(-alpha)) * h12 *...
conj(s(k)) + n2;
z(k) = sqrt(P(i)*d^(-alpha)) * s(k)*h21
+sqrt(P(i)*d^(-alpha))*s(k+1)*h22 +n1;
z(k+1) = -sqrt(P(i)*d^(-alpha))*conj(s(k+1))*h21
+sqrt(P(i)*d^(-alpha))*conj(s(k))*h22 +n2;
%------------- Tín hiệu giải điều chế -------------
temp = sqrt(P(i)*d^(-alpha)) * (abs(h11)^2 +
abs(h12)^2 + abs(h21)^2 + abs(h22)^2);
s_de(k) = (conj(h11)*r(k) + h12*conj(r(k+1)) +
conj(h21)*z(k)+h22*conj(z(k+1)))/temp;
s_de(k+1) = (conj(h12)*r(k)-
h11*conj(r(k+1))+conj(h22)*z(k)-h21*conj(z(k+1)))/temp;

end
%---------------------- Giãi mã ----------------------
Bit_de = a__Demodulation_QPSK(s_de, Point_con);
%---------------------- Error ------------------------
[Num, Rate] = biterr(Bit_data, Bit_de);
Num_Err = Num_Err + Num;
end
BER2_2_simul(i) = Num_Err/(length(Bit_data)*Ntry);
end
%---------------------- Lý thuyết ---------------------------
phiM = PN0 * betaM * d^(-alpha);
BER1_asy = (1/(2*log2(M)))*alphaM*betaM^-1*d^(1*alpha)*PN0.^-1;
BER2_asy = (3/(4*log2(M)))*alphaM*betaM^-2*d^(2*alpha)*PN0.^-2;
BER1 = alphaM/(2*log2(M))*(1-sqrt(0.5*phiM ./ (1 + 0.5*phiM)));
BER2 = alphaM/(2*log2(M)) * (1 - sqrt(phiM./(2+phiM)) -
1./(2+phiM) .* sqrt(phiM./(2+phiM)));
BER2_2 = zeros(1,length(PN0dB));
for i = 1:length(PN0dB)
Sum = 0;
for k = 0:Mt*Mr-1
temp = gamma(k+1/2)/factorial(k)
*(2/(2+phiM(i)))^k*sqrt(phiM(i)/(2+phiM(i)));

9|Page
Báo cáo Lab 8 Nguyễn Dũng - 20200121

Sum = Sum + temp;


end
BER2_2(i) = alphaM/(2*log2(M))*(1-Sum/sqrt(pi));
end
%---------------------- Đồ thị ------------------------------
figure(1);
semilogy(PN0dB,BER1,'b','linewidth',1.2); hold on;
semilogy(PN0dB,BER1_asy,'k-s','linewidth',1.2);
semilogy(PN0dB,BER2,'r','linewidth',1.2);
semilogy(PN0dB,BER2_asy,'k--','linewidth',1.2);
semilogy(PN0dB,BER2_2,'g','linewidth',1.2);
semilogy(PN0dB,BER2_2_simul,'ko','linewidth',1.2,'markersize',5);
xlabel('SNR (dB)'); ylabel('BER'); grid on;
legend('Exact 1x1', 'Asy 1x1','Exact 2x1','Asy 2x 1', 'Exact
2x2','Simulation 2x2');

Kết quả chạy code:

10 | P a g e
Báo cáo Lab 8 Nguyễn Dũng - 20200121

Nhận xét:
Quan sát kết quả, ta thấy đối với mô hình 2 × 2, sẽ cho ra tỷ lệ lỗi BER thấp hơn
so với SISO 1 × 1 và mô hình 2 × 1. Điều nay đúng với lý thuyết đã được học. Bằng việc
tăng số lượng anten lên càng nhiều thì khả năng chống nhiễu fading đa đường cũng tăng
(Phân tập không gian). Với mô hình 2 × 2, bậc phân tập là 4, còn mô hình SISO chỉ có bậc
phân tập là 1, mô hình 2 × 1 có bậc phân tập là 2. Theo lý thuyết, bậc phân tập càng cao,
Xác suất dừng càng nhỏ, hệ thống sẽ chạy tốt. Về tốc độ truyền cũng tương tự nhau.

HẾT!

11 | P a g e

You might also like