低密度奇偶校验码LDPC(七)——SPA和积译码算法的简化

一、SPA译码算法的实际应用

查找表与拟合

 盒加SPA译码器

二、SPA译码算法的简化算法

最小和算法(MSA)

 归一化最小和算法(Normalized MSA, NMSA)

偏移最小和算法(Offset MSA, OMSA) 

三、NMSA算法的Matlab实现

function [x_hat, iter_this_time] = Layered_NMSA_BP_decoder(llr, H_row_one_absolute_index, H_comlumn_one_relative_index, N, M, vn_degree, cn_degree, max_iter,alfa)
VN_array = zeros(max(vn_degree), N);
CN_tanh_tmp = zeros(max(cn_degree), 1);%CN temporary memory.
iter_this_time = max_iter;
for t = 1 : max_iterfor c = 1 : Mproduct = 1;for c_neighbor = 1 : cn_degree(c)%read data from VNs, and then store in CNs memory.Lji = sum(VN_array(:, H_row_one_absolute_index(c, c_neighbor))) + llr(H_row_one_absolute_index(c, c_neighbor)) - VN_array(H_comlumn_one_relative_index(c, c_neighbor), H_row_one_absolute_index(c, c_neighbor));%VN update. However, this simple MATLAB sentence consumes a lot of time.%CN_tanh_tmp(c_neighbor) = 1 - 2/(1 + exp(Lji));%Exact decoding. Equivalent to tanh(x/2), usually faster.if Lji==0Lji=1e-15;endCN_tanh_tmp(c_neighbor) =Lji;product = product * sign(Lji);%Avoid repeated calculations.endfor c_neighbor = 1 : cn_degree(c)Lij = product/sign(CN_tanh_tmp(c_neighbor));%Extract Extrinsic information, i.e., divide itself.minsort=sort(abs(CN_tanh_tmp(1:cn_degree(c))));if abs(CN_tanh_tmp(c_neighbor))==minsort(1)VN_array(H_comlumn_one_relative_index(c, c_neighbor), H_row_one_absolute_index(c, c_neighbor)) = alfa*Lij*max(minsort(2),1e-15);elseVN_array(H_comlumn_one_relative_index(c, c_neighbor), H_row_one_absolute_index(c, c_neighbor)) = alfa*Lij*max(minsort(1),1e-15);endendendx_hat = (sum(VN_array)' + llr) < 0;%Belief propagation Decision.parity_check = zeros(M, 1);for m = 1 : Mfor k = 1 : 1 : cn_degree(m)parity_check(m) = parity_check(m) + x_hat(H_row_one_absolute_index(m, k));endendif ~sum(mod(parity_check, 2))%early stop, to see whether Hx = 0.iter_this_time = t;break;end
end

 注:以上代码并不是最优的,最优算法参见上一篇博文。

四、写在最后

        写者学习QC-LDPC硬件实现的总结笔记。主要参考了白老师的书籍,自己在其中做了一些理解和总结,如有错误,请多指教。如果有相关问题,欢迎与我交流。

参考文献

[1] 白宝明 孙韶辉 王加庆. 5G 移动通信中的信道编码[M]. 北京: 电子工业出版社, 2018.

[2] William E. Ryan, Shu Lin. Channel Codes - Classical and Modern[M]. Cambridge University Press, 2009.

[3] Gallager R. Low-density parity-check codes[J]. IRE Transactions on information theory, 1962, 8(1): 21-28.

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言】linux内核xmit_one函数

一、中文注释 static int xmit_one(struct sk_buff *skb, struct net_device *dev,struct netdev_queue *txq, bool more) {unsigned int len;int rc;// 如果全局ptype列表或者设备特定的ptype列表不为空&#xff0c;则执行网络接口层网络层的NIT&#xff08;Network Tap&…

GenAI助力DevOps,塑造软件工程的未来

自 2022 年以来&#xff0c;GenAI 无疑已成为一种普遍的技术趋势。在本文中&#xff0c;我们将探索 DevOps 中令人兴奋的 GenAI 领域&#xff0c;讨论其潜在优势、局限性、新兴趋势和最佳实践&#xff0c;深入了解 AI 支持的 DevOps 前沿世界&#xff0c;并探索这一强大组合如何…

31-k8s集群svc的代理模式-iptables修改为ipvs

一、概述 学到这里&#xff0c;我们都知道&#xff0c;k8s集群的外部网络分发&#xff0c;借助kube-proxy组件来完成&#xff1b; 问题&#xff1a;我们为什么要将代理模式修改为ipvs而不继续使用iptables呐&#xff1f; 因为&#xff1a; 1&#xff0c;iptables底层使用四表五…

SpringBoot整合Redis及其持久化机制(二)

SpringBoot整合Redis及其持久化机制 1、Redis全局命令1.2、Redis事务 2、Redis持久化2.1、RDB方式2.1.1、客户端触发机制2.1.2、服务端触发机制2.2.3、配置生成快照名称和位置2.2.4、优点2.2.5、缺点 2.2、AOF方式2.2.1、优点2.2.2、缺点 2.3、RDB-AOF混合方式2.4、持久化机制的…

路由守卫:前置守卫和后置守卫

聚沙成塔每天进步一点点 本文内容 ⭐ 专栏简介路由守卫&#xff1a;前置守卫和后置守卫1. 前置守卫使用方式全局前置守卫局部前置守卫 2. 后置守卫使用方式全局后置守卫 案例&#xff1a;路由跳转前后权限验证总结 ⭐ 写在最后 ⭐ 专栏简介 Vue学习之旅的奇妙世界 欢迎大家来到…

Node.js中的数据加密和安全传输

在当今日益数字化的世界中&#xff0c;数据安全一直是一个备受关注的话题。Node.js作为一种流行的后端开发技术&#xff0c;其在数据加密和安全传输方面的应用也备受关注。本篇博客将深入探讨Node.js中的数据加密和安全传输相关内容&#xff0c;并为读者提供一些示例代码&#…

1209. 带分数 刷题笔记

思路 暴力匹配 读入目标数 n 看n是否与ab/c相等 因为c里面的除法是整除 我们将 nab/c 转换为 c*na*cb 那么如何获得a,b&#xff0c;c 依题意 a&#xff0c;b&#xff0c;c三个数由1-9九个数字组成 且每个数字只能出现一次 由此 我们可以搜出123456789的全部排列方式…

【YOLO v5 v7 v8 小目标改进】ODConv:在卷积核所有维度(数量、空间、输入、输出)上应用注意力机制来优化传统动态卷积

ODConv&#xff1a;在卷积核所有维度&#xff08;数量、空间、输入、输出&#xff09;上应用注意力机制来优化传统的动态卷积 提出背景传统动态卷积全维动态卷积效果 小目标涨点YOLO v5 魔改YOLO v7 魔改YOLO v8 魔改 论文&#xff1a;https://openreview.net/pdf?idDmpCfq6Mg…

数据库-第二/三章 关系数据库和标准语言SQL【期末复习|考研复习】

前言 总结整理不易&#xff0c;希望大家点赞收藏。 给大家整理了一下计数据库系统概论中的重点概念&#xff0c;以供大家期末复习和考研复习的时候使用。 参考资料是王珊老师和萨师煊老师的数据库系统概论(第五版)。 文章目录 前言第二、三章 关系数据库和标准语言SQL2.1 关系2…

Vue+SpringBoot打造个人保险管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 登录注册模块2.2 保险档案模块2.3 保险订单模块2.4 保险理赔模块 三、系统展示四、核心代码4.1 查询保险产品4.2 新增保险预定4.3 订单支付4.4 新增理赔单4.5 查询保险理赔 五、免责说明 一、摘要 1.1 项目介绍 基于J…

Spring MVC源码中设计模式——适配器模式

适配器模式介绍 适配器模式&#xff08;Adapter Pattern&#xff09;是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式&#xff0c;它结合了两个独立接口的功能。 应用场景&#xff1a; 1、系统需要使用现有的类&#xff0c;而此类的接口不符合系统的需要…

leedcode刷题--day7(字符串)

23 文章讲解 力扣地址 C class Solution { public:void reverseString(vector<char>& s) {int left 0;int right s.size() - 1; // right 应该初始化为 s.size() - 1while (left < right) {swap(s[left], s[right]); // 直接交换 s[left] 和 s[right] 的值lef…