基于LDPC编译码和FP-MAP球形检测算法的协作MIMO系统误码率matlab仿真

目录

1.算法运行效果图预览

2.算法运行软件版本

3.部分核心程序

4.算法理论概述

4.1 LDPC码

4.1 Fincke-Pohst-MAP球形检测算法

5.算法完整程序工程


1.算法运行效果图预览

2.算法运行软件版本

matlab2017b

3.部分核心程序

................................................................

for kk = 1:length(EbNo)
    while (totalNumErr < Error_Num(kk))
        totalNumErr
       %%
        %下面开始联合迭代
        %下面开始联合迭代
        rr = r;     
        %初始半径,这里将搜索的范围变大,就是将系数alpha定为12.
        RR =(12*Nt)*(2/(10^(SNR/10)));                                   

        %按英文论文所示转变为实信号
        rev1=[real(rr);imag(rr)];  
        H1  = RayleighMat;
        %按英文论文所示信道转变为实矩阵
        HH=[real(H1(:,:)) -imag(H1(:,:));
            imag(H1(:,:))  real(H1(:,:))];              

        LA  = zeros(1,Frame_Length/2);
        LDs = 0;
        LD  = zeros(1,Frame_Length/2);
        LE  = zeros(1,Frame_Length/2);

        for Nout = 1:OUT_Iter
            if Nout == 1
               LA = zeros(1,Frame_Length/2);
            else
               LA = LA2; 
            end
            %球形map
            for J=1:Frame_Length/2                                            
                rev          = rev1(:,J);                
                %先计算|r-g*Si|^2
                [y_norm,LDs] = func_FP_MAP(rev,RR,HH,[-1,1],SNR);
                for jj=1:Nt
                    y_2norm(Nt*J+jj-Nt)=y_norm(jj)+j*y_norm(jj+Nt);                  
                end
                %每一个比特的后验似然比信息为
                LD(J) = LDs;
            end   
            %外部迭代主要计算 
            LE = LD - LA;
            %解交织
            LE_itrlac_code = de_interlace(LE,16,16); %用于LDPC译码节点更新
            DM_msg  = reshape(real(y_2norm),log2(P),Nt*Frame_Length/2);
            for ii2 = 1:length(DM_msg)
                if DM_msg(ii2)~=0
                   DM_msg2(ii2) = abs(DM_msg(ii2)-1)/2;
                else
                   DM_msg2(ii2) = 0; 
                end
            end       
            DM_msg3 = de_interlace(DM_msg2,16,16); %用于LDPC译码节点更新
            %内部迭代协作LDPC里面
            [z_hat,LQ] = func_Dec(-2*DM_msg3 + 1,N0,H,IN_Iter,LE_itrlac_code',Frame_Length);
            x_hat      = z_hat(size(G,2)+1-size(G,1):size(G,2));
            %交织
            tmp = LQ(size(G,2)+1-size(G,1):size(G,2))' - LE_itrlac_code;
            %交织
            LA2 = interlace(tmp,16,16);             
        end
        %===========================================================================
        count       = count + 1;
        totalNumErr = totalNumErr + biterr(x_hat', data);
    end
    BERs(kk) = totalNumErr/(count*Frame_Length);
end
 
figure;
semilogy(EbNo,BERs,'r-o');
grid on;
 

 
if IN_Iter==2
   save R1.mat  EbNo BERs
end
if IN_Iter==5
   save R2.mat  EbNo BERs
end
if IN_Iter==20
   save R3.mat  EbNo BERs
end
01_085m


4.算法理论概述

        在无线通信领域,多输入多输出(MIMO)技术因能提高频谱利用率和系统容量而受到广泛关注。而在协作通信中,多个终端共享彼此的天线以形成虚拟MIMO系统,进一步提高了传输可靠性。然而,随着天线数量的增加,接收机的复杂度也显著上升。为此,基于低密度奇偶校验(LDPC)编译码和固定点最大后验概率(FP-MAP)球形检测算法的协作MIMO系统被提出,以在保持系统性能的同时降低复杂度。接下来将详细介绍这一系统的原理和数学公式。

4.1 LDPC码

         LDPC码是一种线性分组码,它的校验矩阵是稀疏的,即大部分元素为0。这种稀疏性使得LDPC码的译码复杂度相对较低,同时具有良好的纠错性能。在编码过程中,信息位通过生成矩阵转换为码字;在译码过程中,接收到的信号通过校验矩阵进行纠错。常用的LDPC译码算法包括置信传播(BP)算法和最小和(Min-Sum)算法。

4.1 Fincke-Pohst-MAP球形检测算法

       FP-MAP(Fincke-Pohst-MAP)球形检测算法是一种用于MIMO系统接收端的信号检测算法。球形检测算法的基本思想是在接收信号空间中搜索一个“球形”区域,以找到最接近发送信号的点。而FP-MAP算法则通过固定点的迭代方式,逼近最大后验概率(MAP)检测的性能,同时降低了计算的复杂度。Fincke-Pohst算法的原理如下:

       基本思想:Fincke-Pohst算法是一种用于格点问题的求解方法,而MAP则是最大后验概率的缩写。结合这两者,Fincke-Pohst-MAP球形检测算法的核心思想是在一个限定的“球形”区域内搜索可能的发送信号,并利用最大后验概率原则进行决策。
        球形区域:该算法首先确定一个球形区域,该区域包含了所有可能的发送信号。这个区域的大小和形状可以根据实际情境进行调整。
        搜索策略:在确定了球形区域后,算法并不直接对这个区域内的所有点进行搜索,而是采用了一种更有效的策略——Fincke-Pohst算法。这种算法能够按照一定的顺序,逐层地对区域内的点进行搜索,从而确保首先找到的点是最优的或接近最优的。
       后验概率决策:对于每一个搜索到的点,算法计算其后验概率。最终选择的点不仅是搜索过程中首先找到的,而且其后验概率也是最大的。

         该算法涉及到一系列的递归和迭代公式,其核心是利用格点的性质进行高效搜索,具体的公式和策略较为复杂,需要配合相应的数据结构和计算机程序实现。

       在协作MIMO系统中,多个终端通过共享天线形成虚拟MIMO,提高了系统的分集增益和容量。同时,利用LDPC编译码进行前向纠错,提高了信号的传输可靠性。在接收端,采用FP-MAP球形检测算法对接收信号进行处理,可以在保证性能的同时降低计算的复杂度。整个系统的性能优化和复杂度降低是通过联合优化LDPC编译码和FP-MAP球形检测算法实现的。

       综上所述,基于LDPC编译码和FP-MAP球形检测算法的协作MIMO系统通过共享天线、采用纠错编码以及优化信号检测算法等方式提高了无线通信的性能和效率。这些技术在4G、5G等移动通信标准中得到了广泛应用,对于推动无线通信技术的发展具有重要意义。未来,随着技术的进步和创新,我们有理由相信,无线通信将会更加高效、可靠和智能。

5.算法完整程序工程

OOOOO

OOO

O

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

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

相关文章

新增文件收藏夹、回收站、终端等功能,1Panel开源面板v1.8.0发布

2023年11月13日&#xff0c;现代化、开源的Linux服务器运维管理面板1Panel正式发布v1.8.0版本。 在这一版本中&#xff0c;1Panel新增文件收藏夹、回收站、终端功能&#xff0c;面板设置时支持设置面板监听地址。此外&#xff0c;1Panel开源项目组还进行了60多项功能更新和问题…

【数据结构】经典单链表OJ题!!

学习完单链表&#xff0c;习题就成了最好的巩固方式 目录 1.链表分割:思路&#xff1a;代码实现&#xff1a; 2.随机链表的复制:思路1&#xff1a;代码实现&#xff1a;思路2&#xff1a;代码实现&#xff1a; 3.环形链表:3.1环形链表1:思路&#xff1a;代码实现&#xff1a; 3…

『MySQL快速上手』-⑧-内置函数

文章目录 1.日期函数1.1 获得年月日1.2 获得时分秒1.3 获得时间戳1.4 在日期的基础上加日期1.5 在日期的基础上减去时间1.6 计算两个日期之间相差多少天案例1案例22.字符串函数案例3.数学函数4.其他函数1.日期函数 1.1 获得年月日

【C++】——运算符重载

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

promise多请求并发

<!DOCTYPE html> <html><head><meta charset"utf-8" /><title></title> </head><body><script>let p1 new Promise((resolve, reject) > {resolve(成功了)})let p2 new Promise((resolve, reject) > …

JAVA基础语法编程详解---三目运算符

6.判断体重指数 题目描述 - 描述 体重指数 体重 (kg) / ( 身高 (m) 身高 (m) )&#xff0c;小于18.5属于偏瘦&#xff0c;介于18.5和20.9之间&#xff08;左闭右开&#xff09;属于苗条&#xff0c;介于20.9和24.9之间&#xff08;左闭右闭&#xff09;属于适中&#xff0c;…

云原生之使用Docker部署home-page个人导航页

云原生之使用Docker部署home-page个人导航页 一、home-page个人导航页介绍二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、下载home-page镜像五、部署home-page导航页5.1 创建挂…

振南技术干货集:深入浅出的Bootloader(3)

注解目录 1、烧录方式的更新迭代 1.1 古老的烧录方式 (怀旧一下&#xff0c;单片机高压烧录器。) 1.2 ISP 与ICP 烧录方式 (还记得当年我们玩过的 AT89S51?) 1.3 更方便的 ISP 烧录方式 1.3.1串口 ISP &#xff08;是 STC 单片机成就了我们&#xff0c;还是我们成就了…

通配符SSL证书

通配符SSL证书是一种特殊的数字证书&#xff0c;用于在互联网上建立安全的连接&#xff0c;其特点是可以保护多个子域名&#xff0c;并且具有很高的兼容性和扩展性。本文将详细介绍通配符SSL证书的相关概念、优点和应用等。 首先&#xff0c;我们需要了解什么是SSL证书。 SSL证…

python入口文件方便在其它目录也能执行

dir_path os.path.dirname(os.path.realpath(__file__)) parent_dir_path os.path.abspath(os.path.join(dir_path, os.pardir)) sys.path.insert(0, parent_dir_path)

CPU vs GPU:谁更适合进行图像处理?

CPU 和 GPU 到底谁更适合进行图像处理呢&#xff1f;相信很多人在日常生活中都会接触到图像处理&#xff0c;比如修图、视频编辑等。那么&#xff0c;让我们一起来看看&#xff0c;在这方面&#xff0c;CPU 和 GPU 到底有什么不同&#xff0c;哪个更胜一筹呢&#xff1f; 一、C…

股市助手:实时股市快讯,真人语音播报,助您第一时间获取最新资讯(自己写的分享给需要的人)

文章目录 &#x1f4d6; 介绍 &#x1f4d6;&#x1f3e1; 使用环境 &#x1f3e1;&#x1f4d2; 使用方法 &#x1f4d2;&#x1f4dd; 软件设置&#x1f4dd; 软件运行 &#x1f4d6; 介绍 &#x1f4d6; 给大家分享一款自己写的软件《股市助手》&#xff0c;老规矩&#xff…

【C++初阶(七)】类和对象(下)

本专栏内容为&#xff1a;C学习专栏&#xff0c;分为初阶和进阶两部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握C。 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;C &#x1f69a;代码仓库&#xff1a;小小unicorn的代码仓库&…

Linux安装MongoDB

Download MongoDB Community Server | MongoDB 简单安装 百度网盘 链接&#xff1a;https://pan.baidu.com/s/1j7q0TtkpByfg8kqb2UCHZw 提取码&#xff1a;93zr --来自百度网盘超级会员V4的分享 解压文件 tar -xvf mongodb-linux-x86_64-4.0.10.tgz 移动解压后的文件到指…

VS设置--查看引用库源代码

1.工具-->选项-->文本编译器-->C#-->高级-->勾选支持导航到反编译源(试验)

Java系列之 IDEA 为类 和 方法设置注解模板

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 1、类方法注解模板 1、File–>settings–…

虚拟局域网

虚拟局域网(VLAN) VLAN建立于交换技术的基础之上 广播域(broadcast domain)&#xff1a;其中任何一台设备发出的广播通信都能被该部分网络中的所有其他设备所接收&#xff0c;这部分网络就叫广播域利用以太网交换机可以很方便地实现虚拟局域网VLAN(Virtual LAN)对于一个主机和…

Windows安装docker地址流程配截图,附网卡被禁用处理(有线插了没反应)

Windows安装docker流程配截图 Windows安装docker比较简单&#xff0c;跟着步骤一步一步操作就行&#xff0c;安装包到官网下载就行 安装包下载 下载地址 https://www.docker.com/get-started/下载后双击打开&#xff0c;进入安装界面。单选框是添加桌面快捷方式&#xff0c…

产品经理天天跑火车,我直接和他闹翻

前言 说起产品经理与程序员&#xff0c;简直就是一对冤家。 程序员觉得产品经理不尊重技术规则&#xff0c;产品经理埋怨程序员不尊重创作用心。 一边互怼&#xff0c;一边还要合作&#xff0c;终于&#xff0c;有人忍不下去&#xff0c;动手了…… ![](https://img-blog.cs…

【渗透实战】木马免杀

先看效果(文中附源码) 思路 1.shellcode自身免杀 首先cs生成一个bin文件 再没有二开的情况下落地就会死 那么如何处理呢? 可以通过对shellcode进行加密和编码的方式,然后在内存中进行解密执行 这里介绍几种主流的编码和加密方式 编码方式: base64 sgn编码 加密方式: XO…