我是靠谱客的博主 重要芹菜,最近开发中收集的这篇文章主要介绍LDPC中变量节点处理单元(VNU)基本原理概述以及FPGA实现一、理论基础二、核心程序三、仿真测试结果,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

一、理论基础

二、核心程序

三、仿真测试结果


作者ID
:fpga和matlab
CSDN主页:https://blog.csdn.net/ccsss22?type=blog
擅长技术:
1.无线基带,无线图传,编解码
2.机器视觉,图像处理,三维重建
3.人工智能,深度学习
4.智能控制,智能优化
5.其他

一、理论基础

         码长较长的低速LDPC编码在信噪比较低的应用场合呈现出其他编码无法匹敌的优势,已经证明非规则的LDPC码性能甚至优于Turbo码高速LDPC编码性能也比较好.尤其是在磁记录等一些应用场合,码长较短的高速LDPC编码有着较为广阔的应用前景。在不久的将来,LDPC编码将用于更多高速高质量的通信场合。而UWB通信技术因其传输速率高、功耗低等优点在短距离的网络中得到越来越多的关注。特别是UWB无线通信因其具有良好的时域可分辨性尤其适合于密集多径环境中的短距离多用户接入。本文在SvstemGenerator中对LDPC码整个编译码系统进行了参数化的硬件实现,并构建了超宽带通信系统LDPC码硬件仿真平台,验证了LDPC码在UWB通信中的优异性能。

 VNU的功能为计算"变量一校验"信息以及更新后验对数似然比。其硬件实现图如图2所示,3个"校验一变量"信息和1个比特初始化信息相加减去相对应的1个"校验一变量"信息所得到的值舍人 处理后作为查找表运算的输入,查找表用于计算公式. 变量节点处理单元(Variable Node processing UnitVNU),其主要功能是处理从变量节点的信息到校验节点的信息。VNU模块的输入数据为校验节点传递给变量节点的信息。在VNU更新过程中,其主要涉及到垂直更新过程,译码判决过程两个环节。VNU模块的实现结构如下图所示:

          从图可知,VNU更新模块模块的工作流程为:四个数据vnu_din0,vnu_din1,vnu_din2,vnu_din3分别做二级加法树运算得到求和结果,每一级加法计算延迟一个clock时钟周期,因此二级加法树总共延迟2个clock。同时,这四个信号通过延迟模块Delay与求和的结果做减法运算。此处,为了保持参与减法运算的输入数据保持同步,让输入的数据和输出的数据保存同步,防止时序混乱,vnu_din0,vnu_din1,vnu_din2,vnu_din3四个输入信号通过2个clock的延迟模块之后与求和结果进行减法。选择器模块则用于区分迭代初始阶段和开始迭代阶段的输出选择,当迭代开始前,则通过选择模块输出初始值,之后输出实时更新的迭代输出结果。由于在做加法计算过程中,如果输入的数据幅度过大,那么加法结果可能出现幅度超出当前位宽下的最大值,因此通过限幅模块,防止结果溢出。该模型最后输出四个返回值vnu_dout0vnu_dout1vnu_dout2vnu_dout3。每次迭代完成之后,得到当前迭代之后的判决输出值。

二、核心程序

module VNU_6(
output reg signed [31:0] Q1,
output reg signed [31:0] Q2,
output reg signed [31:0] Q3,
output reg signed [31:0] Q4,
output reg signed [31:0] Q5,
output reg signed [31:0] Q6,
input
signed [31:0] R1,
input
signed [31:0] R2,
input
signed [31:0] R3,
input
signed [31:0] R4,
input
signed [31:0] R5,
input
signed [31:0] R6,
input
signed [31:0] L,
output P,
input clk,
input rst);
reg signed [31:0] P_sample;
assign P = P_sample[31]? 1'b1 : 1'b0;
always@(posedge clk or posedge rst)
begin
if(rst)
begin
P_sample = L;
Q1 = L;
Q2 = L;
Q3 = L;
Q4 = L;
Q5 = L;
Q6 = L;
end
else
begin
P_sample = R1 + R2 + R3 + R4 + R5 + R6 + L;
........................................

三、仿真测试结果

 A14-43

最后

以上就是重要芹菜为你收集整理的LDPC中变量节点处理单元(VNU)基本原理概述以及FPGA实现一、理论基础二、核心程序三、仿真测试结果的全部内容,希望文章能够帮你解决LDPC中变量节点处理单元(VNU)基本原理概述以及FPGA实现一、理论基础二、核心程序三、仿真测试结果所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(91)

评论列表共有 0 条评论

立即
投稿
返回
顶部