首页 > 其他分享 >随机生成LDPC码并类下三角简化编码

随机生成LDPC码并类下三角简化编码

时间:2024-11-18 17:42:58浏览次数:3  
标签:编码 rows end parity cols flag 随机 LDPC row

%function [H]=genH(rows,cols)

%************设置参数***************

rows=8;

cols=24;

u=[1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1];

%**********创建一个1*12的全为零的数组row_flag*******

%**********创建一个24*12的全为零的矩阵parity_check**

row_flag(1:rows)=0;

parity_check=zeros(rows,cols);

%*******填充矩阵**按LDPC码校验矩阵满足条件的要求:(n,j,k)LDPC码

%通过循环,为每一列随机分配 3 个 1,确保每个 1 位于不同的行中

%j=3

bits_per_col=2;

for i=1:cols

a=randperm(rows);

for j=1:bits_per_col

parity_check(a(j),i)=1;

row_flag(a(j))=row_flag(a(j))+1;

end

end

%计算每行1的最多个数??????????????i=1:rows;

i=1:rows;

max_ones_per_row=ceil(cols*bits_per_col/rows);

% i=1:rows;

% max_ones_per_row=max(row_flag(i));

%%******************************************************************%%

%找出全是零元素的行和只有一个非零元素的行进行填充保证每一行最小有两个元素为1

for i=1:rows

if row_flag(i)==0 %如果该行没有1,则随机添加两个1

for k=1:2

j=unidrnd(cols);%unidrnd 函数用于生成一个均匀分布的随机整数

while parity_check(i,j)==1%判断这个位置元素是否是1

j=unidrnd(cols);

end

parity_check(i,j)=1; %在找到的新位置上置1

row_flag(i)=row_flag(i)+1; %行重加1

end

end

if row_flag(i)==1 %如果该行只有1个1,则随机再添加1个1

j=unidrnd(cols);

while parity_check(i,j)==1

j=unidrnd(cols);

end

parity_check(i,j)=1;

row_flag(i)=row_flag(i)+1;

end

end

%**********************************

% for i=1:rows

%

% if ismember(row_flag(i),0:max_ones_per_row) %如果该行小于max_ones_per_row个的1,则随机再添加1个1

% j=unidrnd(cols);

% while parity_check(i,j)==1

% j=unidrnd(cols);

% end

% parity_check(i,j)=1;

% row_flag(i)=row_flag(i)+1;

% end

% end

%%*********************************************************************************%%

%检查每一行,每一行的1元素个数超过max_ones_per_row,

标签:编码,rows,end,parity,cols,flag,随机,LDPC,row
From: https://blog.csdn.net/weixin_56805160/article/details/143863281

相关文章

  • 人工智能模型训练技术:随机失活,丢弃法,Dropout
    前一篇:《探索训练人工智能模型的词汇大小与模型的维度》序言:Dropout是神经网络设计领域的一种技术,通常我们把它翻译成随机失活或者丢弃法。如果训练神经网络的时候不用Dropout,模型就很容易“读死书”,也就是过拟合,结果可能导致项目失败。那Dropout到底在干什么呢?其实很简......
  • 随机森林(Random Forest)详解
    ✅作者简介:2022年博客新星第八。热爱国学的Java后端开发者,修心和技术同步精进。......
  • 极简 Java 图像处理教程:压缩、封装、编码让传输更轻松!
    1.背景简介及目的这是一个java读取图片流并进行格式转换,图片高质量压缩,ZIP格式转Base64的极简教程。功能需求是在对接农行支付接口时产生的,满足农行二级商户管理接口中上传商户影印件的功能。写这篇博客的目的是分享给大家我在工作中遇到的实际需求,解决问题的思路,以及一些技......
  • 第四章 随机向量
    §4.4随机向量的数字特征一、二维随机变量函数的数学期望定理:设\((X,Y)\)是二维离散型随机变量,其分布律为\(P\{X=x_i,Y=y_j\}=p_{ij}\),\(i,j=1,2,\cdots\),\(Z=g(X,Y)\)是\((X,Y)\)的函数,则:\[E[g(X,Y)]=\sum_{i=1}^{\infty}\sum_{j=1}^{\infty}g(x_i,y_j)p_{ij}\]\(二维连续......
  • 第四章 随机向量 精简版
    §4.4随机向量的数字特征一、二维随机变量函数的数学期望定理:设\((X,Y)\)是二维离散型随机变量,其分布律为\(P\{X=x_i,Y=y_j\}=p_{ij}\),\(i,j=1,2,\cdots\),\(Z=g(X,Y)\)是\((X,Y)\)的函数,则:\[E[g(X,Y)]=\sum_{i=1}^{\infty}\sum_{j=1}^{\infty}g(x_i,y_j)p_{ij}\]\(二维连续......
  • ffmpeg视频编码
    一、视频编码流程使用ffmpeg解码视频帧主要可分为两大步骤:初始化编码器和编码视频帧,以下代码以h264为例1.初始化编码器初始化编码器包含以下步骤:(1)查找编码器videoCodec=avcodec_find_encoder_by_name(videoCodecName);if(!videoCodec){release();retur......
  • 万字长文解读机器学习——集成学习、Bagging(随机森林)、Boosting(AdaBoost、GBDT、XGBoo
    ......
  • 视频编码基础入门
    文章目录前言一、视频编码的目标二、视频编码基本流程1.采样与颜色空间转换2.变换编码(例如DCT)3.量化4.熵编码5.运动补偿和帧间预测6.编码输出三、视频编码的关键技术1.帧类型2.GOP(GroupofPictures)结构3.比特率控制四、常见的视频编码标准H.264(AVC)H.265......
  • 高效Django随机查询优化方案
    高效的Django随机查询优化方案目录......
  • 抽奖-随机加权算法
    packagelotteryimport( "fmt" "math/rand" "sort" "time")typeLotterystruct{}funcNewLottery()*Lottery{ return&Lottery{}}typePrizestruct{ Namestring Stockint Weightint//权重}//......