基于协作mimo系统的RM编译码误码率matlab仿真,对比硬判决译码和软判决译码

目录

1.算法运行效果图预览

2.算法运行软件版本

3.部分核心程序

4.算法理论概述

5.算法完整程序工程


1.算法运行效果图预览

2.算法运行软件版本

matlab2022a

3.部分核心程序

..................................................................... 
    
    while(Err <= TL)
         k
         Err
         Num = Num + 1;
         %产生数据
         K             = min(K1,K2);
         Signal0       = round(rand(1,K));
         Signal        = [Signal0,zeros(1,K1-K2)];
         
         %*****************************************************************
         %RM编码
         Signal_RM_S2D = func_Encode(Signal,V1);
         %调制
         RM_mod_S2D    = modulate(mods,Signal_RM_S2D);
         %过信道
         RM_Noise_S2D  = RM_mod_S2D + sqrt(2*N01)*randn(size(RM_mod_S2D)); 
         
         %*****************************************************************
         %中继部分
         RM_demod_S2R  = demodulate(demods,RM_Noise_S2D);
         Bhat_S2R      = func_Decode_ML_hard(RM_demod_S2R,r+1,m,V1,N1,K1,I1); 
         %RM编码
         Signal_RM_S2R = func_Encode(Bhat_S2R(1:K),V2);
         %调制
         RM_mod_S2R    = modulate(mods,Signal_RM_S2R);
         %过信道
         RM_Noise_S2R  = RM_mod_S2R + sqrt(2*N03)*randn(size(RM_mod_S2R)); 

         %*****************************************************************
         %解调
         RM_demod_S2D  = demodulate(demods,[RM_Noise_S2D,RM_Noise_S2R]);
         LEN           = length(RM_demod_S2D);
         %RM译码
         Bhat_S2D1     = func_Decode_ML_hard(RM_demod_S2D(1:LEN/2),r+1,m,V1,N1,K1,I1); 
         Bhat_S2D2     = func_Decode_ML_hard(RM_demod_S2D(LEN/2+1:LEN),r,m,V2,N2,K2,I2); 
         %计算误码率
         Err           = Err + min([sum(xor(Bhat_S2D1(1:K),Signal0)),sum(xor(Bhat_S2D2(1:K),Signal0))]);
    end
    Errs(k) = Err/Num/length(Signal);
end    
  
figure
semilogy(SNR,Errs,'b-o');
grid on;
xlabel('SNR');
ylabel('Bit error');

save r0.mat SNR Errs
01_103m

4.算法理论概述

        基于协作MIMO系统的RM编译码是无线通信领域中的一项重要技术。在协作MIMO系统中,多个天线协同工作以提供更高的数据传输速率和更好的可靠性。RM(Reed-Muller)码是其中的一种常用编码方案,具有纠错能力强和译码复杂度相对较低的优点。

       Reed-Muller码 (RM码) 可依赖布尔函数(Boolean Functions)进行定义。

       在RM码的译码过程中,通常有两种方法:RM硬判决译码和RM软判决译码。这两种译码方法的主要区别在于它们处理接收信号的方式。

1. RM硬判决译码:

  • 在硬判决译码中,接收到的信号经过解调后,直接进行量化,将连续的信号幅度映射为离散的符号。
  • 随后,这些离散符号被送入RM译码器进行译码操作。
  • 由于在硬判决过程中丢失了部分接收信号的信息,因此硬判决译码的性能通常较软判决译码差一些。

2. RM软判决译码:

  • 与硬判决译码不同,软判决译码在处理接收信号时,保留了更多的信息。
  • 在解调后,接收到的信号不仅包含符号信息,还包含关于信号质量的置信度信息(比如信号的幅度、相位等)。
  • 这些额外的信息被送入RM译码器,可以用于更精确地恢复原始发送的信息。
  • 通常,软判决译码的性能要优于硬判决译码,因为它更充分地利用了接收到的信号信息。

       总结来说,基于协作MIMO系统的RM编译码中,RM硬判决译码和RM软判决译码的主要区别体现在对接收信号的处理方式上。硬判决译码直接量化接收信号为离散符号,而软判决译码则保留更多信号信息,并将其用于译码过程。因此,一般而言,RM软判决译码具有更好的性能,但实现复杂度也可能相对较高。

5.算法完整程序工程

OOOOO

OOO

O

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

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

相关文章

Flat Ads将在杭州举办社交出海沙龙,探寻海外巨大增量空间

深圳站落幕后&#xff0c;Flat Ads社交沙龙活动迎来杭州站&#xff01;11月29日&#xff0c;Flat Ads联动Alibaba Cloud、TopOn、融云&#xff0c;开展《泛娱乐社交APP出海新风口-杭州站》&#xff0c;分享如何捕捉出海新赛道的风向标&#xff0c;并迅速实现获客增长&#xff0…

Unity——URP相机详解

2021版本URP项目下的相机&#xff0c;一般新建一个相机有如下组件 1:Render Type(渲染类型) 有Base和Overlay两种选项&#xff0c;默认是Base选项 Base:主相机使用该种渲染方式&#xff0c;负责渲染场景中的主要图形元素 Overlay&#xff08;叠加&#xff09;:使用了Oveylay的…

转变关键财务流程,实现企业数字化升级

随着世界经济环境的不断发展和变化&#xff0c;企业的运营状态也需要进行及时的优化和升级&#xff0c;从不太理想的执行状态朝着理想的价值创造状态转变。实际上&#xff0c;许多企业在财务职能方面都没有实现现代化的成熟效果&#xff0c;这意味着它们的财务规划周期更长&…

vmware17 虚拟机拷贝、备份、复制使用

可以在虚拟机运行的情况下进行拷贝 查看新安装的虚拟机位置 跳转到上一级目录 复制虚拟机 复制虚拟机整个目录 删除lck文件&#xff0c;不然开机的时候会报错 用vmware 打开新复制的虚拟机 lck文件全部删除 点击开机 开机成功

CSS特效013:背景色彩不停流动效果

CSS常用示例100专栏目录 本专栏记录的是经常使用的CSS示例与技巧&#xff0c;主要包含CSS布局&#xff0c;CSS特效&#xff0c;CSS花边信息三部分内容。其中CSS布局主要是列出一些常用的CSS布局信息点&#xff0c;CSS特效主要是一些动画示例&#xff0c;CSS花边是描述了一些CSS…

CTF-PWN-堆- 【off-by-one】

文章目录 堆的off-by-one利用思路Asis CTF 2016 b00ks libc 2.31IDA源码main输入名字creat函数dele函数edit函数print函数reeditor name函数 思路exp思路 堆的off-by-one off-by-one指的是单字节缓冲区溢出&#xff08;off-by-one 是可以基于各种缓冲区的&#xff0c;比如栈、…

DataFrame.empty 与 DataFrame is None 的区别是?

请注意&#xff0c;empty 与 None 是不同的概念&#xff0c;这个要注意。不信我们试一下&#xff1a; import pandas as pddf pd.DataFrame()df ! df ! Nonedf.empty df is not None # 已经被赋值&#xff0c;为空但不为Nonea is None参考回答&#xff1a; DataFrame.empty…

windows Oracle Database 19c 卸载教程

目录 打开任务管理器 停止数据库服务 Universal Installer 卸载Oracle数据库程序 使用Oracle Installer卸载 删除注册表项 重新启动系统 打开任务管理器 ctrlShiftEsc可以快速打开任务管理器&#xff0c;找到oracle所有服务然后停止。 停止数据库服务 在开始卸载之前&a…

python趣味编程-5分钟实现一个Tic Tac Toe游戏(含源码、步骤讲解)

The Tic Tac Toe In Python是用 Python 编程语言编写的,这个Tic Tac Toe Game In Python是一个简单的基于 GUI 的策略游戏板,非常容易理解和使用。 所有的游戏规则都是一样的,就像我们玩实时井字棋一样,这是一个简单的多人游戏。 Python 中的 Tic Tac Toe 游戏:项目信息 …

助力水泥基建裂痕自动化巡检,基于yolov5融合ASPP开发构建多尺度融合目标检测识别系统

道路场景下的自动化智能巡检、洞体场景下的壁体类建筑缺陷自动检测识别等等已经在现实生活中不断地落地应用了&#xff0c;在我们之前的很多博文中也已经有过很多相关的实践项目经历了&#xff0c;本文的核心目的是想要融合多尺度感受野技术到yolov5模型中以期在较低参数量的情…

市县镇一体化视频会议系统

随着网络技术的飞速发展&#xff0c;县市各部门建成了业务专用通信网络。利用专用通信网络&#xff0c;省一市-县基本上都开通了局域网视频会议系统。我们在市局各科室和各县局间建成了专网跨网段的视频会议系统。连通宝视频会议系统建设方案软硬一体&#xff0c;可实现多点间语…

Navicat 基于 GaussDB 主备版的快速入门

Navicat Premium&#xff08;16.2.8 Windows版或以上&#xff09; 已支持对GaussDB 主备版的管理和开发功能。它不仅具备轻松、便捷的可视化数据查看和编辑功能&#xff0c;还提供强大的高阶功能&#xff08;如模型、结构同步、协同合作、数据迁移等&#xff09;&#xff0c;这…

【数据结构初阶】单链表(附全部码源)

单链表 1&#xff0c;单链表的概念及结构2&#xff0c;单链表的实现2.1初始化内容&#xff08;所需文件&#xff0c;接口&#xff09;2.2申请结点2.3打印单链表2.4尾插2.5头插2.6尾删2.7头删2.8查找2.9在pos位置之后插入2.10在pos位置前面插入2.11删除pos之后的值2.12删除pos位…

【Synopsys Bug记录】DC综合报错(显示warning:Unable to resolve reference)

文章目录 一、问题描述二、问题所在三、问题解决总结4.1 Warning的产生4.2 代码风格4.3 网表正确性 一、问题描述 在综合一个SOC时&#xff0c;发现综合后的门级网表文件缺少了apb系统下的子模块的网表。该SOC已经成功在FPGA上运行了&#xff0c;按理说在设计上是没有问题的。在…

TableUtilCache:针对CSV表格进行的缓存

TableUtilCache:针对CSV表格进行的缓存 文件结构 首先来看下CSV文件的结构&#xff0c;如下图&#xff1a; 第一行是字段类型&#xff0c;第二行是字段名字&#xff1b;再往下是数据。每个元素之间都是使用逗号分隔。 看一下缓存里面存储所有表数据的字段 如下图&#xff…

AH4056线性锂电池充电IC:高效、安全的充电解决方案

随着移动设备的普及&#xff0c;人们对电池续航能力的要求越来越高。为了满足这一需求&#xff0c;电池充电技术不断创新。本文将为您介绍一款AH4056线性锂电池充电IC&#xff0c;采用同步整流技术&#xff0c;具有宽输入电压范围、大充电电流、温度保护等优点&#xff0c;适用…

<Linux>(极简关键、省时省力)《Linux操作系统原理分析之Linux 进程管理 4》(8)

《Linux操作系统原理分析之Linux 进程管理 4》&#xff08;8&#xff09; 4 Linux 进程管理4.4 Linux 进程的创建和撤销4.4.1 Linux 进程的族亲关系4.4.2 Linux 进程的创建4.4.3 Linux 进程创建的过程4.4.4 Linux 进程的执行4.4.5 Linux 进程的终止和撤销 4 Linux 进程管理 4.…

nginx学习(1)

一、下载安装NGINX&#xff1a; 先安装gcc-c编译器 yum install gcc-c yum install -y openssl openssl-devel&#xff08;1&#xff09;下载pcre-8.3.7.tar.gz 直接访问&#xff1a;http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz&#xff0c;就…

python爬取穷游网景点评论

爬取穷游网的景点评论数据&#xff0c;使用selenium爬取edge浏览器的网页文本数据。 同程的评论数据还是比较好爬取&#xff0c;不像大众点评需要你登录验证杂七杂八的&#xff0c;只需要找准你想要爬取的网页链接就能拿到想要的文本数据。 这里就不得不提一下爬取过程中遇到的…

FFmpeg 6.1 发布,7.0时代即将来临

11月10日&#xff0c;FFmpeg 6.1正式发布。 FFmpeg 发布版本的时候&#xff0c;按照惯例&#xff0c;会选择一些物理学家名字作为代号&#xff0c;这一新版本代号为“Heaviside”。主要为纪念伟大的英国数学家和物理学家奥利弗黑维塞&#xff08;Oliver Heaviside)。 奥利弗黑维…