使用带外空间信息选择毫米波波束(Matlab代码实现)
👨🎓个人主页:研学社的博客
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥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.
相关文章
- matlab求两向量夹角_MATLAB基础练习(一)
- matlab 求矩阵秩,求Matlab中矩阵的秩和迹 | 学步园[通俗易懂]
- NSGA2 算法MATLAB完整代码 中文注释详解
- matlab axis画圆,使用MATLAB中axis实现图形坐标控制-Go语言中文社区
- 手眼标定算法Tsai-Lenz代码实现(Python、C++、Matlab)
- [图像]Canny检测的Matlab实现(含代码)「建议收藏」
- 高斯光束的简单matlab仿真「建议收藏」
- matlab 画图的颜色
- OFDM调制matlab仿真详细代码
- 模糊PID算法及其MATLAB仿真(1)
- matlab figure函数的用法[通俗易懂]
- matlab将txt数据分类,MATLAB读取txt文件,txt里面有字符串和数值两种类型
- 画二元函数即三维图像的函数及matlab代码
- 数学建模主成分分析法matlab_主成分分析法建模
- MATLAB画图——基础篇「建议收藏」
- MATLAB 循环语句_for循环matlab
- Matlab函数定义_matlab子函数
- matlab如何通过命令查看主机相关信息
- MATLAB随机波动率SV、GARCH用MCMC马尔可夫链蒙特卡罗方法分析汇率时间序列|附代码数据
- MATLAB随机波动率SV、GARCH用MCMC马尔可夫链蒙特卡罗方法分析汇率时间序列|附代码数据
- matlab对国内生产总值(GDP)建立马尔可夫链模型(MC)并可视化|附代码数据
- 【数字信号处理】卷积编程实现 ( Matlab 卷积和多项式乘法 conv 函数 | 使用 matlab 代码求卷积并绘图 )
- MATLAB图像倾斜校正算法实现:图像倾斜角检测及校正|附代码数据
- Linux下使用Matlab玩转编程世界。(linux下matlab)