当前位置: 首页 > news >正文

基于MIMO通信系统的球形译码算法matlab性能仿真,对比PSK检测,SDR检测

目录

1.算法运行效果图预览

2.算法运行软件版本

3.部分核心程序

4.算法理论概述

5.算法完整程序工程


1.算法运行效果图预览

2.算法运行软件版本

MATLAB2022A

3.部分核心程序

................................................................
for i=1:length(SNR) Bit_err(i) = 0;Num_err    = 0;Numbers    = 0; %误码率累加器   N0         = 10/(10^(SNR(i)/10));  while Num_err <= Times(i)Num_errfprintf('SNR = %f\n', SNR(i));%产生需要发送的随机数Trans_data  = round(rand(1,2*data_Numbers)); %QPSKQPSK_IQ      = [-1 1]; QPSK_input_I = QPSK_IQ(Trans_data(1:2:end)+1);QPSK_input_Q = QPSK_IQ(Trans_data(2:2:end)+1);Trans_QPSK   =(QPSK_input_I + sqrt(-1) * QPSK_input_Q)/sqrt(2);%作为发送信源MIMO_Tx(1,:) = Trans_QPSK;for send_loop = 2:Tm            MIMO_Tx(send_loop,:) = MIMO_Tx(1,:);              end%信道H_Ray  = (randn(Rn,Tm)+sqrt(-1)*randn(Rn,Tm))/sqrt(2);%对信道进一步加入随机干扰H_Ray  = abs(H_Ray)+randn(Rn,Tm);%球形译码 decoder算法for k=1:data_NumbersR0      = 1;dR      = 0.05;Nr      = 10;Nv      = 10;rho     = 0.99;jj1     = 0;jj2     = 0;y       = H_Ray*MIMO_Tx(:,k) + 4*N0*randn(size(H_Ray*MIMO_Tx(:,k)));y       = y/max(max(abs(y)));smin    = y;
....................................................................smin       = smin/max(abs(smin));smin2(:,k) = smin;end%接收MIMO_Rx      = smin2 + 2.5*sqrt(N0)*randn(size(smin2))/mod;MIMO_Rx2     = rand(1,Tm)*MIMO_Rx(:,:);  %QPSK解调
................................................................end Bit_err(i)=Num_err/(data_Numbers*Numbers);
endfigure;
semilogy(SNR,Bit_err,'o-r');
xlabel('SNR(dB)');
ylabel('BER');
grid on;
save R.mat SNR Bit_err
01_123m

4.算法理论概述

       球形译码算法(SD)是一种基于多输入多输出(MIMO)通信系统的检测算法。与相移键控(PSK)和软件定义无线电(SDR)相比,它具有更高的频谱效率和可靠性,下面将详细介绍SD算法。

        球形译码算法是一种最大似然估计方法,它通过最小化误码率(BER)来估计接收信号的相位和幅度。在MIMO系统中,SD算法可以同时处理多个发送和接收天线,从而提高系统容量和可靠性。

       SD算法的核心思想是将接收信号向量视为以原点为球心、以信号强度为半径的球体。在这个球体上,每个接收信号向量都有一个对应的相位和幅度。通过搜索这个球体,找到与每个接收信号向量最近的发送信号向量,从而估计出相位和幅度。

       假设发送信号向量X=[x1,x2,...,xm]T,接收信号向量Y=[y1,y2,...,yn]T,其中T表示转置。则MIMO系统可以表示为:

Y=HX+N

其中,H是m×n的信道矩阵,N是噪声矩阵。

      在SD算法中,我们假设发送信号向量X是均匀分布的复高斯随机向量,并且与噪声矩阵N相互独立。根据这个假设,我们可以计算出每个接收信号向量的似然函数:

L(x∣y)=exp(-(y−Hx)H(y−Hx)/σ2)

       其中,σ2是噪声功率。为了简化计算,我们只考虑噪声矩阵N中的实部和虚部,而忽略它们的相位。这样,我们可以将每个接收信号向量的实部和虚部表示为以原点为球心、以信号强度为半径的半球体。通过搜索这个半球体,我们可以找到与每个接收信号向量最近的发送信号向量,从而估计出相位和幅度。

5.算法完整程序工程

OOOOO

OOO

O

相关文章:

  • python django获取某个角色的某个数据和——例如:获取所有订单的应付金额总和
  • 以太网【FPGA】
  • idea插件(三)-- Translation(最好用的翻译插件)
  • 数据结构(超详细讲解!!)第十八节 串(堆串)
  • python连接clickhouse (CK)
  • MySQL笔记--Ubuntu安装MySQL并基于C++测试API
  • web3 在React dapp中全局管理web3当前登录用户/智能合约等信息
  • conda配置虚拟环境相关记录
  • 利用wasm实现读写本地项目的在线编辑器
  • IDEA 使用技巧
  • javaEE -15( 13000字 JavaScript入门 - 2)
  • 【Linux】服务器间免登陆访问
  • docker安装Kafka,SpringBoot整合Kafka
  • IOC课程整理-11 Spring 资源管理
  • Failed to launch task: 文件”Setup”不存在 Mac安装Adobe软件报错解决方案
  • 【comparator, comparable】小总结
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • Django 博客开发教程 8 - 博客文章详情页
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • JavaScript学习总结——原型
  • Linux Process Manage
  • mysql外键的使用
  • PHP 7 修改了什么呢 -- 2
  • PHP的类修饰符与访问修饰符
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • 爱情 北京女病人
  • 测试开发系类之接口自动化测试
  • 彻底搞懂浏览器Event-loop
  • 大快搜索数据爬虫技术实例安装教学篇
  • 分享一份非常强势的Android面试题
  • 给初学者:JavaScript 中数组操作注意点
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 区块链技术特点之去中心化特性
  • 微服务核心架构梳理
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • (pojstep1.3.1)1017(构造法模拟)
  • (四)c52学习之旅-流水LED灯
  • (转)shell中括号的特殊用法 linux if多条件判断
  • (转载)Google Chrome调试JS
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • .NET delegate 委托 、 Event 事件
  • .Net FrameWork总结
  • .NET HttpWebRequest、WebClient、HttpClient
  • .NET 表达式计算:Expression Evaluator
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .net反编译的九款神器
  • .NET微信公众号开发-2.0创建自定义菜单
  • .net专家(张羿专栏)
  • @31省区市高考时间表来了,祝考试成功
  • [BZOJ1040][P2607][ZJOI2008]骑士[树形DP+基环树]
  • [BZOJ5125]小Q的书架(决策单调性+分治DP+树状数组)
  • [C#]C# OpenVINO部署yolov8图像分类模型
  • [C#]C# winform部署yolov8目标检测的openvino模型