ISAC代码仿真学习笔记

2024-03-26 04:36
文章标签 代码 学习 笔记 仿真 isac

本文主要是介绍ISAC代码仿真学习笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

      • A. MIMO Communication Model
      • B. MIMO Radar Model
    • III. Joint Waveform and Phase Shift Matrix Design for Given Radar Beampattern
      • A. Problem Formulation
      • B. Proposed Algorithm
    • V. S IMULATION RESULTS

A. MIMO Communication Model

用户处的接收信号矩阵由
Y = ( H b u + H r u Θ H b r ) X + W ≜ H ~ b u X + W , \begin{equation*} \mathbf {Y} = (\mathbf {H}_{bu} + \mathbf {H}_{ru}\Theta \mathbf {H}_{br}) \mathbf {X} + \mathbf {W} \triangleq \tilde{\mathbf {H}}_{bu}\mathbf {X} + \mathbf {W}, \tag{1} \end{equation*} Y=(Hbu+HruΘHbr)X+WH~buX+W,(1)

其中,[hru,1,…], hru,K]T∈CK×L, Hbr∈CL×N表示基带
从BS到用户、从RIS到用户、从BS到RIS的等效信道。Θ= diag(Θ 1,…, θL)为RIS相移矩阵,其中θL∈F,其中F为RIS处反射系数的可行?。这里我们假设F?{θl?|θl|= 1}[11]。X = [X1,…],xM]表示传输信号矩阵,其中M为通信帧长度,W = [W1,…], wK]T∈CK×M是用户处的噪声,其中wk~ CN(0,σ2I),∀1≤k≤k。假设所有的信道都是块褪色的,并且在每帧内保持不变,并且假设所有的信道都是通过导频符号在BS处完美估计的。

通过将用户处的期望符号矩阵表示为 S ∈ C K × M \mathbf {S} \in \mathbb {C}^{K \times M} SCK×M,我们将接收到的信号矩阵重铸为

其中第二项表示多用户干扰(MUI)。MUI的总能量计算为

,对用户的可达和速率有显著影响。具体来说,第k个用户的每帧信噪比(SINR)为[12]

其中E(·)代表辩论对j的期望,那么可达到的和速率计算为

注意,对于给定的能量固定的星座,期望信号的功率Ej(|sk,j|2)是一个固定值。因此,用户k的可达数据速率可以通过最小化其接收到的干扰来最大化。从这个意义上说,最小化MUI能量与最大化和速率密切相关。因此,在下文[2]中,我们采用MUI能量作为通信性能指标。

B. MIMO Radar Model

与传统相控阵雷达不同,MIMO雷达可以发射多个探测信号,具有更高的波形分集[13]。如[2]、[13]、[14]所示,MIMO雷达的波束方向图设计等同于信号协方差矩阵的设计,可以表示为

,其发射波束图为

P d ( ϕ ) = a H ( ϕ ) R X a ( ϕ ) , \begin{equation*} {P_d}\left(\phi \right) = {{\mathbf {a}}^H}\left(\phi \right){{\mathbf {R}}_X}{\mathbf {a}}\left(\phi \right), \tag{7} \end{equation*} Pd(ϕ)=aH(ϕ)RXa(ϕ),(7)

式中 ϕ \phi ϕ 表示探测角度,a(φ) = [1, ej2πδ sin(φ),…, ej2π(N−1)δ sin(φ)]T∈CN×1为天线导向矢量,δ表示归一化天线间距。 P d ( θ ) P_d(\theta) Pd(θ) 反映了发射波形的空间谱,这表明Pd(θ)值越大,向θ方向的辐射功率越大。

III. Joint Waveform and Phase Shift Matrix Design for Given Radar Beampattern

A. Problem Formulation

对于MIMO雷达的波束方向图设计,在[3]中提出了约束最小二乘问题,得到如下的理想波束方向图

min ⁡ β , R d ∑ m = 1 M ∣ β P ~ d ( ϕ m ) − a H ( ϕ m ) R d a ( ϕ m ) ∣ 2 s . t . d i a g ( R d ) = P 0 1 σ 2 , R d ⪰ 0 , β ≥ 0 , \begin{align*} &\min \limits _{\beta,{\mathbf {R}_d}} \,\sum \limits _{m = 1}^{M} {{{\left|{ {\beta {\tilde{P}_{d}}\left({{\phi _{m}} }\right) - {{\mathbf {a}}^{H}}\left({{\phi _{m}} }\right){ \mathbf {R}_d \mathbf {a}}\left({{\phi _{m}} }\right)} }\right|}^{2}}} \tag{8} \\ &\,{\rm s.t.}\,\mathrm{diag} \left({{\mathbf {R}_d} }\right) = \frac{{P_{0}{\mathbf {1}}}}{\sigma ^2}, \tag{8a} \\ &\qquad \,{\mathbf {R}_d} \succeq 0, \tag{8b} \\ &\qquad \,\beta \geq 0, \tag{8c} \end{align*} β,Rdminm=1M βP~d(ϕm)aH(ϕm)Rda(ϕm) 2s.t.diag(Rd)=σ2P01,Rd0,β0,(8)(8a)(8b)(8c)

式中{φ k}Kk=1表示覆盖探测角度范围[−π/2, π/2]的精细角网格,P˜d(φk)为θk处期望的理想波束方向图增益,β为比例因子,Rd为期望波形协方差矩阵,P0为功率预算。问题(8)是凸的,β和Rd可以通过已有的CVX求解器进行联合优化。
给定一个期望的协方差矩阵Rd, MUI最小化问题表述为

B. Proposed Algorithm

min ⁡ X ∥ H ~ b u X − S ∥ F 2 s . t . 1 M X X H = R d , \begin{align*} & \min \limits _{\mathbf {X}} \left\Vert \tilde{\mathbf {H}}_{bu}\mathbf {X} - {\mathbf {S}} \right\Vert _F^2 \tag{10} \\ & {\rm s.t.}\;\;\frac{1}{M}{\mathbf {X}}{{\mathbf {X}}^H} = {\mathbf {R}}_d, \tag{10a} \end{align*} Xmin H~buXS F2s.t.M1XXH=Rd,(10)(10a)

V. S IMULATION RESULTS

在本节中,我们通过数值结果验证了所提出的联合波形和RIS反射矩阵设计算法。根据[2]的假设,信道矩阵的每一项服从标准复高斯分布。设置BS天线数为 N = 20 N = 20 N=20,总功率预算为 P 0 = 20 P_0 = 20 P0=20dbm。定义发送信噪比为SNR =P0/N0。严格波束方向图等式约束和权衡设计的情况分别表示为“严格”和“权衡”。我们也比较了没有RIS辅助的结果[2]。我们假设三个目标分别位于相对于BS的 [ − 6 0 ∘ , 0 ∘ , 6 0 ∘ ] \left[-60^{\circ }, 0^{\circ }, 60^{\circ } \right] [60,0,60] 角度。注意,我们假设这些角度是由BS在探测阶段获得的,并用于设计理想的波束方向图。

在这里插入图片描述

在图2中,我们展示了所提出的算法2和算法3的收敛行为。可以看出,与算法2相比,算法3的收敛速度更快。原因是,通过允许优化波束和期望波束之间的不相似性,在每次迭代中引入了更多的自由度;因此,可以更快地实现收敛。此外,我们还介绍了 SDR-based 的的方法的性能。由于SDR技术中的秩一近似,sdr的不能收敛,导致目标值较大。与基于SDR的方法的比较也表明了本文算法的优越性。

图3所示。(a)和速率与发送SNR的关系,L = 16。(b)和率与RIS元数L的关系,SNR= 6 dB。

在图3(a)中,我们展示了不同传输信噪比下不同方法实现的和速率,其中 L = 16 L = 16 L=16。它表明,在 strict beampattern constraint 和 trade-off design 两种情况下,借助于RIS都可以显著提高和速率。同时,随着权重因子 ρ ρ ρ 的增大,和速率的增大,但以优化波束图与期望波束图不匹配为代价。

图3(b)显示了不同RIS元素的和速率,其中发射SNR设置为6 dB。可以看出,随着 L L L 的增大,所有方法的和速率都在增大,而它们之间的差异在减小。最后,当RIS元素个数足够大时,所有方法的和速率收敛。同样值得注意的是,当使用RIS时,提高 ρ ρ ρ 的性能增益较低。原因是,通过联合设计波形和RIS反射矩阵,可以使 BS-用户信道和波形更好地匹配。因此,减少了雷达和通信性能之间的权衡。

在这里插入图片描述

在图4(a)中,我们给出了合成的雷达波束图。“严格”方法的波束图与期望的波束图相同。通过引入一个小的加权因子 ρ = 0.01 ρ= 0.01 ρ=0.01,在没有利用RIS的情况下,[2]的波束模式会严重退化。而对于 RIS-assisted 方法,设计的波束与期望的波束匹配良好。这是因为RIS能够帮助将MUI降低到一个很小的值;因此,解决问题(23)的目标近似为最小化设计波形和期望波形之间的相异度。

为了更清楚地说明这一点,我们在图4(b)中给出了获得的波束图的均方误差(MSE)。可以看出,与不使用RIS的情况相比,MSE可以显着降低。图4和图3(a)、(b)表明,RIS能够帮助实现雷达和通信性能之间的更好平衡。

这篇关于ISAC代码仿真学习笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/847301

相关文章

Spring Boot 3.4.3 基于 Spring WebFlux 实现 SSE 功能(代码示例)

《SpringBoot3.4.3基于SpringWebFlux实现SSE功能(代码示例)》SpringBoot3.4.3结合SpringWebFlux实现SSE功能,为实时数据推送提供... 目录1. SSE 简介1.1 什么是 SSE?1.2 SSE 的优点1.3 适用场景2. Spring WebFlu

java之Objects.nonNull用法代码解读

《java之Objects.nonNull用法代码解读》:本文主要介绍java之Objects.nonNull用法代码,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Java之Objects.nonwww.chinasem.cnNull用法代码Objects.nonN

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

在C#中调用Python代码的两种实现方式

《在C#中调用Python代码的两种实现方式》:本文主要介绍在C#中调用Python代码的两种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#调用python代码的方式1. 使用 Python.NET2. 使用外部进程调用 Python 脚本总结C#调

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

Java中&和&&以及|和||的区别、应用场景和代码示例

《Java中&和&&以及|和||的区别、应用场景和代码示例》:本文主要介绍Java中的逻辑运算符&、&&、|和||的区别,包括它们在布尔和整数类型上的应用,文中通过代码介绍的非常详细,需要的朋友可... 目录前言1. & 和 &&代码示例2. | 和 ||代码示例3. 为什么要使用 & 和 | 而不是总是使

Java强制转化示例代码详解

《Java强制转化示例代码详解》:本文主要介绍Java编程语言中的类型转换,包括基本类型之间的强制类型转换和引用类型的强制类型转换,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录引入基本类型强制转换1.数字之间2.数字字符之间引入引用类型的强制转换总结引入在Java编程语言中,类型转换(无论

Vue 调用摄像头扫描条码功能实现代码

《Vue调用摄像头扫描条码功能实现代码》本文介绍了如何使用Vue.js和jsQR库来实现调用摄像头并扫描条码的功能,通过安装依赖、获取摄像头视频流、解析条码等步骤,实现了从开始扫描到停止扫描的完整流... 目录实现步骤:代码实现1. 安装依赖2. vue 页面代码功能说明注意事项以下是一个基于 Vue.js

mybatis-plus 实现查询表名动态修改的示例代码

《mybatis-plus实现查询表名动态修改的示例代码》通过MyBatis-Plus实现表名的动态替换,根据配置或入参选择不同的表,本文主要介绍了mybatis-plus实现查询表名动态修改的示... 目录实现数据库初始化依赖包配置读取类设置 myBATis-plus 插件测试通过 mybatis-plu