📄 multipath_chann1.m
字号:
function output_sig=multipath_chann1(input_sig,L,var_pow,delay,fd,t_interval)
%input_sig输入信号矩阵,加了cp后的信号,大小为NL×(子载波个数+cp长度lp);
%num多径数;
%var_pow各径相对主径的平均功率,单位dB;
%delay各径延时,单位s;
%fd最大dopple频率;
%t_interval为离散信道抽样时间间隔,等于OFDM符号长度/(子载波个数+cp长度lp);
%output_sig为经过多径信道的输出信号矢量
%counter各径间隔记录
%count_begin本次产生信道开始记录的初始位置
%t_shift=floor(delay/t_interval);%归一化各径延时
%theta_shift=2*pi*fc*delay;
[P1,N1]=size(input_sig); %m:每个码元的归一化持续时间,n:一桢码元个数,ante:发射天线个数
selec_ray_chan=zeros(L,N1);%初始化频率选择性信道,径数=L(信道阶数)
pow_per_channel=10.^(var_pow/10);%各径功率线性化,从dB转变成线性
total_pow_allchan=sum(pow_per_channel);%各径功率之和
%以下for循环产生相互独立的num条rayleigh信道
for l=1:L
atts=sqrt(pow_per_channel(l));
selec_ray_chan(l,:)=atts*rayleighnew11(N1,t_interval,fd);
end
[h1,h0]=h_tran1(input_sig,selec_ray_chan);
output_sig=zeros(size(input_sig));
for n=1:N1
if n==1
output_sig(:,n)=h1(:,:,n)*input_sig(:,n);
else
output_sig(:,n)=h1(:,:,n)*input_sig(:,n)+h0(:,:,n)*input_sig(:,n-1);
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -