Holographic MIMO Surfaces (HMIMOS)以及Reconfigurable Holographic Surface(RHS)仿真

这里写目录标题

  • Simulation setup
  • chatgpt帮我总结
  • 代码
  • 总结:chatgpt生成的代码还是不靠谱:考虑把之前看的RHS中对于多用户的改成单用户
  • 全系MIMO与普通MIMO或者说RIS的区别到底是啥?


Holographic MIMO Surfaces (HMIMOS)以及Reconfigurable Holographic Surface(RHS)仿真:

Simulation setup

In this section, we evaluate the performance of the proposed joint sum rate optimization algorithm for the RHS-aided multi-user system. Simulation parameters are set as below. The carrier frequency f f f is 10 G H z 6 10 \mathrm{GHz}^{6} 10GHz6 , and the value of the reference wave’s propagation vector ∣ k s ∣ \left|\mathbf{k}_{s}\right| ks is 3 ∣ k f ∣ \sqrt{3}\left|\mathbf{k}_{f}\right| 3 kf , i.e., 2 3 π f / c 2 \sqrt{3} \pi f / c 23 πf/c , where c c c is the speed of light. The element spacing of the RHS d x d_{x} dx and d y d_{y} dy are both set as 0.75 c m 0.75 \mathrm{~cm} 0.75 cm . The height of the BS is 50 m 50 \mathrm{~m} 50 m , and the transmit power P T P_{T} PT is 1 W 1 \mathrm{~W} 1 W [10]. The propagation environment between the BS and each user is modeled as a sparse millimeter wave channel with I I I paths, i.e., H l = M N J I ∑ i = 1 I α l i a r ( ϕ r i l ) a t ( θ t i l , φ t i l ) H \mathbf{H}_{l}=\sqrt{\frac{M N J}{I}} \sum_{i=1}^{I} \alpha_{l}^{i} \mathbf{a}_{r}\left(\phi_{r_{i}}^{l}\right) \mathbf{a}_{t}\left(\theta_{t_{i}}^{l}, \varphi_{t_{i}}^{l}\right)^{H} Hl=IMNJ i=1Iαliar(ϕril)at(θtil,φtil)H , where α l i \alpha_{l}^{i} αli is the complex gain of the i i i -th path, ϕ r i l \phi_{r_{i}}^{l} ϕril and ( θ t i l , φ t i l ) \left(\theta_{t_{i}}^{l}, \varphi_{t_{i}}^{l}\right) (θtil,φtil) are the physical angle of arrival and angle of departure, respectively. a r ( ϕ r i l ) \mathbf{a}_{r}\left(\phi_{r_{i}}^{l}\right) ar(ϕril) and a t ( θ t i l , φ t i l ) \mathbf{a}_{t}\left(\theta_{t_{i}}^{l}, \varphi_{t_{i}}^{l}\right) at(θtil,φtil) are the antenna array response vectors of the user l and the BS, respectively [7]. For simplicity, we consider one line-of-sight path and one none-line-of-sight path between the BS and each user [6].
Fig. 3 shows the normalized radiation pattern of the RHS based on the proposed hybrid beamforming scheme. The desired radiation directions { ( θ i , ϕ i ) } \left\{\left(\theta_{i}, \phi_{i}\right)\right\} {(θi,ϕi)} are set as { ( 3 0 ∘ , − 5 0 ∘ ) , ( 4 5 ∘ , 0 ∘ ) , ( 6 0 ∘ , 5 0 ∘ ) } \left\{\left(30^{\circ},-50^{\circ}\right),\left(45^{\circ}, 0^{\circ}\right),\left(60^{\circ}, 50^{\circ}\right)\right\} {(30,50),(45,0),(60,50)} . We observe that directions of the beams generated by the RHS are the same as the desired beam directions with low sidelobe levels (i.e., about − 9 d B -9 \mathrm{~dB} 9 dB ). This demonstrates that through controlling the radiation amplitude of each radiation element, the RHS has the capability of accurate multibeam steering.

chatgpt帮我总结

在这里插入图片描述

It seems like you’ve provided a description of a simulation scenario and the parameters used in the evaluation of a joint sum rate optimization algorithm for a multi-user system with a reconfigurable intelligent surface (RHS). Here’s a breakdown of the information you’ve provided:

  1. Simulation Parameters:

    • Carrier Frequency (f): 10 GHz
    • Reference Wave’s Propagation Vector (|𝑘𝑠|): √3|𝑘𝑓| = 2√3π𝑓/𝑐, where 𝑐 is the speed of light.
    • Element Spacing of the RHS (dx and dy): Both set as 0.75 cm.
    • Height of the Base Station (BS): 50 m
    • Transmit Power (PT): 1 W
    • Propagation Environment: Modeled as a sparse millimeter-wave channel with I paths.
  2. Channel Model:

    • The propagation environment between the BS and each user is modeled using a sparse millimeter-wave channel.
    • The channel matrix (𝐻𝑙) is described as 𝑠𝑞𝑟𝑡{𝑀𝑁𝐽𝐼}∑𝑖=1𝐼𝛼𝑙𝑖𝑎𝑟(𝜑𝑟𝑖𝑙)𝑎𝑡(𝜃𝑡𝑖𝑙,𝜙𝑡𝑖𝑙)𝐻.
    • 𝛼𝑙𝑖 is the complex gain of the i-th path, and 𝜑𝑟𝑖𝑙 and (𝜃𝑡𝑖𝑙,𝜙𝑡𝑖𝑙) are the angles of arrival and departure.
    • 𝑎𝑟(𝜑𝑟𝑖𝑙) and 𝑎𝑡(𝜃𝑡𝑖𝑙,𝜙𝑡𝑖𝑙) are the antenna array response vectors of the user and the BS, respectively.
    • For simplicity, one line-of-sight path and one non-line-of-sight path are considered between the BS and each user.
  3. Radiation Pattern of the RHS:

    • Fig. 3 shows the normalized radiation pattern of the RHS based on a hybrid beamforming scheme.
    • The desired radiation directions {𝜃𝑖,𝜙𝑖} are set as {(30°,-50°), (45°, 0°), (60°, 50°)}.
    • The beams generated by the RHS align with the desired beam directions with low sidelobe levels, approximately -9 dB. This demonstrates the RHS’s capability for accurate multibeam steering.

This information provides an overview of the simulation setup and the characteristics of the multi-user system with an RHS. It seems that this evaluation is focused on the beamforming capability of the RHS and its ability to align beams accurately with desired directions while minimizing sidelobe levels.

代码

% 设置参数
fc = 10e9; % 10 GHz的载波频率
lambda = physconst('LightSpeed') / fc; % 波长% 天线阵列参数
dx = 0.0075; % x方向上的元素间距 (0.0075 m = 0.75 cm)
dy = 0.0075; % y方向上的元素间距 (0.0075 m = 0.75 cm)
num_elements_x = 4; % x方向上的天线元素数量
num_elements_y = 4; % y方向上的天线元素数量% 创建天线阵列
tx_array = phased.URA('Size', [num_elements_x, num_elements_y], 'ElementSpacing', [dx, dy]);% 模拟多径信道
num_paths = 2; % 仅考虑两个路径(一个LOS路径和一个NLOS路径)
path_delays = [0, 10e-9]; % 路径延迟时间
path_gains = [1, 0.1]; % 路径增益% 创建多径信道对象
channel = phased.WidebandMillimeterWaveChannel(...'PropagationSpeed', physconst('LightSpeed'), ...'CarrierFrequency', fc, ...'NumPaths', num_paths, ...'PathDelays', path_delays, ...'AveragePathGains', path_gains);% 波束赋形
desired_angles = [30, -50; 45, 0; 60, 50]; % 期望波束方向(角度)
beamformer = phased.PhaseShiftBeamformer('SensorArray', tx_array, 'OperatingFrequency', fc);
weights = step(beamformer, desired_angles);% 绘制波束赋形权重
figure;
pattern(tx_array, fc, [-180:180], [-90:90], 'Weights', weights);% 显示结果
disp('波束赋形权重:');
disp(weights);

这个示例创建了一个简单的多径信道,一个二维的天线阵列,然后进行了波束赋形。请注意,这只是一个简化的示例,实际应用中可能需要更复杂的信道模型和波束赋形算法,具体的参数设置和模型细节也需要根据实际需求进行调整。此外,上述代码只演示了波束赋形的一部分,实际系统的性能评估需要更多的工作和分析。


我之前提到的 phased.URA 函数是 MATLAB 中的一个用于创建均匀矩形阵列(Uniform Rectangular Array)的函数。均匀矩形阵列是一种常见的天线阵列类型,其中天线元素按矩形排列,并且在水平和垂直方向上具有相等的间距。

具体来说,phased.URA 是 MATLAB 的 Phased Array System Toolbox 中的一个函数。它允许你创建均匀矩形阵列,并可以指定阵列的参数,如阵列的大小、天线元素的间距等。通过创建这样的阵列,你可以用于模拟和分析信号的波束赋形、接收和传输性能,尤其在通信系统和雷达系统的建模和仿真中非常有用。

下面是 phased.URA 函数的基本语法:

array = phased.URA('PropertyName1', PropertyValue1, 'PropertyName2', PropertyValue2, ...);

其中,PropertyNamePropertyValue 是一对一对的名称-值对,用于设置阵列的各种属性,如阵列的大小、元素间距等。

要详细了解如何使用 phased.URA 函数以及其支持的属性,请参考 MATLAB 的官方文档或 Phased Array System Toolbox 的文档,这些文档将提供更多的示例和详细信息。


当然,我可以为您提供一些示例代码,演示如何手动创建一个均匀矩形天线阵列,而不依赖于特定的 MATLAB 工具箱。以下是一个使用基本的 MATLAB 函数和操作创建均匀矩形天线阵列的示例代码:

% 阵列参数
num_elements_x = 4; % x方向上的天线元素数量
num_elements_y = 4; % y方向上的天线元素数量
dx = 0.75; % x方向上的元素间距 (0.75 cm)
dy = 0.75; % y方向上的元素间距 (0.75 cm)% 创建均匀矩形天线阵列
element_positions = zeros(num_elements_x * num_elements_y, 3); % 初始化天线元素位置矩阵% 生成天线元素的位置
for i = 1:num_elements_xfor j = 1:num_elements_yelement_positions((i - 1) * num_elements_y + j, 1) = (i - 1) * dx;element_positions((i - 1) * num_elements_y + j, 2) = (j - 1) * dy;end
end% 显示阵列元素的位置
figure;
scatter3(element_positions(:,1), element_positions(:,2), zeros(size(element_positions,1)), 'filled');
xlabel('X轴位置 (m)');
ylabel('Y轴位置 (m)');
zlabel('Z轴位置 (m)');
title('均匀矩形天线阵列');% element_positions 现在包含了天线元素的位置信息

上述代码演示了如何手动创建一个均匀矩形天线阵列,并显示了阵列元素的位置。您可以根据需要进一步使用这些位置信息进行信道模拟、波束赋形等操作。这个示例不依赖于特定的 MATLAB 工具箱,只使用了基本的 MATLAB 函数和操作。


将您之前提供的描述转化为 MATLAB 代码,并且不依赖于 MATLAB 工具箱中的函数是一项复杂的任务,特别是在涉及到多径信道建模和波束赋形时。由于代码的复杂性和细节,以下是一个简化的示例,演示如何使用基本的 MATLAB 函数创建一个简单的多径信道,并进行一些简单的波束赋形。请注意,这个示例仅用于概念演示,并且不包括所有细节:

% 设置参数
fc = 10e9; % 载波频率 10 GHz
lambda =  physconst('LightSpeed') / fc; % 波长% 天线阵列参数
dx = 0.0075; % x方向上的元素间距 (0.0075 m = 0.75 cm)
dy = 0.0075; % y方向上的元素间距 (0.0075 m = 0.75 cm)
num_elements_x = 4; % x方向上的天线元素数量
num_elements_y = 4; % y方向上的天线元素数量% 创建均匀矩形天线阵列
element_positions = zeros(num_elements_x * num_elements_y, 3); % 初始化天线元素位置矩阵% 生成天线元素的位置
for i = 1:num_elements_xfor j = 1:num_elements_yelement_positions((i - 1) * num_elements_y + j, 1) = (i - 1) * dx;element_positions((i - 1) * num_elements_y + j, 2) = (j - 1) * dy;end
end% 信道模拟 - 多径信道
num_paths = 2; % 路径数量
path_delays = [0, 10e-9]; % 路径延迟时间
path_gains = [1, 0.1]; % 路径增益% 创建多径信道模型
channel_response = zeros(num_paths, size(element_positions, 1)); % 初始化信道响应矩阵% 生成多径信道响应
for i = 1:num_paths% 随机生成复杂增益alpha_i = path_gains(i) * (randn() + 1i * randn());% 生成每个天线元素的响应for j = 1:size(element_positions, 1)% 随机生成相位phase = 2 * pi * rand();% 计算每个天线元素的响应channel_response(i, j) = alpha_i * exp(1i * 2 * pi * fc * path_delays(i)) * exp(1i * phase);end
end% 显示阵列元素的位置
figure;
scatter3(element_positions(:, 1), element_positions(:, 2), zeros(size(element_positions, 1), 1), 'filled');
xlabel('X轴位置 (m)');
ylabel('Y轴位置 (m)');
zlabel('Z轴位置 (m)');
title('均匀矩形天线阵列');% channel_response 现在包含了多径信道的响应

请注意,这个示例是一个简化的模型,用于演示如何手动创建均匀矩形天线阵列、生成多径信道响应并显示阵列元素的位置。在实际应用中,信道建模和波束赋形通常需要更复杂的算法和细节。此外,由于不使用 MATLAB 工具箱中的函数,这个示例可能会缺少某些功能和精度。在实际项目中,建议使用适当的 MATLAB 工具箱和函数来处理复杂的任务。




以下是更详细的 MATLAB 代码,它演示了如何手动创建一个均匀矩形天线阵列、模拟多径信道、进行波束赋形并绘制波束赋形的结果:

% 设置参数
fc = 10e9; % 载波频率 10 GHz
lambda = physconst('LightSpeed') / fc; % 波长% 天线阵列参数
dx = 0.0075; % x方向上的元素间距 (0.0075 m = 0.75 cm)
dy = 0.0075; % y方向上的元素间距 (0.0075 m = 0.75 cm)
num_elements_x = 4; % x方向上的天线元素数量
num_elements_y = 4; % y方向上的天线元素数量% 创建均匀矩形天线阵列
element_positions = zeros(num_elements_x * num_elements_y, 3); % 初始化天线元素位置矩阵% 生成天线元素的位置
for i = 1:num_elements_xfor j = 1:num_elements_yelement_positions((i - 1) * num_elements_y + j, 1) = (i - 1) * dx;element_positions((i - 1) * num_elements_y + j, 2) = (j - 1) * dy;end
end% 信道模拟 - 多径信道
num_paths = 2; % 路径数量
path_delays = [0, 10e-9]; % 路径延迟时间
path_gains = [1, 0.1]; % 路径增益% 创建多径信道模型
channel_response = zeros(num_paths, size(element_positions, 1)); % 初始化信道响应矩阵% 生成多径信道响应
for i = 1:num_paths% 随机生成复杂增益alpha_i = path_gains(i) * (randn() + 1i * randn());% 生成每个天线元素的响应for j = 1:size(element_positions, 1)% 随机生成相位phase = 2 * pi * rand();% 计算每个天线元素的响应channel_response(i, j) = alpha_i * exp(1i * 2 * pi * fc * path_delays(i)) * exp(1i * phase);end
end% 波束赋形 - 生成波束权重
desired_angle = [30, -50]; % 期望波束方向(角度)% 初始化波束权重矩阵
beamforming_weights = beamforming_weights(:); % 将波束权重变为列向量
beam_pattern = zeros(size(angles)); % 初始化波束功率for i = 1:length(angles)% 计算每个角度下的波束功率beam_pattern(i) = abs(sum(beamforming_weights .* exp(-1i * 2 * pi * fc * (dx * sind(angles(i)) + dy * sind(angles(i))))));
end% 绘制波束赋形的结果
figure;
plot(angles, 10 * log10(beam_pattern / max(beam_pattern)));
xlabel('角度(度)');
ylabel('波束功率(dB)');
title('波束赋形结果');
% 显示阵列元素的位置
figure;
scatter3(element_positions(:, 1), element_positions(:, 2), zeros(size(element_positions, 1), 1), 'filled');
xlabel('X轴位置 (m)');
ylabel('Y轴位置 (m)');
zlabel('Z轴位置 (m)');
title('均匀矩形天线阵列');% channel_response 包含多径信道的响应
% beamforming_weights 包含波束赋形的权重

此示例创建了均匀矩形天线阵列,模拟了多径信道,进行了波束赋形并绘制了波束赋形的结果。波束赋形结果以角度-波束功率的形式绘制。请注意,这个示例仍然是一个简化的模型,实际应用中可能需要更复杂的信道建模和波束赋形算法。

总结:chatgpt生成的代码还是不靠谱:考虑把之前看的RHS中对于多用户的改成单用户

角度距离域信道,考虑太赫兹,即基站和目标的距离小于瑞丽距离。

全系MIMO与普通MIMO或者说RIS的区别到底是啥?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/151995.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序--》从模块小程序项目案例23.10.09

配置导航栏 导航栏是小程序的门户,用户进来第一眼看到的便是导航栏,其起着对当前小程序主题的概括。而我们 新建的小程序 时,第一步变开始配置导航栏。如下: 配置tabBar 因为配置tabBar需要借助字体图标,我这里平常喜…

【数据结构】计数排序 排序系列所有源代码 复杂度分析(终章)

目录 一,计数排序 1,基本思想 2,思路实现 3,计数排序的特性总结: 二,排序算法复杂度及稳定性分析 三,排序系列所有源代码 Sort.h Sort.c Stack.h Stack.c 一,计数排序 计数…

厌烦了iPhone默认的热点名称?如何更改iPhone上的热点名称

你对你默认的热点名称感到厌倦了吗?这篇文章是为你准备的。在这里,你可以了解如何轻松更改iPhone上的热点名称。 个人热点会将你的手机数据转换为Wi-Fi信号。手机上的个人热点使用户能够与其他用户共享其蜂窝数据连接。当你在WIFI网络之外时&#xff0c…

使用华为eNSP组网试验⑹-组建基于BGP的网络

BGP(Border Gateway Protocol -- 边界网关协议)是一种在自治系统之间动态交换路由信息、具有丰富的路由控制机制、稳定而安全的路由协议,一般部署在骨干(主要、核心)路由器。 BGP适用于大中型网络的组建,在很多企业当中都有应用。 一般情况下&#xff0c…

网关、网桥、路由器和交换机之【李逵与李鬼】

概念 网关 网关简单来说是连接两个网络的设备,现在很多局域网都是采用路由器来接入网络,因此现在网关通常指的就是路由器的IP。网关可用于家庭或者小型企业,连接局域网和Internet,也有用于工业应用的。 网桥 网桥也叫桥接器,是连接两个局域网的一种存储/转发设备,它能…

Linux搭建我的世界MC服务器 【Minecraft外网联机教程】

目录 前言 1. 安装JAVA 2. MCSManager安装 3.局域网访问MCSM 4.创建我的世界服务器 5.局域网联机测试 6.安装cpolar内网穿透 7. 配置公网访问地址 8.远程联机测试 9. 配置固定远程联机端口地址 9.1 保留一个固定tcp地址 9.2 配置固定公网TCP地址 9.3 使用固定公网…

基于Java的在线文档编辑管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

上门按摩小程序|同城上门按摩软件开发|上门按摩系统;

上门按摩小程序的开发具有许多优势,下面就给大家介绍下按摩小程序功能: 上门按摩小程序的优势 方便快捷:上门按摩小程序提供在线预约服务,用户可以通过手机随时随地预约按摩师上门服务,避免了传统预约方式的繁琐和不确定性。 个性…

数据结构-二叉查找树(BST)

二叉查找树 需要满足这些规则: 左子节点小于父节点右子节点大于父节点 查找的效率 非常好,每次都能根据大小去舍弃另一半的分支,极大的减少的比对次数 具体的性能,取决于树的层数和平衡程度。 BST树的节点 struct Node {No…

qt5.14.2+VS源码调试记录

在对qt使用时,有时需要对源代码进行调试,方便进行问题定位和debug,但直接安装的qt不能进入qt源码,需要进行一定的操作才能进行源码调试和定位。 源码调试需要对应版本的pdb文件,可以在官网下载,也可找其它…

2023年台州市第三届网络安全技能大赛(MISC)—Black Mamba

前言:当时比赛没有做出来现在来复现一下 就当记录一下(这个思路没想到) Black Mamba: 一张图片 常规得分离,属性,LSB,盲水印等都尝试过 无果! 考点:异或解密&#xff0…

Flutter学习笔记

此篇文章用来记录学习Flutter 和 Dart 相关知识 零.Dart基本数据类型 Dart 是一种静态类型的编程语言,它提供了一系列基本数据类型,用于存储和操作不同种类的数据。以下是 Dart 中的一些基本数据类型以及它们的详细介绍: 1. 整数类型&#…

企业服务器租用对性能有什么要求呢?

企业租用服务器租用首要的是稳定,其次是安全,稳定是为了让企业的工作能够顺利进行,只有性能稳定的服务器才能保证网站之类的正常工作,就让小编带大家看一看有什么要求吧! 服务器简单介绍。服务器是在网络上为其它客户机…

Unit3 使用 uniCloud 制作书籍管理移动端应用项目

Unit3 使用 uniCloud 制作书籍管理移动端应用项目 1 构建项目并关联云服务空间2 为项目准备数据库表3 schema2Code4 遇到了错误5 对 "addtime" 字段对应的前端组件进行修改6 首次运行 1 构建项目并关联云服务空间 uniCloud 为开发人员提供了“阿里云”和“腾讯云”两…

边坡安全监测系统:守护边坡稳定的重要工具

在工程建设中,边坡安全监测系统一直被认为是掌握边坡安全及其支护结构维护决策系统的关键支撑条件。这一系统的主要目的在于确定边坡结构的稳定性,监控支护结构的承载能力、运营状态和耐久性能,并对边坡稳定性进行实时监控。 一、边坡安全监测…

竞赛选题 深度学习 python opencv 火焰检测识别 火灾检测

文章目录 0 前言1 基于YOLO的火焰检测与识别2 课题背景3 卷积神经网络3.1 卷积层3.2 池化层3.3 激活函数:3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 YOLOV54.1 网络架构图4.2 输入端4.3 基准网络4.4 Neck网络4.5 Head输出层 5 数据集准备5.1 数…

react-antd 文件导入按钮增加一个加载状态

1、效果图实例: 2、部分代码 2.1 props : 2.2 handleChange、上传的文件检验 : construction中定义 construction(props) { super(props); this.state { loadingStaus: flase, loadingDisabled: flase, // 作用:按钮如果在加 载状态中,没…

Node.js代码漏洞扫描工具介绍——npm audit

npm audit 运行安全检查 主要作用:检查命令将项目中配置的依赖项的描述提交到默认注册中心,并要求报告已知漏洞。如果发现任何漏洞,则将计算影响和适当的补救措施。如果 fix 提供了参数,则将对包树应用补救措施。 具体参考&#x…

【面向校招】Golang 常考面试题汇总 持续更新中...

前言: 为了方便自己复习和巩固,基础知识,整理了这个面试题汇总 文章目录 Go基础1. 讲一讲go中slice底层2. 讲一讲go中Map底层3. 讲一讲go中channel底层4. go中的并发编程MutexMysql1)数据库的三大范式2)关系型数据库和非关系型数据库的优缺点对比,应用场景3)MySQL和Mong…

机器视觉工程师,我们上班的意义在哪里?

很多朋友,现在不是自己想做的工作,那你做这份工作干什么?担心自己没有竞争力,担心自己被替代。上班的意义是完成自己头脑和资源的原始积累,迈向下一级人生游戏;我最终要靠自己本事吃饭,而不是一直待在这个只…