📄 get_channel_ir.m
字号:
%General channel impulse response
function cir = get_channel_ir(sys_parm)
if sys_parm.ChannelMode == 2 %RAILEITH CHANNEL
delay = [0 : ceil(10 * (sys_parm.MaxDelay * (1e-9)) * sys_parm.SampFreq)];
cir = rayleighchan(1 / sys_parm.SampFreq, 0, - delay / sys_parm.SampFreq);
elseif sys_parm.ChannelMode == 1
if sys_parm.MaxDelay == 0
Kmax = 0;
env = 1;
else
%Calculate the exponential decay envelope
Kmax = ceil(10 * (sys_parm.MaxDelay * (1e-9)) * sys_parm.SampFreq) - 1;
var0 = (1 - exp(- 1 / (sys_parm.SampFreq * (sys_parm.MaxDelay * (1e-9))))) / ...
(1 - exp(- 1 * ((Kmax + 1) * sys_parm.SampFreq / (sys_parm.MaxDelay * (1e-9)))));
k = [0: Kmax];
env = var0 * exp(- k / (sys_parm.SampFreq * (sys_parm.MaxDelay * (1e-9))));
end
stdDevReOrIm = sqrt(env / 2);
cir = stdDevReOrIm .* (randn(1, Kmax + 1) + j * randn(1, Kmax + 1));
cir = cir / sqrt(cir * cir');
else %AWGN CHANNEL
cir = ones(1,1);
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -