% Z = plot3Dfigure(r,a,phi,tao,L)
% -------------------
% 功能:绘制功率-延迟-角度分布图。
% 输入:
% 1、归一化多径延迟:r
% 2、各多径分量复幅度:a
% 3、波达方向:phi
% 4、LOS分量时延tao
% 5、多径数L
% 输出:
% 信道总的冲激响应:Z
function Z = plot3Dfigure(r,a,phi,tao,L)
r = [tao*1e6,r]; % 将归一化多径延迟转换为实际时延
r = round(r /0.005); % 将时延r量化,令分辨率为5000ns
a = [1,a];
phi = [0,phi] * 180 / pi; % 将波达方向由弧度换算成角度
phi = round(phi /1); % 将波达方向量化,令分辨率为1度
h = Gauss3DPuls(0.05,10,0.02,4); % 生成一合适的高斯脉冲,令时间宽度为500ns,角度宽度为10度
maxh = max(max(h)); % 记录此高斯脉冲的最大值
[X,Y] = meshgrid(0-0.05:0.005:3.33+0.05, -180-25:1:180+25); % 生成TOA-DOA坐标“格点”矩阵
Z=zeros(361+50,677+10);
% 用各径功率对高斯脉冲进行加权并将其叠加,得到总的信道冲击响应
for i=1:L
temph = h * abs(a(i));
tempZ = zeros(361+50,677+10);
tempZ(phi(i)-10+180+25:phi(i)+10+180+25,r(i)-10+10:r(i)+10+10) = temph;
Z = Z + tempZ;
end
% 将阈值设定为比直射路径分量功率低20dB,所有低于这个阈值到达的多径分量都被忽略
TempZ = Z;
NotZeroZ = TempZ~=0;
TempZ(NotZeroZ) = 10*log10(Z(NotZeroZ).^2/max(max(TempZ))^2) + 20;
LessthanZeroZ = TempZ<=0;
TempZ(LessthanZeroZ) = 0;
figure;
mesh(X,Y,TempZ),colormap('jet');
axis([0 3.4 -195 195 0 max(max(TempZ))+1])
colormap(jet)
view(67,22)
xlabel('TOA(微秒)')
ylabel('DOA(度)')
zlabel('功率门限比(dB)')