Chủ Nhật, 12 tháng 7, 2020

5.10 Mô phỏng kênh thông tin - Kênh truyền fading Rician

Đề bài: Mô phỏng kênh truyền fading Rician với hệ số K cho trước bằng hai cách

Giải: Hàm Marcum Q trong Matlab là hàm marcumq(). Mã nguồn Matlab cho kênh Rician là như sau:

==================== CODE MATLAB ====================

clear all
clc
SNRdB = (0:2:20)';
SNR = 10.^(SNRdB/10);
% Shape parameter
K = 5;
% Scale parameter
Omega = 2;

% LoS: A - sigma
v2 = Omega*K/(1 + K);
v = sqrt(v2);

% NLOS - sigma - B
s2 = 1/2*Omega/(1+K);
s = sqrt(s2);

% SNR nguong
gth = 2;

% Mo phong
N = 10^6;

% Tao he so kenh truyen
% Cach 1
alpha = random('Rician',v,s,1,N);
phi = 2*pi*rand(1,N);
h = alpha.*(cos(phi) + 1i*sin(phi));
% Ty so tin hieu tren nhieu
g = SNR.*abs(h).^2;
% Xac suat dung
OP_1 = sum(g < gth,2)/N;

% Cách 2
X = v*cos(pi/4) + s.*randn(1,N);
Y = v*sin(pi/4) + s.*randn(1,N);
h = X + 1i*Y;
% Ty so tin hieu tren nhieu
g = SNR.*abs(h).^2;
% Xac suat dung
OP_2 = sum(g < gth,2)/N;

% OP ly thuyet
% Ty so tin hieu tren nhieu trung binh
g_ =  SNR.*Omega;
OP_t = 1 - marcumq(sqrt(2*K),sqrt(2*(1+K)*gth./g_),1);

% Ve do thi BER
semilogy(SNRdB,OP_1,'o',SNRdB,OP_2,'+',SNRdB,OP_t);
legend('Cach 1','Cach 2','Ly thuyet');
xlabel('Ty so tin hieu tren nhieu theo dB');
ylabel('Xac suat dung');
set(gcf,'color','white');

Hình 5.6: Mô phỏng kênh truyền fading Rician bằng hai cách.  

 

Không có nhận xét nào:

Đăng nhận xét

2.16 Tìm giá trị nhỏ nhất và lớn nhất trong ma trận

Cho ma trận X = [1 2 3; 4 5 6; 7 8 9]. Hãy a. Tìm giá trị lớn nhất và giá trị nhỏ nhất theo hàng. b. Tìm giá trị lớn nhất và nhỏ nhất theo...