大规模 MIMO 检测的近似消息传递 (AMP)附Matlab代码

news2024/11/29 20:37:00

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机  电力系统

⛄ 内容介绍

大规模MIMO系统上行链路数据检测问题中的格基(信道矩阵)自然短且正交,因此建议我们可以将混合方案应用于这种场景而不使用格减少。仿真结果证实了该扩展的有效性。

⛄ 部分代码

function xhat=AMPT(y,H,epsi,sigma2)

%   AMP algorithm with ternery prior

%   written by Shanxiang Lyu (s.lyu14@imperial.ac.uk), Imperial College

%   Last updated on oct 2018

%   Ref: "Hybrid Vector Perturbation Precoding: The Blessing of Approximate Message Passing,", IEEE Transactions on Signal Processing 

%   Digital Object Identifier: 10.1109/TSP.2018.2877205

[m,n]=size(H);

    if nargin <= 2

        epsi=.5; 

        sigma2=(norm(y)^2)/(m^1.5); 

    elseif nargin <= 3

        sigma2=(norm(y)^2)/(m^1.5); 

    end

r=y;%residual vector

x_hat=zeros(n,1);

l_hat=1*ones(n,1);

alpha=1e4;

alphabar=1e4;

Theta=diag(1./(diag(H'*H)));

for t=1:20

    

r=y-H*x_hat+(n/m)*alphabar/alpha*r; 

alpha=sigma2+(n/m)*alphabar; 

x_in=Theta*H.'*r+x_hat;

u=x_in;v=Theta*alpha*ones(n,1);

for i=1:n

    x_hat(i)=sinh(u(i)/v(i))/((1-epsi)/epsi*exp(1/(2*v(i)))+cosh(u(i)/v(i)));

    l_hat(i)=((1-epsi)/epsi*exp(1/(2*v(i)))*cosh(u(i)/v(i))+1)/(((1-epsi)/epsi*exp(1/(2*v(i)))+cosh(u(i)/v(i)))^2);

end

alphabar=mean(Theta^(-1)*l_hat);

x_hat_all(1:n,t)=round(x_hat);

FIT(t)=norm(y-H*x_hat_all(1:n,t));

if FIT(t)>=1e5

    break;

end

end

ind=find(FIT==min(FIT));

if isempty(ind)==1

     xhat=zeros(n,1);

else

    xhat=x_hat_all(1:n,ind(end));

    if norm(y)<=FIT(ind(end))

        xhat=zeros(n,1);

    end

end

⛄ 运行结果

⛄ 参考文献

Lyu, Shanxiang, and Cong Ling. “Hybrid Vector Perturbation Precoding: The Blessing of Approximate Message Passing.” IEEE Transactions on Signal Processing, Institute of Electrical and Electronics Engineers (IEEE), 2018, pp. 1–1, doi:10.1109/tsp.2018.2877205.

⛄ Matlab代码关注

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

神经架构搜索的综合调查:挑战和解决方案(一)

神经架构搜索的综合调查&#xff1a;挑战和解决方案 paper题目&#xff1a;A Comprehensive Survey of Neural Architecture Search: Challenges and Solutions paper是西北大学发表在ACM Computing Surveys 2021的工作 paper地址&#xff1a;链接 ABSTRACT 深度学习以其强大的…

c#机器学习之opencv(2)-Mat基础

目录Mat基础Mat本质copyTo与cloneMat基础 opencv将图像数据存在一个二维矩阵里。 下面代码复制了一个图像矩阵。 Mat srcPic new Mat("test1.png", ImreadModes.Color); Mat aPic new Mat(srcPic,new OpenCvSharp.Rect(100,120, srcPic.Width-100, srcPic.Heigh…

1.8 打好shell基础

一、常用shell命令 1、管道命令 &#xff08;1&#xff09;命令格式 &#xff08;2&#xff09;案例演示 任务1、查看/etc目录信息前5行信息 执行命令&#xff1a;ll /etc | head -5 任务2、查看/etc/profile文件后5行信息 执行命令&#xff1a;cat /etc/profile | tai…

大数据培训FileInputFormat实现类

FileInputFormat实现类 思考:在运行MapReduce程序时&#xff0c;输入的文件格式包括:基于行的日志文件、 二进制格式文件、数据库表等。那么&#xff0c;针对不同的数据类型&#xff0c;MapReduce是如 何读取这些劣如据的呢? FileInputFormat常见的接口实现类包括:TextInputF…

mapreduce搭建

一.虚拟机安装CentOS7并配置共享文件夹 二.CentOS 7 上hadoop伪分布式搭建全流程完整教程 三.本机使用python操作hdfs搭建及常见问题 四.mapreduce搭建 五.mapper-reducer编程搭建 mapreduce搭建一、配置1.创建mapred-site.xml文件2.编辑mapred-site.xml二、打开hadoop0.删除da…

virtio-net 实现机制【一】(图文并茂)

1. 基于virtio的半虚拟化概述 1.1 virtio运行结构 ① virtio表示虚拟化IO&#xff0c;用于实现设备半虚拟化&#xff0c;即虚拟机中运行的操作系统需要加载特殊的驱动&#xff08;e.g. virtio-net&#xff09;且虚拟机知道自己是虚拟机 相较于基于完全模拟的全虚拟化&#xf…

PR-视频加介绍背景

每天一个PS/PR小技巧&#xff08;原理实践&#xff09; 比如我们有一个展示视频&#xff0c;我们希望在视频一开始时添加一个介绍背景&#xff08;纯色背景&#xff09;&#xff1a; 点击新建->颜色遮罩&#xff1a; 定义名称&#xff0c;选择颜色&#xff0c;然后就能在工…

Bug: conda环境与jupyter notebook kernel核环境不一致

问题 一般在服务器上进行环境安装的时候有多种方式&#xff0c;比如docker, conda等。conda肯使用起来更加简便&#xff0c;docker更适合服务器部署的时候使用。 本文记录在使用conda时候出现的问题&#xff0c;jupter notebook中的环境不一致导致的。 首先conda创建环境 co…

蓝桥杯嵌入式第二篇配置按键

文章目录前言一、原理图查看二、cubeMX配置三、代码讲解(使用按键控制LED灯的开关)四、HAL_Delay的内部实现五.遗留的问题总结前言 点完灯后接下来我们就开始按键的学习了&#xff0c;这也是很简单的&#xff0c;大家不用担心。 一、原理图查看 可以看到板子上面是有4个按键…

定时任务多线程-springboot

定时任务 在项目开发过程中&#xff0c;经常需要定时任务来帮助我们实现某些业务功能&#xff0c;比如定时生成数据报表、生成对账单、订单超时处理等。Spring Boot提供了内置的Scheduled注解实现定时任务的功能。 步骤 1.修改启动类 在启动类上加上EnableScheduling开启定时…

华为数字化转型之道 方法篇 第五章 视IT为投资,用产品思维管理IT

第五章 视IT为投资,用产品思维管理IT 5.1 数字时代IT系统的重新定位 比较传统信息化和数字化转型下的IT系统特征,我们发现业务环境、IT能力、业务和IT的关系都发生了巨大的变化(见图5-1) 从“管理系统”到“作业平台” 传统信息化下的IT系统往往侧重于信息记录、流程固化…

LeetCode994. 腐烂的橘子(C++中等题)

题目 在给定的 m x n 网格 grid 中&#xff0c;每个单元格可以有以下三个值之一&#xff1a; 值 0 代表空单元格&#xff1b; 值 1 代表新鲜橘子&#xff1b; 值 2 代表腐烂的橘子。 每分钟&#xff0c;腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。 返回 直到单元格…

因子模型:协方差矩阵

本文是Quantitative Methods and Analysis: Pairs Trading此书的读书笔记。 因子协方差矩阵&#xff08;factor covariance matrix&#xff09;在计算风险的时候很重要。如果一个模型有个因子&#xff0c;那么协方差矩阵的大小就是。对角线元素是每个因子的方差&#xff0c;非…

[附源码]Python计算机毕业设计SSM流浪动物管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

用Python来开发安卓程序:(1)BeeWare安卓开发环境的搭建

文章目录1. 前言2. BeeWare简介3. 开发环境搭建注意事项4. 安装BeeWare5. 开发环境搭建5.1 创建项目5.1.1 创建一个新项目5.2 运行项目5.3 打包项目5.3.1 打包为Windows程序5.3.1.1 首先briefcase create安装应用的脚手架5.3.1.2 然后构建应用5.3.1.3 接着&#xff0c;运行构建…

2. JVM内存模型

1. JVM虚拟机内存模型图解 JAVA虚拟机主要由这三部分组成类装载子系统&#xff0c;字节码执行引擎&#xff0c;运行时数据区上一节我们不是学了类的加载吗&#xff0c;那些类加载器许多都是C帮我们做的&#xff0c;那么我们这个类装载子系统就是帮我们把类放入运行时数据区的&a…

[附源码]Python计算机毕业设计SSM浪漫烘焙屋(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

原创|一个统计查询模块基于设计模式的抽象设计

文章目录一、需求背景二、详细设计UML设计包设计三、程序设计1、VideoAdStatCaliberEnum2、LiveDashboardBusiness3、StatHandleDispatcher4、StatCaliberEnum5、StatContext5、AbstractStatHandler6、LoggerService7、AbstractVideoAdStatHandler1、VideoAdStatContext2、Vide…

cpu设计和实现(协处理器cp0)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 除了通用计算器负责控制和计算之外&#xff0c;cpu如果需要正常有序地运行&#xff0c;还需要一定地协处理器来帮助完成对应地工作。在mips下面&am…

Vue实现流程图,借鉴vue-tree-color 实现流程框架技术

Vue实现流程图&#xff0c;借鉴vue-tree-color 实现流程框架技术 文章目录Vue实现流程图&#xff0c;借鉴vue-tree-color 实现流程框架技术借鉴鸣谢演示效果引入依赖添加全局组件的二次封装步骤1 创建组件目录Vuenode.jstree.less使用组件引入使用数据结构案例借鉴鸣谢 实现组…