一般室内信道模型的matlab仿真代码
clear, clf
scale=1e-9; % ns
Ts=10scale; % 采样时间
t_rms=30scale; % RMS时延扩展
num_ch=10000; %信道数
% 2径信道
pow_2=[0.5 0.5]; delay_2=[0 t_rms*2]/scale;
H_2 = Ray_model(num_ch).’*sqrt(pow_2);
avg_pow_h_2 = mean(H_2.*conj(H_2));
subplot(221), stem(delay_2,pow_2), hold on, stem(delay_2,avg_pow_h_2,‘r.’);
xlabel(‘Delay[ns]’), ylabel(‘Channel Power[linear]’);
title(‘Ideal PDP and simulated PDP of 2-ray model’);
%legend(‘Ideal’,‘Simulation’);
axis([0 140 0 0.7]);
%指数模型
pow_e=exp_PDP(t_rms,Ts);
delay_e=(0:length(pow_e)-1)*Ts/scale;
H_e = Ray_model(num_ch).’*sqrt(pow_e);
avg_pow_h_e = mean(H_e.*conj(H_e));
subplot(222), stem(delay_e,pow_e), hold on, stem(delay_e,avg_pow_h_e,‘r.’);
xlabel(‘Delay[ns]’), ylabel(‘Channel Power[linear]’);
title(‘Ideal PDP and simulated PDP of exponential model’);
legend(‘Ideal’,‘Simulation’); axis([0 140 0 0.7]);
function PDP=exp_PDP(tau_d,Ts,A_dB,norm_flag)
% 指数 PDP 生成器
% Input:
% tau_d : rms 时延扩展
% Ts : 采样时间
% A_dB : 最小的不可忽略的功率
% norm_flag : 归一化总功率为1
% Output:
% PDP : PDP 向量
if nargin<4, norm_flag=1; end % 归一化
if nargin<3, A_dB=-20; end % 20dB 以下
sigma_tau = tau_d; A = 10^(A_dB/10);
lmax=ceil(-tau_dlog(A)/Ts); % 式2.2
% 计算功率归一化的归一化因子
if norm_flag
p0=(1-exp(-Ts/sigma_tau))/(1-exp(-(lmax+1)Ts/sigma_tau)); % 式2.4
else
p0=1/sigma_tau;
end
% 指数pdp
l=0:lmax; PDP = p0exp(-lTs/sigma_tau);%式 2.5
end
function H=Ray_model(L)
H = (randn(1,L)+1j*randn(1,L))/sqrt(2);
end