目录
1 概述
2 运行结果
3 参考文献
4 Matlab代码
智能超表面,也叫做“可重配智能表面”,或者“智能反射表面”,英文为RIS(Reconfigurable Intelligence Surface),或者IRS(Intelligent Reflection Surface)。
为了缓解未来网络频谱拥塞,下一代无线通信系统希望复用雷达的频段,其对应的模型就是雷达和通信频谱共存(Radar-Communication Coexistence,RCC),这个是雷达和通信从分离走向融合的初步阶段。
本文对双功能雷达和通信系统的波束形成优化,其中部署了可重新配置的智能表面以增强性能。
[1]赵阳. MIMO雷达-通信联合SINR优化设计算法研究[D].厦门理工学院,2022.DOI:10.27866/d.cnki.gxlxy.2022.000225.
主函数部分代码:
clc
clear all
close all
addpath('./simulation_separated/function/');
%% trade-off
%% baseline
figure;
load('./simulation_separated/baseline.mat');
pattern_baseline_sep = pattern_baseline;
wsr_baseline = [0; wsr_baseline;wsr_baseline(end)];
prob_power_baseline = [prob_power_baseline(1); prob_power_baseline;0];
plot(wsr_baseline, prob_power_baseline,'-^b','LineWidth',3,'MarkerSize',3);
hold on;
load('./simulation_shared/baseline.mat');
pattern_baseline_sh = pattern_baseline;
wsr_baseline = [0; wsr_baseline;wsr_baseline(end)];
prob_power_baseline = [prob_power_baseline(1); prob_power_baseline;0];
plot(wsr_baseline, prob_power_baseline,'-+b','LineWidth',3);
%% 20 elements
load('./simulation_separated/ris_aided_data/rician_1000/ris_aided_single.mat');
pattern_ris_20_sep = pattern_ris;
wsr_ris = [0; wsr_ris; wsr_ris(end)];
prob_power_ris = [prob_power_ris(1); prob_power_ris;0];
plot(wsr_ris, prob_power_ris,'-^g','LineWidth',3,'MarkerSize',3);
load('./simulation_shared/ris_aided_data/rician_1000/ris_aided_single.mat');
pattern_ris_20_sh = pattern_ris;
wsr_ris = [0; wsr_ris;wsr_ris(end)];
prob_power_ris = [prob_power_ris(1); prob_power_ris;0];
plot(wsr_ris, prob_power_ris,'-+g','LineWidth',3);
%% 60 elements
load('./simulation_separated/ris_aided_data/rician_1000/ris_aided_single_60.mat');
pattern_ris_60_sep = pattern_ris;
wsr_ris = [0; wsr_ris; wsr_ris(end)];
prob_power_ris = [prob_power_ris(1); prob_power_ris;0];
plot(wsr_ris, prob_power_ris,'-^c','LineWidth',3,'MarkerSize',3);
load('./simulation_shared/ris_aided_data/rician_1000/ris_aided_single_60.mat');
pattern_ris_60_sh = pattern_ris;
wsr_ris = [0; wsr_ris;wsr_ris(end)];
prob_power_ris = [prob_power_ris(1); prob_power_ris;0];
plot(wsr_ris, prob_power_ris,'-+c','LineWidth',3);
%% 100 elements
load('./simulation_separated/ris_aided_data/rician_1000/ris_aided_single_100.mat');
pattern_ris_100_sep = pattern_ris;
wsr_ris = [0; wsr_ris;wsr_ris(end)];
prob_power_ris = [prob_power_ris(1); prob_power_ris;0];
plot(wsr_ris, prob_power_ris,'-^r','LineWidth',3,'MarkerSize',3);
load('./simulation_shared/ris_aided_data/rician_1000/ris_aided_single_100.mat');
pattern_ris_100_sh = pattern_ris;
wsr_ris = [0; wsr_ris; wsr_ris(end)];
prob_power_ris = [prob_power_ris(1); prob_power_ris;0];
plot(wsr_ris, prob_power_ris,'-+r','LineWidth',3);
grid on;
legend('without RIS(separated)','without RIS(shared)','20 elements(separeted)','20 elements(shared)','60 elements(separated)','60 elements(shared)','100 elements(separated)','100 elements(shared)','FontSize',12,'interpreter','latex');
xlabel('WSR [bps/Hz]','FontSize',12,'interpreter','latex');
ylabel('Probing Power [dBm]','FontSize',12,'interpreter','latex');
ylim([19 34]);
xlim([0 10]);
%% radar only beampattern
para = para_init();
theta_degree = -90:90;
theta = theta_degree*pi/180;
pattern_radar_only = zeros(length(theta),1);
a = ULA_func(0,para.M);
R = para.Pt/para.M*(a*a');