Holographic MIMO Surfaces (HMIMOS)以及Reconfigurable Holographic Surface(RHS)仿真:
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.
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:
Simulation Parameters:
Channel Model:
Radiation Pattern of the RHS:
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, ...);
其中,PropertyName
和 PropertyValue
是一对一对的名称-值对,用于设置阵列的各种属性,如阵列的大小、元素间距等。
要详细了解如何使用 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_x
for j = 1:num_elements_y
element_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_x
for j = 1:num_elements_y
element_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 工具箱和函数来处理复杂的任务。