Matlab下多径衰落信道的仿真代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Matlab下多径衰落信道的仿真代码衰落信道参数包括多径扩展和多普勒扩展。时不变的多径扩展相当于一个延时抽头
滤波器,而多普勒扩展要注意多普勒功率谱密度,通常使用Jakes功率谱、高斯、
均匀功率谱。
多径衰落信道由单径信道叠加而成,而单径信道中最重要的就是瑞利(Rayleigh)平坦衰落信道。
下面给出瑞利平坦衰落信道的改进Jakes模型的实现:
function [h]=rayleigh(fd,t)
%改进的jakes模型来产生单径的平坦型瑞利衰落信道 %Yahong R.Zheng and Chengshan Xiao "Improved Models for
%the Generation of Multiple Uncorrelated Rayleigh Fading Waveforms"
%IEEE Commu letters, Vol.6, NO.6, JUNE 2002 %输入变量说明:
% fd:信道的最大多普勒频移单位Hz % t :信号的抽样时间序列,抽样间隔单位s % h为输出的瑞利信道函数,是一个时间函数复序列
%假设的入射波数目
N=40;
wm=2*pi*fd;
射波数目即振荡器数目 %每象限的入
N0=N/4;
%信道函数的实部
Tc=zeros(1,length(t));
%信道函数的虚部
Ts=zeros(1,length(t));
%归一化功率系数
P_nor=sqrt(1/N0);
%区别个条路径的均匀分布随机相位
theta=2*pi*rand(1,1)-pi;
for ii=1:N0
%第i条入射波的入射角
alfa(ii)=(2*pi*ii-pi+theta)/N; %对每个子载波而言在(-pi,pi)之间均匀分布的随机相位
fi_tc=2*pi*rand(1,1)-pi;
fi_ts=2*pi*rand(1,1)-pi;
%计算冲激响应函数
Tc=Tc+cos(cos(alfa(ii))*wm*t+fi_tc);
Ts=Ts+cos(sin(alfa(ii))*wm*t+fi_ts);
end;
%乘归一化功率系数得到传输函数
h=P_nor*(Tc+j*Ts );
改变fd,可以观察到信号功率随着fd的增大而变化加快。
还可以使用Matlab内置函数实现:
chan=rayleighchan(ts,fd);
y=filter(chan,x);%过信道
此内置函数可以直接生成一个频率选择多径衰落信道,每径为一个瑞利衰落过
程。
chan=rayleighchan(ts,fd,tau,pdb); %tau为每径相对时延向量
%pdb为每径相对增益