get_channel_ir.m
来自「ofdm系统仿真」· M 代码 · 共 25 行
M
25 行
%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 + =
减小字号Ctrl + -
显示快捷键?