zl程序教程

您现在的位置是:首页 >  后端

当前栏目

使用带外空间信息选择毫米波波束(Matlab代码实现)

MATLAB代码 实现 选择 毫米波 使用
2023-09-14 09:05:23 时间

 👨‍🎓个人主页:研学社的博客 

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🌈3 Matlab代码实现

🎉4 参考文献


💥1 概述

毫米波 (mmWave) 通信是车联网通信和下一代蜂窝通信等高数据速率应用的一种可行解决方案。然而,配置毫米波链路(可以通过信道估计或波束选择来完成)是大量开销的来源。在本文中,我们建议使用在sub-6 GHz提取的空间信息来帮助建立毫米波链路。假设全数字架构频率低于6 GHz;在毫米波的模拟架构中,我们概述了从sub-6 GHz中提取空间信息的策略及其在毫米波压缩波束选择中的应用。具体来说,我们将压缩波束选择表述为加权稀疏信号恢复问题,并从sub-6 GHz信道获取加权信息。此外,我们还概述了结构化的预编码器/组合器设计,以根据带外信息定制训练。我们还扩展了提议的带外辅助压缩波束选择方法,以利用来自毫米波所有有源OFDM子载波的信息。为了模拟多频段频率相关信道,我们回顾了先前关于频率相关信道行为的工作,并概述了多频信道模型。可达到速率的仿真结果表明,带外辅助波束选择可以显著降低仅带内波束选择的训练开销。

📚2 运行结果

 

 

部分代码:

function [par1,par2]=Algorithm2(C1,C2,tau_sigma1,tau_sigma2,gamma,sector_start,sector_end)
% _m becomes 1
% _s becomes 2
%% Generating both channel parameters independently
j=sqrt(-1);
% Channel 1
tau_c1 = tau_sigma1*log(rand(C1,1));
tau_c1 = sort(tau_c1-min(tau_c1));
%
theta_c1 = sector_start + rand(C1,1)*(sector_end - sector_start);
phi_c1 = sector_start + rand(C1,1)*(sector_end - sector_start);
% Channel 2
tau_c2 = tau_sigma2*log(rand(C2,1));
tau_c2 = sort(tau_c2-min(tau_c2));
%
theta_c2 = sector_start + rand(C2,1)*(sector_end - sector_start);
phi_c2 = sector_start + rand(C2,1)*(sector_end - sector_start);
%% Replacing clusters 
tau_max1=max(tau_c1);
tau_max2=max(tau_c2);
%
R1=[rand(C1,1)>gamma*(tau_c1/tau_max1)];
R2=[rand(C2,1)>gamma*(tau_c2/tau_max2)];
replacement_indices=intersect(find(R1==1),find(R2==1));
%
tau_c1(replacement_indices)=tau_c2(replacement_indices);
theta_c1(replacement_indices)=theta_c2(replacement_indices);
phi_c1(replacement_indices)=phi_c2(replacement_indices);
%% Adding perturbation
perturbation = rand(C1,1);
perturbation_time = gamma.*tau_c1.*perturbation;
perturbation_angle = gamma.*(tau_c1/tau_max1).*perturbation;
%
tau_ind_max = (tau_c1+perturbation_time > tau_max1);
tau_ind_min = (tau_c1-perturbation_time < 0);
tau_ind_minmax = (tau_c1+perturbation_time <= tau_max1 & tau_c1-perturbation_time >= 0);
tau_c1=tau_ind_max.*(tau_c1-perturbation_time)+tau_ind_min.*(tau_c1+perturbation_time)+tau_ind_minmax.*(tau_c1+sign(randn(C1,1)).*perturbation_time);
%
theta_ind_max = (theta_c1+perturbation_angle > sector_end);
theta_ind_min = (theta_c1-perturbation_angle < sector_start);
theta_ind_minmax = (theta_c1+perturbation_angle <= sector_end & theta_c1-perturbation_angle >= sector_start);
theta_c1=theta_ind_max.*(theta_c1-perturbation_angle)+theta_ind_min.*(theta_c1+perturbation_angle)+theta_ind_minmax.*(theta_c1+sign(randn(C1,1)).*perturbation_angle);
%
phi_ind_max = (phi_c1+perturbation_angle > sector_end);
phi_ind_min = (phi_c1-perturbation_angle < sector_start);
phi_ind_minmax = (phi_c1+perturbation_angle <= sector_end & phi_c1-perturbation_angle >= sector_start);
phi_c1=phi_ind_max.*(phi_c1-perturbation_angle)+phi_ind_min.*(phi_c1+perturbation_angle)+phi_ind_minmax.*(phi_c1+sign(randn(C1,1)).*perturbation_angle);
%
par1=[tau_c1 theta_c1 phi_c1];
par2=[tau_c2 theta_c2 phi_c2];
%
end

🌈3 Matlab代码实现

🎉4 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]Anum Ali, Nuria González-Prelcic and Robert W. Heath Jr., "Millimeter Wave Beam-Selection Using Out-of-Band Spatial Information", IEEE Transactions on Wireless Communications.