HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA VIỄN THÔNG MÔN HỌC CÁC MẠNG THÔNG TIN VÔ TUYẾN Phân tích chương trình mô phỏng SIM UWB 4 02 và SIM UWB 4 03 Giảng viên Nguyễn Viết Đảm SIM UWB 4 02 Phân tí[.]
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA VIỄN THÔNG
MÔN HỌC: CÁC MẠNG THÔNG TIN VÔ TUYẾN
Phân tích chương trình mô phỏng SIM_UWB 4.02 và SIM_UWB 4.03
Giảng viên: Nguyễn Viết Đảm
Trang 2
SIM_UWB 4.02
Phân tích mô phỏng:
Gọi x(t) là một tín hiệu băng tần cơ sở phát Tín hiệu băng thông dải của x(t) là:
𝑥̃(𝑡) = 𝑅𝑒[𝑥(𝑡)𝑒𝑗2𝜋𝑓𝑐 𝑡]
trong đó, Re[x(t)] là phần thực của tín hiệu x(t)
Tín hiệu thông dải được biểu diễn như sau:
𝑦̃(𝑡) = 𝑅𝑒 [∑ 𝐶𝑙𝑒𝑗2𝜋(𝑓𝑐 +𝑓𝑙)(𝑡−𝜏𝑙)
𝐿
𝑙=1
]
= 𝑅𝑒[𝑦(𝑡)𝑒𝑗2𝜋𝑓𝑐 𝑡] trong đó: 𝐶𝑙, 𝜏𝑙, 𝑓𝑙 lần lượt là độ lợi, trễ và dịch tần Doppler của thành phần đa đường thứ
l
Đáp ứng xung kim của tín hiệu:
ℎ(𝑡, 𝜏) = ℎ(𝑡)𝛿(𝑡 − 𝜏̂)
Giả sử x(t)=1 thì tín hiệu thu được biểu diễn như sau:
𝑦̃(𝑡) = 𝑅𝑒[𝑦(𝑡)𝑒𝑗2𝜋𝑓 𝑐 𝑡] = 𝑅𝑒[{ℎ𝐼(𝑡) + 𝑗ℎ𝑄(𝑡)}𝑒𝑗2𝜋𝑓𝑐𝑡] = ℎ𝐼(𝑡) cos(2𝜋𝑓𝑐𝑡) − ℎ𝑄(𝑡) sin(2𝜋𝑓𝑐𝑡) Trong đó ℎ𝐼(𝑡), ℎ𝑄(𝑡) là thành phần đồng pha và vuông pha của h(t):
ℎ𝐼(𝑡) = ∑ 𝐶𝑙cos (Φ𝑙(𝑡))
𝐿
𝑙=1
ℎ𝑄(𝑡) = ∑ 𝐶𝑙sin (Φ𝑙(𝑡))
𝐿
𝑙=1
Trang 3Theo định lý giới hạn trung tâm, khi L đủ lớn, thì ℎ𝐼(𝑡) và ℎ𝑄(𝑡) được coi là xấp xỉ biến ngẫu nhiên Gausơ Nên có thể kết luận biên độ của tín hiệu thu 𝑦̃(𝑡) = √ℎ𝐼2(𝑡) + ℎ𝑄2(𝑡) trên kênh đa đường phải chịu tác động của nhiều thành phần tán xạ có phân bố Rayleigh
Code matlab:
Tạo kênh pha đinh Rayleigh:
% Pro 4.05
% Rayleigh Channel Model
% Input : L : # of channel realization
% Output: H : Channel vector
H = (randn(1,L)+j*randn(1,L))/sqrt(2);
Tạo kênh pha đinh Rice
% Pro 4.06
% Rician Channel Model
% Input:
% K_dB : K factor [dB]
% L : # of channel realization
% Output:
% h : channel vector
K=10^(K_dB/10);
H = sqrt(K/(K+1)) + sqrt(1/(K+1))*uwb40201_Ray_model(L);
Phân bố của kênh pha đinh Rayleigh và kênh pha đinh Rice
% function Sim_UWB_402a
Trang 4clear all;
close all;
N = 200000;
level = 30;
K_dB = [-40 15];
Rayleigh_ch = zeros(1,N);
Rician_ch = zeros(2,N);
color = ['k'];
line = ['-'];
marker = ['s','o','^'];
% Rayleigh model
Rayleigh_ch = uwb40201_Ray_model(N); % Pro 4.05
[temp,x] = hist(abs(Rayleigh_ch(1,:)),level); plot(x,temp,['k-' marker(2)],'linewidth',2,'color','b'); hold on;
% Rician model
for i=1:length(K_dB);
Rician_ch(i,:)=uwb40202_Ric_model(K_dB(i),N); % Pro 4.06
[temp x]=hist(abs(Rician_ch(i,:)),level);
plot(x,temp,['k-'
marker(i+1)],'linewidth',1.5,'color','r');
end
xlabel('x','fontname','.vntime','fontsize',12);
ylabel('Mật độ xác suất
PT = legend('Rayleigh','Rician, K=-40dB','Rician,
set(PT,'FontName','.VnTime','FontSize',14);
grid on;
title('Phân bố của kênh pha đinh Rayleigh và kênh pha đinh
Chạy chương trỡnh ta cú được kết quả mụ phỏng phớa dưới:
Trang 5SIM_UWB 4.03
Nhập tham số đầu vào:
scale = 1e-9; % ns
Ts = 10*scale; % Sampling time t_rms = 30*scale; % RMS delay spread num_ch = 10000; % # of channel
Tạo kênh phân bố pha đinh:
% programe 4.05
% Rayleigh Channel Model
% Input : L : # of channel realization
% Output: H : Channel vector
H = (randn(1,L)+j*randn(1,L))/sqrt(2);
Tạo lý lịch trễ công suất cho mô hình kênh hàm mũ:
Trang 6function PDP = uwb40302_exp_PDP(tau_d,Ts,A_dB,norm_flag)
% Prog 4.08
% Exponential PDP generator
% Input:
% tau_d : rms delay spread in second
% Ts : Sampling time in second
% A_dB : the smallest noticeable power in dB
% norm_flag : normalizes total power to unit
% Output:
% PDP : PDP vector
%MIMO-OFDM Wireless Communications with MATLABđố Yong Soo Cho, Jaekwon Kim, Won Young Yang and Chung G Kang
%?2010 John Wiley & Sons (Asia) Pte Ltd
if nargin<4, norm_flag=1; end % normalizes
if nargin<3, A_dB=-20; end % 20dB below
sigma_tau = tau_d; A = 10^(A_dB/10);
lmax=ceil(-tau_d*log(A)/Ts); % get max path index
(2.8)/Ts
% Computes normalization factor for power normalization
if norm_flag
p0=(1-exp(-Ts/sigma_tau))/(1-exp(-(lmax+1)*Ts/sigma_tau)); % (2.10)
else p0=1/sigma_tau;
end
% Exponential PDP
l=0:lmax; PDP = p0*exp(-l*Ts/sigma_tau); % (2.11)
Chương trớnh nhận 4 tham số đầu vỏo:
• Trải trễ trung bớnh quón phan phương: tau_d
• Thời gian lấy mẫu: Ts
• Cừng suất nhỏ nhất khả nhận biết được: A_dB
• Cừng suất tổng chuẩn hụa đơn vị: norm_flag
Đầu ra chương trớnh cho ra vector lý lịch trễ cừng suất PDP
Hỏm chợnh
Trang 7%===================% 2-ray
model==========================================
pow_2 = [0.5 0.5];
delay_2 = [0 t_rms*2]/scale;
H_2 = uwb40201_Ray_model(num_ch).'*sqrt(pow_2);
% Prog 4.05
avg_pow_h_2 = mean(H_2.*conj(H_2));
figure(414)
subplot(121)
stem(delay_2,pow_2,'linewidth',1.5);
hold on;
stem(delay_2,avg_pow_h_2,'r.','linewidth',2.5);
xlabel('TrÔ [ns]','fontname','.vntime','fontsize',12),
ylabel('C«ng suÊt kªnh [tuyÔn
title('PDP lý t-ëng vµ PDP m« pháng cña m« h×nh 2
tia',
'fontname','.vntime','color','b','fontsize',14);
PT = legend('Lý t-ëng','M« pháng');
set(PT,'fontname','.vntime','fontsize',12)
axis([0 140 0 0.7]);
%===================Exponential model
exp_PDP==============================
pow_e = uwb40302_exp_PDP(t_rms,Ts);
% programe 4.08
delay_e = (0:length(pow_e)-1)*Ts/scale;
H_e = uwb40201_Ray_model(num_ch).'*sqrt(pow_e);
% programe 4.05
avg_pow_h_e = mean(H_e.*conj(H_e));
subplot(122)
stem(delay_e,pow_e);
hold on;
stem(delay_e,avg_pow_h_e,'r.');
xlabel('TrÔ [ns]','fontname','.vntime','fontsize',12);
ylabel('C«ng suÊt kªnh [tuyÔn tÝnh
title('PDP lý t-ëng vµ PDP m« pháng cña m« h×nh hµm
mò',
Trang 8'fontname','.vntime','color','b','fontsize',14);
PT = legend('Lý t-ëng','M« pháng');
set(PT,'fontname','.vntime','fontsize',12)
axis([0 140 0 0.7]);
Kết quả mô phỏng:
*Chương trình mô phỏng để tạo lý lịch trễ công suất theo mô hình kênh IEEE
802.11
%=========================IEEE80211_model.m===============
=================
clc;
clear all
% close all;
scale = 1e-9; % nano
Ts = 50*scale; % Sampling time
t_rms = 25*scale; % RMS delay spread
num_ch = 10000; % Number of channels
N = 128; % FFT size
Trang 9PDP = uwb40301_ieee802_11_model(t_rms,Ts); % Prog 4.09
for k=1:length(PDP)
h(:,k) = uwb40201_Ray_model(num_ch).'*sqrt(PDP(k)); % Prog 4.05
avg_pow_h(k)= mean(h(:,k).*conj(h(:,k)));
end
H=fft(h(1,:),N);
figure(415)
subplot(121)
stem([0:length(PDP)-1],PDP,'ko');
hold on,
stem([0:length(PDP)-1],avg_pow_h,'k.');
xlabel('ChØ sè nh¸nh cña kªnh ,
ylabel('C«ng suÊt kªnh trung b×nh [tuyÕn
title('M« h×nh IEEE 802.11, \sigma_\tau=25ns,
'fontname','.vntime','color','b','fontsize',14);
PT = legend('lý t-ëng','m« pháng');
set(PT,'fontname','.vntime','fontsize',14)
axis([-1 7 0 1]);
subplot(122)
plot([-N/2+1:N/2]/N/Ts/10^6,10*log10(H.*conj(H)), 'k-');
xlabel('TÇn sè
ylabel('C«ng su¸t kªnh
title('§¸p øng tÇn sè, \sigma_\tau=25ns, T_S=50ns',
'fontname','.vntime','color','b','fontsize',14); grid on;
Hàm phụ:
Chương trình mô phỏng để tạo lý lịch trễ công suất theo mô hình kênh IEEE 802.11
Trang 10function PDP=uwb40301_ieee802_11_model(sigma_tau,Ts)
% Prog 4.09
% IEEE 802.11 channel model PDP generator
% Input:
% sigma_tau : RMS delay spread
% Ts : Sampling time
% Output:
% PDP : Power delay profile
%MIMO-OFDM Wireless Communications with MATLABđố Yong Soo Cho, Jaekwon Kim, Won Young Yang and Chung G Kang
%?2010 John Wiley & Sons (Asia) Pte Ltd
lmax = ceil(10*sigma_tau/Ts); % (2.13)
sigma02=(1-exp(-Ts/sigma_tau))/(1-exp(-(lmax+1)*Ts/sigma_tau)); % (2.15)
l=0:lmax; PDP = sigma02*exp(-l*Ts/sigma_tau); % (2.14)
Nhận 2 tham số đầu vỏo:
• Trải trễ trung bớnh quón phương: sigma_tau
• Thời gian lấy mẫu: Ts
Kết quả mừ phỏng