大规模MIMO通信系统的发射端采用混合波束成形附Matlab代码

news2024/11/15 11:41:43

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

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

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

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

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

⛄ 内容介绍

此示例展示了如何在大规模 MIMO 通信系统的发射端采用混合波束成形,同时使用适用于多用户和单用户系统的技术。该示例采用全信道探测来确定发射机的信道状态信息。它将所需的预编码分为数字基带和模拟 RF 组件,对多用户和单用户系统使用不同的技术。简化的全数字接收器恢复多个传输的数据流,以突出通信系统的通用品质因数,即 EVM 和 BER。

该示例采用基于散射的空间信道模型,该模型考虑了发射/接收空间位置和天线方向图。还提供了一个更简单的静态平坦 MIMO 信道用于链路验证目的。

对高数据速率和更多用户容量不断增长的需求增加了更有效地使用可用频谱的需求。多用户 MIMO (MU-MIMO) 通过允许基站 (BS) 发射机使用相同的时频资源同时与多个移动台 (MS) 接收机通信来提高频谱效率。Massive MIMO 允许 BS 天线元件的数量在数十或数百数量级,从而也将小区中的数据流数量增加到一个很大的值。

下一代 5G 无线系统使用毫米波 (mmWave) 频段来利用其更宽的带宽。5G 系统还部署了大规模天线阵列,以减轻毫米波频段中严重的传播损耗。

与当前的无线系统相比,毫米波波段的波长要小得多。虽然这允许阵列在相同物理尺寸内包含更多元件,但为每个天线元件提供一个发射-接收 (TR) 模块或射频链变得更加昂贵。混合收发器是一种实用的解决方案,因为它们结合使用了 RF 中的模拟波束形成器和基带域中的数字波束形成器,其 RF 链少于发射元件的数量 [1]。

此示例使用多用户 MIMO-OFDM 系统来强调将所需的预编码划分为发射端的数字基带和 RF 模拟组件。基于相控阵 MIMO-OFDM 预编码示例中突出显示的系统,此示例展示了传输端预编码矩阵的公式及其在 MIMO-OFDM 系统中的应用。

⛄ 部分代码

clear;                              % Clear worksapace

s = rng(67);                        % Set RNG state for repeatability

%% DEFINE SYSTEM PARAMETERS FOR THE EXAMPLE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Multi-user system with single/multiple streams per user

prm.numUsers = 4;                   % Number of users

prm.numSTSVec = [3 2 1 2];          % Number of independent data streams per user

prm.numSTS = sum(prm.numSTSVec);    % Must be a power of 2

prm.numTx = prm.numSTS * 8;         % Number of BS transmit antennas (power of 2)

prm.numRx = prm.numSTSVec * 4;      % Number of receive antennas, per user (any >= numSTSVec)

% Each user has the same modulation

prm.bitsPerSubCarrier = 4;          % 2: QPSK, 4: 16QAM, 6: 64QAM, 8: 256QAM

prm.numDataSymbols = 10;            % Number of OFDM data symbols

% MS positions: assumes BS at origin

%   Angles specified as [azimuth;elevation] degrees

%   az in range [-180 180], el in range [-90 90], e.g. [45;0]

maxRange = 1000;                    % all MSs within 1000 meters of BS

prm.mobileRanges = randi([1 maxRange], 1, prm.numUsers);

prm.mobileAngles = [rand(1, prm.numUsers) * 360 - 180; ...

                    rand(1, prm.numUsers) * 180 - 90];

⛄ 运行结果

⛄ 参考文献

[1] Molisch, A. F., et al. "Hybrid Beamforming for Massive MIMO: A Survey." IEEE Communications Magazine, Vol. 55, No. 9, September 2017, pp. 134-141.

⛄ Matlab代码关注

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

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

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

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

相关文章

阅读笔记 DAGA 低资源标记任务数据扩充方法

阅读笔记 DAGA 低资源标记任务数据扩充方法 文章目录阅读笔记 DAGA 低资源标记任务数据扩充方法前言概述IntroductionBackground1、NER2、Part-of-Speech (POS) Tagging3、Target Based Sentiment AnalysisProposed Method1、Labeled Sentence Linearization2、Language Modeli…

c#入门-命名参数

位置参数 在你填入实参时,你填入的类型和顺序都需要和形参相同。 因为默认情况下,他是按照从左到右的顺序依次填入实参的。 命名参数 你在声明参数时给变量声明的名字是有用的。 在填入实参时,可以加上名字,以指定你填入的是哪…

触觉智能分享-低成本高性能的厨电解决方案

每个热爱生活的人,一日三餐四季,柴米油盐这点小事,都值得去享受,可如何学会做一顿美味可口的饭菜,对厨房小白来说可不是易事,智能菜谱的出现,将做菜的烹饪过程进行了分步拆解,同时将…

基于STM32波形信号发生器proteus仿真设计(仿真+程序+报告+讲解)

基于STM32波形信号发生器proteus仿真设计(仿真程序报告讲解) 仿真图proteus 8.9 程序编译器:keil 5 编程语言:C语言 设计编号:C0075 讲解仿真视频: 基于STM32的波形信号发生器proteus仿真设计主要功能&#xff1a…

nessus无法导出报告(nessus转中文报告)

nessus漏扫报告,可是nessus导出的报告全是英文,客户说看不懂(说的好像中文就能看懂似的)。找了很多nessus转中文报告的工具都不是很靠谱,今天突然灵机一动发现了一个解决nessus无法导出报告方法。总的说来就是生产一个html文件转中文。 ness…

入门系列 - Git安装与配置

Git安装与配置 要使用Git,你必须在你的电脑上安装它。要不要使用并升级到最新的Git,那取决您的需要了。 下载Git 要下载Git安装程序,请访问Git的官方网站并进入下载页面。本文写于2022-11-29,此时您可以去官网链接去下载&#…

AI教你学测试

ChatGPT这个词相信大家最近看到都不会陌生,应该刷爆了各位的朋友圈,各种分享注册教程、什么AI写代码的文章比比皆是,今天,让我们一起来看一下OpenAI能不能教我们学测试呢,对测试人员的日常工作是否有帮助呢&#xff1f…

原生API编写简单富文本编辑器004

原生API编写富文本编辑器004 遗留的问题: 设置的字体是使用 font属性,而非CSS设置的字号只接受1-7, 并且是以 size 属性而非 CSS控制,超出大小无法设置。color使用HTML的input时,始终有一个input框在那里,并且如果手…

Oracle项目业务表单设计:Oracle PrimaveraUnifier BP

目录 基本介绍 Basic Introduction 业务流程组件 Business Process Components 数据定义 Data Definitions 数据要素 Data Elements 状态 Status 表单 Forms 工作流程 (可选)Workflow 日志 Log 上部表单 Upper Form 详细表单 Detail Form 行项…

找不到msvcr110dll,无法继续执行代码,解决方法分享

找不到msvcr110dll,无法继续执行代码,电脑出现这种情况,主要是缺失了msvcr110dll这个文件。 要解决这个问题,其实不难,有多种方法 第一种解决msvcr110dll的方法 1在百度搜索下载msvcr110.dll文件 2下载后将文件放在c盘windows…

Stimulsoft Dashboards.PHP 2022.4.5 Crack

Stimulsoft Dashboards.PHP 是一个用于设计和查看仪表板的完整软件包。您可以使用该工具集成到您的应用程序中或作为独立的解决方案。同时,不需要复杂的配置或第三方模块。您可以轻松地将仪表板集成到几乎任何 PHP 应用程序中。 仪表板设计器是一个直接影响分析面板…

【推荐学习收藏】9种回归算法及实例总结的太详细了

我相信很多人跟我一样,学习机器学习和数据科学的第一个算法是线性回归,它简单易懂。由于其功能有限,它不太可能成为工作中的最佳选择。大多数情况下,线性回归被用作基线模型来评估和比较研究中的新方法。 在处理实际问题时&#…

Web大学生网页作业成品——游戏主题HTM5网页设计作业成品 (HTML+CSS王者荣耀8页)

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

043-推箱子游戏源代码3

上一讲:042-推箱子游戏源代码2 摘要: 1、使用JAVA基础知识 2、GUI界面编程实现推箱子界面,常用控件的综合应用; 3、使用JAVA绘图技术实现推箱子过程的绘图功能; 4、使用键盘事件,通过方向键实现推箱子过程; 5、使用音频技术,实现播放背景音乐功能; 6、使用IO流技…

从西北工业大学被攻击说起,谈网络安全的最后一道防线—密码

一、背景 据央视2022年9月5日报道,我国西北工业大学(以下简称西工大)遭到美国国家情报局特定入侵办公室(代号TAO)非法入侵,目前已查明涉案人员13人,攻击次数一千余次,大量关键核心数…

保姆级微信双开教程

不知道大家是不是和我一样,两个微信账号,一个用于工作,一个用于私人。 一般来说,日常生活中使用的登录微信的设备也就3种,PC、Android、IOS。这三种设备中,Android经过各种厂商对OS的优化后,基本…

动态规划入门-01背包问题

动态规划入门-01背包问题 问题描述 假设你有个最大载重量为300kg300kg300kg的背包,有4个物品。它们的重量分别为123kg,88kg,93kg,100kg123kg,88kg,93kg,100kg123kg,88kg,93kg,100kg,价值分别为$$10,$19,$8,$20$。 请问背包内最大可以放入多少价值的物品…

第二证券|ChatGPT被“玩坏”,美图大涨45%,AIGC赛道风口来了?

AIGC(人工智能主动生成内容)近期被ChatGPT带火了! 近来明星人工智能公司OpenAI发布了全新的谈天机器人模型ChatGPT。该模型能够主动生成代码以及绘画、答复一系列问题、承认自己的错误、质疑不正确的假设,乃至回绝不合理的要求&a…

Caspase-1活性分析:艾美捷FAM-FLICA试剂盒解决方案

艾美捷FAM-FLICA Caspase-1 (YVAD) Assay Kit FAM-FLICA Caspase-1 活性分析试剂盒检测方案: 1、凋亡诱导: 在开始实验之前,确定可重复的方法用于通过触发胱天蛋白酶活性获得阳性对照。此过程随每个细胞系而显著变化。例如,细胞…

JUC并发编程第九篇,原子操作类分类解析,LongAdder为什么这么快原理分析?

JUC并发编程第九篇,原子操作类分类解析,LongAdder为什么这么快原理分析?一、基本类型原子类二、数组类型原子类三、引用类型原子类四、对象的属性修改原子类五、原子操作增强类六、原理分析,LongAdder 为什么这么快?位…