GIẢI THÍCH code MATLAB thầy N.V.Đảm
Trang 1HỌ VÀ TÊN: VŨ TIẾN ANH
figure (hình
vẽ đồ thị minh họa cho chương trình
không gian làm việc, giải phóng bộ nhớ hệ thống
ma trận 0 kích thước
Rx x Tx
Trang 2ma trận H_gausian H_Rayleigh=
zeros(N_Rx,N_Tx,N_symbol);
Tạo ma trận 0 H_Rayleigh với N_rx hàng N_Tx cột
đến N_Rx
đến N_Tx H_Rayleigh(m,n,:) =
disp(' Phan tich SVD cua H: [U, D, V]
Trang 3[U_Ray, D_Ray, V_Ray] =
svd(H_Ray);
Tạo ma trận U_Ray, D_Ray, V_Ray từ ma trận H_Ray
ma hoa
thuoc size(V)
ma hoa U
size(U)
Trang 5Sim_FWC_06_01_MIMO_Capacity_vs_SNR
gian làm việc, giải phóng
bộ nhớ hệ thống
SNR_dB chạy từ 0 đến 30 với bước nhảy là 5
SNR_linear
N-iter
với N là giá trị nhỏ nhất hoặc nT hoặc nR
Trang 6là một số nguyên
giải vào các trục
set(h1,'Name','Simulation for
Trang 7s1='MIMO: {\it N_T_x}=4,{\it
Trang 9→ Dung lượng tăng nhanh khi SNR tăng
Sim_FWC_06_02_MIMO_Capacity_vs_SNR.m
không gian làm việc, giải phóng bộ nhớ hệ thống
định
số/biến SNR_dB chạy
từ 0 đến 30 với bước nhảy là 5
Trang 10for Icase=1:5 Lặp qua giá trị Icase
và nR=1 + Còn lại thì nT = 1
và
nR = 1
nhỏ nhất nT hoặc nR
dạng n cột n hàng và
có đường chéo chính bằng 1
1 hàng và length(SNR-dB) cột
Ngược lại HH= H*H’
Trang 11plot(SNR_dB,C(1,:),'b-o','LineWidth',3.5);
Trang 12=>Hiệu quả khi số anten phat = anten thu
Sim_FWC_06_03_OL_CL_MIMO_Capacity.m
chú
gian làm việc, giải phóng bộ nhớ hệ thống
SNR_dB chạy từ 0 đến 30 với bước nhảy là 5
SNR_linear = 10SNR_dB 10
N-iter
MIMO: N Tx=1, N Rx=1
Trang 13n = min(nT,nR) Khai báo tham số/ biến N
với N là giá trị nhỏ nhất hoặc
nT hoặc nR
ma trận n x n
Rtx = [1 rho rho^2 rho^3; rho 1 rho rho^2; rho^2
rho 1 rho; rho^3 rho^2 rho 1];
Tạo ma trận chéo hóa Rtx 4x4
C_44_OL = zeros(1,length(SNR_dB)); C_44_CL
= zeros(1,length(SNR_dB));
Khởi tạo biến C_44_OL và C_44_CL có giá trị bằng ma trận 0 kích thước 1x
length(SNR_dB)
thay đổi từ 1 tới N_iter
log2(det(I+SNR_linear(i)*tm p));
C_44_OL(i) = C_44_OL(i) + log2(det(I+SNR_linear(i)*tm p));
P_opt = FWC_Water_Filling(Lamda,
SNR_linear(i),nT);
Tính giá trị P_opt dựa vào hàm FWC_Water_filling C_44_CL(i) = C_44_CL(i)
+log2(det(I+SNR_linear(i)/n
T*diag(P_opt)*diag(Lamda)) );
Tính giá trị C_44_CL thứ i dựa vào giá trị SNR thứ i và gán vào mảng C_44_CL C_44_OL = real(C_44_OL)/N_iter; C_44_CL =
real(C_44_CL)/N_iter
Lấy các giá trị phần thực của mảng giá trị C_44_OL và C_44_CL
for closed-loop and open-loop systems
Đặt màu , tên figure
Trang 14plot(SNR_dB, C_44_OL,'b-o','LineWidth',[3.5]); Mô phỏng kết quả
X = xlabel('SNR [dB]');
set(X,'fontname','.Vntime','fontsize',18,'color','b');
Y = ylabel('Ergodic Capacity vs SNR [bps/Hz]');
set(Y,'fontname','.Vntime','fontsize',18,'color','b');
Đặt chú thích
set(gca,'fontname','.Vntime','fontsize',12);
Trang 15CÁC CÂU HỎI TRONG FILE TNTH
Bài 6: Mô phỏng kênh và hệ thống SVD MIMO
Trang 18Kết quả mô phỏng kênh SVD MIMO trong môi trường truyền sóng pha đinh
Rayleigh
Ma trận H kênh phadinh Rayleigh:
Trang 19Ma trận V_Ray (N_Rx x N_Rx):
Ma trận U_Ray (N_Tx x N_Tx) và Ma trận đường chéo D_Ray:(N_Rx x Ntx)::
Trang 20Câu 2: Thực hiện mô phỏng trên Matlab theo trình tự xử lý các bước cho mô hình kênh và hệ thống SVD MIMO tối ưu (Đọc mã chương trình mô phỏng: NVD_D12VT_SVD_MIMO Channel)
Bước 1:
+ Một hệ thống kênh MIMO có Nt anten phát và Nr anten thu
=> Tạo nên ma trận phức ngẫu nhiên H (NrxNt)
Bước 2:
+ Với giá trị tham số đầu vào T_sim, N_symbol, fD, sai số ngẫu nhiên x, qua kênh Rayleigh sẽ tính được giá trị đầu ra y
Kết quả và giải thích mô phỏng em đã làm ở trên
Bài 7: Mô phỏng dung lượng kênh MIMO
Trang 24Câu 2 + 3 : Hệ thống MIMO vòng hở (OL): (NVD_MIMO_CL_OL_Capacity) và MIMO vòng kín (CL): (NVD_MIMO_CL_OL_Capacity)
√ Xác định và phân tích các tham số đầu vào của chương trình mô phỏng:
Giống phần giải thích em đã làm ở trên
√ Xác định các đoạn mã chương trình thực hiện các khối chức năng của mô hình
Xác định dung lượng kênh vòng hở (OL)
√ Phân tích kết quả mô phỏng: