MMSE 预编码公式推导

2024-02-02 23:38
文章标签 公式 编码 推导 mmse

本文主要是介绍MMSE 预编码公式推导,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

考虑一个多用户多输入单输出MU-MISO下行通信场景,基站端配置有 N N N根天线,其服务该小区下 K K K个单天线用户。假定信道为平坦瑞利衰落信道,记为 H ∈ C N × K \mathbf{H}\in\mathcal{C}^{N\times K} HCN×K,基站最大发射功率为 P P P。则最小均方误差准则下的预编码矩阵为下面优化问题的最优解
min ⁡ W E n , s [ ∣ ∣ H H W s + n − s ∣ ∣ 2 ] s.t. Tr ( W H W ) ≤ P \min_{\mathbf{W}}\mathbb{E}_{\mathbf{n},\mathbf{s}}\left[||\mathbf{H}^H\mathbf{Ws}+\mathbf{n}-\mathbf{s}||^2\right]\\ \text{s.t.}\quad \text{Tr}(\mathbf{W}^H\mathbf{W})\leq P WminEn,s[HHWs+ns2]s.t.Tr(WHW)P

拉格朗日函数为
L ( W , λ ) = E n , s [ ∣ ∣ H H W s + n − s ∣ ∣ 2 ] + λ [ Tr ( W H W ) − P ] = E n , s [ ( ( H H W − I K ) s + n ) H ( ( H H W − I K ) s + n ) ] + λ [ Tr ( W H W ) − P ] = Tr ( ( H H W − I K ) H ( H H W − I K ) ) + K + λ [ Tr ( W H W ) − P ] = Tr ( W H H H H W ) − Tr ( W H H ) − Tr ( H H W ) + 2 K + λ [ Tr ( W H W ) − P ] \begin{aligned} L(\mathbf{W},\lambda)&=\mathbb{E}_{\mathbf{n},\mathbf{s}}\left[||\mathbf{H}^H\mathbf{Ws}+\mathbf{n}-\mathbf{s}||^2\right]+\lambda\left[\text{Tr}(\mathbf{W}^H\mathbf{W})- P\right]\\ &=\mathbb{E}_{\mathbf{n},\mathbf{s}}\left[\left(\left(\mathbf{H}^H\mathbf{W}-\mathbf{I}_K\right)\mathbf{s}+\mathbf{n}\right)^H\left(\left(\mathbf{H}^H\mathbf{W}-\mathbf{I}_K\right)\mathbf{s}+\mathbf{n}\right)\right]+\lambda\left[\text{Tr}(\mathbf{W}^H\mathbf{W})- P\right]\\ &=\text{Tr}\left(\left(\mathbf{H}^H\mathbf{W}-\mathbf{I}_K\right)^H\left(\mathbf{H}^H\mathbf{W}-\mathbf{I}_K\right)\right)+K+\lambda\left[\text{Tr}(\mathbf{W}^H\mathbf{W})- P\right]\\ &=\text{Tr}\left(\mathbf{W}^H\mathbf{H}\mathbf{H}^H\mathbf{W}\right)-\text{Tr}\left(\mathbf{W}^H\mathbf{H}\right)-\text{Tr}\left(\mathbf{H}^H\mathbf{W}\right)+2K+\lambda\left[\text{Tr}(\mathbf{W}^H\mathbf{W})- P\right]\\ \end{aligned} L(W,λ)=En,s[HHWs+ns2]+λ[Tr(WHW)P]=En,s[((HHWIK)s+n)H((HHWIK)s+n)]+λ[Tr(WHW)P]=Tr((HHWIK)H(HHWIK))+K+λ[Tr(WHW)P]=Tr(WHHHHW)Tr(WHH)Tr(HHW)+2K+λ[Tr(WHW)P]


∂ L ∂ W ∗ = H H H W − H + λ W = 0 \frac{\partial L}{\partial \mathbf{W}^*}=\mathbf{H}\mathbf{H}^H\mathbf{W}-\mathbf{H}+\lambda \mathbf{W}=\mathbf{0} WL=HHHWH+λW=0

变量为复矩阵,应令关于其共轭的导数为0

可得
W = ( H H H + λ I N ) − 1 H = H ( H H H + λ I K ) − 1 \begin{aligned} \mathbf{W}&=\left(\mathbf{H}\mathbf{H}^H+\lambda\mathbf{I}_N\right)^{-1}\mathbf{H}\\ &=\mathbf{H}\left(\mathbf{H}^H\mathbf{H}+\lambda\mathbf{I}_K\right)^{-1} \end{aligned} W=(HHH+λIN)1H=H(HHH+λIK)1

上面的第2个等号,是由于
A + A B A = A ( I + B A ) = ( I + A B ) A A+ABA=A(I+BA)=(I+AB)A A+ABA=A(I+BA)=(I+AB)A

所以
( I + B A ) − 1 A − 1 = A − 1 ( I + A B ) − 1 (I+BA)^{-1}A^{-1}=A^{-1}(I+AB)^{-1} (I+BA)1A1=A1(I+AB)1

两边同时左乘右乘 A A A,得到
A ( I + B A ) − 1 = ( I + A B ) − 1 A A(I+BA)^{-1}=(I+AB)^{-1}A A(I+BA)1=(I+AB)1A

相关文献指出
λ o p t = P / K \lambda_{opt}=P/K λopt=P/K

这篇关于MMSE 预编码公式推导的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意

利用Python实现添加或读取Excel公式

《利用Python实现添加或读取Excel公式》Excel公式是数据处理的核心工具,从简单的加减运算到复杂的逻辑判断,掌握基础语法是高效工作的起点,下面我们就来看看如何使用Python进行Excel公... 目录python Excel 库安装Python 在 Excel 中添加公式/函数Python 读取

VSCode中C/C++编码乱码问题的两种解决方法

《VSCode中C/C++编码乱码问题的两种解决方法》在中国地区,Windows系统中的cmd和PowerShell默认编码是GBK,但VSCode默认使用UTF-8编码,这种编码不一致会导致在VSC... 目录问题方法一:通过 Code Runner 插件调整编码配置步骤方法二:在 PowerShell

Python如何实现读取csv文件时忽略文件的编码格式

《Python如何实现读取csv文件时忽略文件的编码格式》我们再日常读取csv文件的时候经常会发现csv文件的格式有多种,所以这篇文章为大家介绍了Python如何实现读取csv文件时忽略文件的编码格式... 目录1、背景介绍2、库的安装3、核心代码4、完整代码1、背景介绍我们再日常读取csv文件的时候经常

uva 10014 Simple calculations(数学推导)

直接按照题意来推导最后的结果就行了。 开始的时候只做到了第一个推导,第二次没有继续下去。 代码: #include<stdio.h>int main(){int T, n, i;double a, aa, sum, temp, ans;scanf("%d", &T);while(T--){scanf("%d", &n);scanf("%lf", &first);scanf

hdu 4565 推倒公式+矩阵快速幂

题意 求下式的值: Sn=⌈ (a+b√)n⌉%m S_n = \lceil\ (a + \sqrt{b}) ^ n \rceil\% m 其中: 0<a,m<215 0< a, m < 2^{15} 0<b,n<231 0 < b, n < 2^{31} (a−1)2<b<a2 (a-1)^2< b < a^2 解析 令: An=(a+b√)n A_n = (a +

C++ | Leetcode C++题解之第393题UTF-8编码验证

题目: 题解: class Solution {public:static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num &

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

form表单提交编码的问题

浏览器在form提交后,会生成一个HTTP的头部信息"content-type",标准规定其形式为Content-type: application/x-www-form-urlencoded; charset=UTF-8        那么我们如果需要修改编码,不使用默认的,那么可以如下这样操作修改编码,来满足需求: hmtl代码:   <meta http-equiv="Conte

4-4.Andorid Camera 之简化编码模板(获取摄像头 ID、选择最优预览尺寸)

一、Camera 简化思路 在 Camera 的开发中,其实我们通常只关注打开相机、图像预览和关闭相机,其他的步骤我们不应该花费太多的精力 为此,应该提供一个工具类,它有处理相机的一些基本工具方法,包括获取摄像头 ID、选择最优预览尺寸以及打印相机参数信息 二、Camera 工具类 CameraIdResult.java public class CameraIdResult {