WMMSE方法的使用笔记

标题很帅

  • 原论文的描述
  • WMMSE的简单应用

无线蜂窝通信系统的预编码设计问题中,经常提到用WMMSE方法设计多用户和速率最大化的预编码,其中最为关键的一步是将原和速率最大化问题转化为均方误差最小化问题,从而将问题由非凸变为关于三个新变量的凸的子问题,交替优化三个子问题即可求解。

对于一般的问题形式,该如何从原和速率最大化问题转化到均方误差最小化问题呢?


原论文的描述

An Iteratively Weighted MMSE Approach to Distributed Sum-Utility Maximization for a MIMO Interfering Broadcast Channel
等待有时间补充

WMMSE的简单应用

原beamforming优化问题

基于上述模型,我们研究了近场多用户通信,考虑当不同用户共享相似方向但距基站距离不同时实现可靠通信的可能性。这里的目的是设计传输波束图案以最大化可实现的总速率,反映每个通道使用可以可靠地传送的总比特数。基于不同的天线架构,对于给定的发射功率约束 P m a x > 0 P_{max} > 0 Pmax>0,感兴趣的任务可以写为:

max ⁡ { w ~ m } ∑ m = 1 M R m ( { w ~ j } j ∈ M )  s.t.  ∑ m = 1 M ∥ w ~ m ∥ 2 ≤ P max ⁡ , { w ~ m } ∈ W , (14) \begin{array}{l} \max _{\left\{\tilde{\mathbf{w}}_{m}\right\}} \sum_{m=1}^{M} R_{m}\left(\left\{\tilde{\mathbf{w}}_{j}\right\}_{j \in \mathcal{M}}\right) \\ \text { s.t. } \sum_{m=1}^{M}\left\|\tilde{\mathbf{w}}_{m}\right\|^{2} \leq P_{\max }, \quad\left\{\tilde{\mathbf{w}}_{m}\right\} \in \mathcal{W}, \end{array} \tag{14} max{w~m}m=1MRm({w~j}jM) s.t. m=1Mw~m2Pmax,{w~m}W,(14)
其中:

R m ( { w ~ j } j ∈ M ) = log ⁡ 2 ( 1 + ∣ a m H w ~ m ∣ 2 ∑ j ≠ m a m H w ~ j ∣ 2 + σ 2 ) R_{m}\left(\left\{\tilde{\mathbf{w}}_{j}\right\}_{j \in \mathcal{M}}\right)=\log _{2}\left(1+\frac{\left|\mathbf{a}_{m}^{H} \tilde{\mathbf{w}}_{m}\right|^{2}}{\left.\sum_{j \neq m} \mathbf{a}_{m}^{H} \tilde{\mathbf{w}}_{j}\right|^{2}+\sigma^{2}}\right) Rm({w~j}jM)=log2 1+j=mamHw~j 2+σ2 amHw~m 2

优化问题求解

对于全数字波束聚焦设计,可行的预编码集 W F D \mathcal{W}_{FD} WFD是无约束的,并且包括 C N \mathbb{C}^N CN M M M个向量的所有组合。对于单用户情况,即 M = 1 M = 1 M=1,通过设置 w ~ 1 = P max ⁡ a 1 ∣ a 1 ∣ \tilde{\mathbf{w}}_{1}= \sqrt{P_{\max }} \frac{\mathbf{a}_{1}}{\left|\mathbf{a}_{1}\right|} w~1=Pmax a1a1来最大化 (14) 中的速率。 。然而,对于 M > 1 M>1 M>1的一般情况,问题(14)是非凸的,因此很难找到最优解。然而,由于(14)与远场操作的干扰广播信道的相应和速率最大化之间的相似性,人们可以利用针对远场系统导出的工具。一种候选策略是使用加权和均方误差(W(S)MMSE)最小化方法[35]来处理问题(14),这保证了收敛到驻点。

通过利用总速率最大化和 MSE 最小化之间的关系 [WMMSE 35,Thm 1],我们有以下引理。

引理 1: W = W F D \mathcal{W} = \mathcal{W}_{FD} W=WFD 的问题 (14) 等价于以下问题(在具有相同全局最优的意义上)

max ⁡ { w ~ m , u m , v m } ∑ m = 1 M log ⁡ 2 ( v m ) − v m e m ( u m , { w ~ m } )  s.t.  ∑ m = 1 M ∥ w ~ m ∥ 2 ≤ P max ⁡ , v m ≥ 0 , m ∈ M , (17) \begin{aligned} \max _{\left\{\tilde{\mathbf{w}}_{m}, u_{m}, v_{m}\right\}} & \sum_{m=1}^{M} \log _{2}\left(v_{m}\right)-v_{m} e_{m}\left(u_{m},\left\{\tilde{\mathbf{w}}_{m}\right\}\right) \\ \text { s.t. } & \sum_{m=1}^{M}\left\|\tilde{\mathbf{w}}_{m}\right\|^{2} \leq P_{\max }, \quad v_{m} \geq 0, m \in \mathcal{M}, \end{aligned} \tag{17} {w~m,um,vm}max s.t. m=1Mlog2(vm)vmem(um,{w~m})m=1Mw~m2Pmax,vm0,mM,(17)

where u m u_{m} um and v m v_{m} vm are auxiliary variables, and e m ( u m , { w ~ m } ) e_{m}\left(u_{m}\right. , \left.\left\{\tilde{\mathbf{w}}_{m}\right\}\right) em(um,{w~m}) is given by e m ( u m , { w ~ m } ) = ∣ 1 − u m a m H w ~ m ∣ 2 + ∑ j ≠ m ∣ u m a m H w ~ j ∣ 2 + σ 2 ∣ u m ∣ 2 e_{m}\left(u_{m},\left\{\tilde{\mathbf{w}}_{m}\right\}\right)=\left|1-u_{m} \mathbf{a}_{m}^{H} \tilde{\mathbf{w}}_{m}\right|^{2}+ \sum_{j \neq m}\left|u_{m} \mathbf{a}_{m}^{H} \tilde{\mathbf{w}}_{j}\right|^{2}+\sigma^{2}\left|u_{m}\right|^{2} em(um,{w~m})= 1umamHw~m 2+j=m umamHw~j 2+σ2um2 .

虽然问题(17)比问题(14)涉及更多的优化变量,但当其余两组固定时,每组优化变量都是凹的。因此,可以应用块坐标下降法来求解(17),得到总结为算法1的过程,该过程基于[35,Sec.3]中提出的方法。
在这里插入图片描述
算法1中,步骤4中的参数λp是与基站发射功率约束相关的拉格朗日乘数。 λp 的选择可以通过超参数优化方案来设置,例如使用二分法[27]、[35]。算法 1 忽略了通信发生在近场的事实,因为该属性仅封装在等效信道向量 {am} 中。尽管如此,正如我们在第四节中以数字方式展示的,这种优化方法以总速率为目标,并没有明确考虑最终的波束图案,它产生聚焦波束,允许多个用户在居住时以最小的交叉干扰共存。相同的角度方向。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue3实现一个拾色器功能

​ <template><div class"color"><button v-if"hasEyeDrop" click"nativePick">点击取色</button><input v-else type"color" input"nativePick" v-model"selectedColor" /><p&…

【学一点儿前端】真机调试本地公众号网页项目

前言 微信公众号网页开发的真机调试一直是很头疼的事情。 原因一 微信公众号配置的JS安全域名只有三个&#xff0c;一个大中型的公众号这三个JS安全域名都是生产的域名&#xff0c;不可能预留域名用于开发和调试。 原因二 在微信里面只有访问正确的安全域名才能调用wx.config用…

Ubuntu 22.04源码安装yasm 1.3.0

sudo lsb_release -r看到操作系统的版本是22.04&#xff0c;sudo uname -r可以看到内核版本是5.15.0-86-generic&#xff0c;sudo gcc --version可以看到版本是11.2.0&#xff0c;sudo make --version可以看到版本是GNU Make 4.3。 下载yasm http://yasm.tortall.net/Downlo…

《Android编程权威指南》之第二个activity源码及挑战

文章目录 前言效果图依赖MainactivityKotlin的“ &#xff1f;”kotlin的符号 QuizViewModelQuestion类CheatActivityonBackPressed()companion CheatViewModelstring.xml 前言 实现禁止一题多答&#xff0c;按题记录作弊状态、偷看次数限制、横竖屏切换依旧保存状态数据 个人…

GeoPandas初体验:它是什么,我用它展示一下shp矢量数据

GeoPandas 是一个开源的 Python 库&#xff0c;用于处理地理空间数据。它扩展了 Pandas 这个流行的 Python 数据操作库&#xff0c;增加了对地理数据类型和操作的支持。GeoPandas 结合了 Pandas、Matplotlib 和 Shapely 的功能&#xff0c;提供了一个易于使用且高效的工具&…

“我要报名”参观双十二外贸电商节,报名方式都在这!

双十二外贸电商节深圳进出口贸易博览会 2023年12月11-12日 深圳福田会展中心 近1万方展览面积 30000专业观众 跨境选品 外贸采购 行业趋势 人才对接 ▼▼▼▼ 展会时间 2023年12月11日-12日 展会地点 深圳福田会展中心 双十二外贸电商节暨2023深圳进出口贸易博览会选…

【SpringCache】快速入门 通俗易懂

1. 介绍 Spring Cache 是一个框架&#xff0c;实现了基于注解的缓存功能&#xff0c;只需要简单地加一个注解&#xff0c;就能实现缓存功能。 Spring Cache 提供了一层抽象&#xff0c;底层可以切换不同的缓存实现&#xff0c;例如&#xff1a; EHCache Caffeine Redis(常用…

云服务器Centos中安装Docker

云服务器Centos中安装Docker 1 简介DockerCentosCentos和Ubuntu区别 2 安装3 测试hello-world的镜像测试 1 简介 Docker Docker是一个开源的应用容器引擎&#xff0c;利用操作系统本身已有的机制和特性&#xff0c;可以实现远超传统虚拟机的轻量级虚拟化。它支持将软件编译成…

Python 日志指南

目录 日志指南 日志基础教程 什么时候使用日志 一个简单的例子 记录日志到文件 从多个模块记录日志 记录变量数据 更改显示消息的格式 在消息中显示日期/时间 后续步骤 进阶日志教程 记录流程 记录器 处理器 格式器 配置日志记录 如果没有提供配置会发生什么 …

python-04(入门基础篇4——lists相关的部分语法)

python-04&#xff08;入门基础篇4——lists相关的部分语法&#xff09; 1. 前言1.1 python入门1.2 参考官网 2. 关于索引和切片3. 在列表追加元素3.1 支持拼接3.2 使用list.append() 方法在列表末尾添加新项 4. 列表是可变类型4.1 更改其中某元素内容4.2 使用切片更改列表大小…

数据结构与算法(六)分支限界法(Java)

目录 一、简介1.1 定义1.2 知识回顾1.3 两种解空间树1.4 三种分支限界法1.5 回溯法与分支线定法对比1.6 使用步骤 二、经典示例&#xff1a;0-1背包问题2.1 题目2.2 分析1&#xff09;暴力枚举2&#xff09;分支限界法 2.3 代码实现1&#xff09;实现广度优先策略遍历2&#xf…

视频批量剪辑方法:AI智剪创新力,批量剪辑新风潮

随着数字媒体技术的不断发展&#xff0c;视频剪辑已经成为日常生活和工作中不可或缺的一部分。然而&#xff0c;对于许多非专业人士来说&#xff0c;视频剪辑仍然是一个相对繁琐和复杂的过程。AI智剪是一种基于人工智能技术的视频批量剪辑方法。它可以通过自动化和智能化的方式…

用23种设计模式打造一个cocos creator的游戏框架----(五)工厂方法模式

1、模式标准 模式名称&#xff1a;工厂方法模式 模式分类&#xff1a;创建型 模式意图&#xff1a;定义一个用于创建对象的接口&#xff0c;让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 结构图&#xff1a; 适用于&#xff1a; 1、当一个类不知道它…

安装以及使用Minio分布式文件系统

简介 MinIO 是一个非常轻量的服务,可以很简单的和其他应用的结合使用&#xff0c;它兼容亚马逊 S3 云存储服务接口&#xff0c;非常适合于存储大容量非结构化的数据&#xff0c;例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。 它一大特点就是轻量&#xff0c;使用…

循环单向链表与约瑟夫问题

循环链表介绍 先不急着看约瑟夫问题是什么&#xff0c;先了解循环链表的结构&#xff0c;那什么是循环链表&#xff1f; 循环&#xff0c;顾名思义&#xff0c;从链表中第一个节点出发&#xff0c;还会遇到第一个节点&#xff0c;形成循环的一环。也就是说链表中最后一个节点…

春晚回应吉祥物“龙辰辰”被质疑 AI 合成;周星驰 Web3 团队下月上线独立 App 丨 RTE 开发者日报 Vol.102

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE &#xff08;Real Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

Python基础知识-变量、数据类型(整型、浮点型、字符类型、布尔类型)详解

1、基本的输出和计算表达式&#xff1a; prinit(12-3) printf(12*3) printf(12/3) prinit(12-3) printf(12*3) printf(12/3) 形如12-3称为表达式 这个表达式的运算结果称为 表达式的返回值 1 2 3 这样的数字&#xff0c;叫做 字面值常量 - * /称为 运算符或者操作符 在C和j…

【S32DS报错】-2-提示Error while launching command:arm-none-eabi-gdb –version错误

目录 1 Error错误提示 2 Error错误原因 3 如何消除Error错误 结尾 【S32K3_MCAL从入门到精通】合集&#xff1a; S32K3_MCAL从入门到精通https://blog.csdn.net/qfmzhu/category_12519033.html 1 Error错误提示 使用S32DSJ-LinK下载程序&#xff0c;在Dedug Configurati…

TA-Lib学习研究笔记(九)——Pattern Recognition (2)

TA-Lib学习研究笔记&#xff08;九&#xff09;——Pattern Recognition &#xff08;2&#xff09; 形态识别的函数的应用&#xff0c;通过使用A股实际的数据&#xff0c;验证形态识别函数&#xff0c;用K线显示出现标志的形态走势&#xff0c;由于入口参数基本上是open, hig…

H5ke14--1--拖放

介绍drag,drop 一.被拖动元素,目标(释放区) 元素要设置dragable属性:true,false,auto 被拖动元素上面有三个事件,drag,dragend,按下左键,移动种,鼠标松,这三个事件一般只用获取我们的被拖动元素 冒泡:event是可以继承的,mouseevent鼠标事件,dragevent拖放事件,前面都是一个…