【LDPC编码】CDR系统中LDPC编码,LDPC编码的码长为9216

article/2025/10/14 2:39:50

1.软件版本

matlab2013b

2.系统描述

       在广播通信系统中,消息发送的速度和性能是一对矛盾,当发送速度快,则必然会降低消息的可靠性,当要求系统的性能,则必然会降低发送码率。为了提高系统的性能,并尽可能的提高系统的传输码率。需要使用信源编码和信道编码,其中信源编码,其主要目的就是使用尽可能少的符号来传递信息,从而提高传输效率。信道编码的主要原理就是在待发送的二进制序列上加入监督码元,通过这些监督码元,可以使得发送的二进制序列之间产生相关性,因此信道编码是通过增加发送数据的冗余度来提高系统的性能。差错控制译码则利用这些规律性来鉴别传输过程是否发生错误,或进而纠正错误[05,06]。本章将主要介绍一种基于中国数字音频广播(CDR)系统的QC-LDPC编码实现方法,并通过MATLAB对其进行性能的仿真分析。

    CDR系统,其主要通过数字编码调制技术实现数字音频广播业务和数据业务的播出。CDR系统中规定了87MHz~108MHz频率范围内数字广播系统信息的各种技术指标,包括帧结构、信道编码以及调制技术。CDR整个系统的基本结构如下图所示:

图1CDR数字音频广播系统结构图

        从图1的结构可知,CDR系统同时可以传输多路数字信号,包括数字音频及数据业务,各路业务等,并通过复用的方式进行发送,然后在系统的发送端,通过编码和调制将数字信号发送出去。因此,信道编码部分在整个系统中起到一个决定性的功能,信道编码的性能直接影响着整个CDR系统的性能。

    在CDR系统中,稀疏校验矩阵H为一个二进制稀疏矩阵。根据国家的相关规定可知,CDR标准通过表明该稀疏校验矩阵中每一行非元素的位置来描述,以LDPC(9216,4608) 为例,其校验矩阵H结构如下所示:

         [0]: 495 1190 1527 2847 3289 3656 4800 4864  

         [1]: 496 1191 1528 2848 3290 3657 4801 4865  

         [2]: 497 1192 1529 2849 3291 3658 4802 4866  

         [3]: 498 1193 1530 2850 3292 3659 4803 4867 

         .........

         .........

         [4605]: 506 1430 2027 2893 3417 3656 4653 9213  

         [4606]: 507 1431 2028 2894 3418 3657 4654 9214  

         [4607]: 508 1432 2029 2895 3419 3658 4655 9215  

    其含义为,[0]表示第一行中的495,1190等列的元素表示的是取值为1的非零元素,而其他没有标注的列所对应的元素则为零元素。同样道理,[4607]: 508 1432....表示的是第4608行的508,1432等列的元素表示的是取值为1的非零元素,而其余列为零元素。

     该校验矩阵的整体01布局图如下图所示:

图2基于CDR的1/2码率LDPC码的校验矩阵

       从图2的校验矩阵的01布局图可知,该矩阵具有明显的准双对角线的性质。因此采用传统的基于生成矩阵的编码方式得到的码字将导致其稀疏性大大降低,因此,本文才去基于基于近似下三角矩阵LDPC编码实现方法。

      根据基矩阵,构建相应的校验矩阵H,这里我们选择如下形式的基矩阵。

3.部分源码

clc;
clear all;
close all;
warning off;
addpath 'func\'load HG12.mat;[m,n]= size(H);
R    =(n-m)/n;
N    = size(G,1);
Wlvel= [2000];
SNR  = [-1:1:7];
for i1=1:length(SNR)i1err= 0;j1 = 0;while err<Wlvelerrj1          = j1+1;Ti          = randi([0,1],1,N);Ti_ldpc     = mod(Ti*G,2);                           Ti_ldpcN    = awgn(2*Ti_ldpc-1,SNR(i1));Ydecode     = decodeLogDomainSimple(Ti_ldpcN',H,15);    Ri          = Ydecode(end-N+1:end);err         = err + length(find(Ri~=Ti));endErrall(i1)=err/N/j1;
endfigure;
semilogy(SNR,Errall,'b-o');
xlabel('SNR(dB)');
ylabel('BER');
grid on;save R12.mat SNR Errall

4.仿真结论

    将SNR信噪比设置为0到10dB,分别对LDPC(9216,6912) ,LDPC(9216,4608)、LDPC(9216,3072)以及LDPC(9216,2304)进行误码率仿真,得到如下的误码率曲线。

5.参考文献

[01]MAHDI A, PALIOURAS V. Construction of irregular QC-LDPC codes via masking with ACE optimization[J]. IEEE communications letters,2014,18(2):348-351.A14-39


http://chatgpt.dhexx.cn/article/LVWHKjD8.shtml

相关文章

5G LDPC编码流程

参照3GPP的标准文档&#xff0c;摘录其中下行共享信道与寻呼信道的LDPC编码流程&#xff0c;以便于进行对应的软件仿真 传输块加CRC校验   记待传输的数据块序列为 a 0 , a 1 , ⋯ , a A − 1 a_0,a_1,\cdots,a_{A-1} a0​,a1​,⋯,aA−1​&#xff0c;其中 A A A为传输块的负…

linux杀进程

linux学习心得 查看所有进行中的后台进程 命令 &#xff1a;ps aux ps命令查看应用进程。 后面的参数 -a &#xff1a; 显示现行终端机下的所有进程&#xff0c;包括其他用户的进程&#xff1b; -u &#xff1a;以用户为主的进程状态 &#xff1b; x &#xff1a;通常与 a …

Linux找到进程并杀死

第一种情况&#xff1a; 写脚本的时候没没把程序杀死&#xff0c;再次启动发现端口被占用了&#xff0c;于是找到原来的端口然后kill掉重启 用下面2个命令可以&#xff1a; netstat -tunlp|grep 8080t&#xff1a;表示查看tcp u&#xff1a;表示查看udp n&#xff1a;表示端口…

在 Linux 中杀死一个进程

在 Linux 中&#xff0c;假如一个进程的 PID 为 3810&#xff0c;那么结束一个进程可以使用如下命令&#xff1a; $ kill -9 3810 以 Postman 为例&#xff0c;首先我们需要找到它的进程号&#xff0c;然后才能杀死。 查找进程号使用 ps 命令&#xff0c;不过有一个强大的参…

Linux命令行下杀死一个进程

在做项目的时候经常会出现程序死机、锁死、无响应等情况&#xff0c;这时候就需要找到程序相应的进程将其杀掉即可。步骤如下&#xff1a; 1.定位进程 top命令&#xff1a;可以实时动态地查看系统的整体运行情况&#xff0c;是一个综合了多方信息监测系统性能和运行信息的实用…

linux中进程杀不死解决办法

如图&#xff0c;多次在kill -9 此进程后依然存在 先说解决办法&#xff0c;输入过滤命令ps -ef|grep xxx&#xff08;此处写要过滤的进程名字&#xff09;&#xff0c;例如 之后kill掉对应的进程号&#xff0c;如图 问题解决。 如果有多个子进程可以先过滤再一起杀死&#xf…

Linux中kill命令杀不掉进程的解决办法

1、进程杀不掉的原因有两种&#xff1a; &#xff08;1&#xff09;这个进程是僵尸进程 &#xff1b; &#xff08;2&#xff09;此进程是"核心态"进程。 2、解决办法&#xff1a; &#xff08;1&#xff09;进入到“/proc/进程号”目录下&#xff0c;执行“cat stat…

Linux 批量杀进程

1.查需要杀死的进程 ps -ef | grep yum 2.去除掉里面的grep ps -ef | grep yum | grep -v grep 3.打印kill命令 ps -ef | grep yum | grep -v grep | awk {print "kill "$2} 4.执行kill命令 ps -ef | grep yum | grep -v grep | awk {print "kill "$2} …

linux 找出谁杀了进程

目录 Linux Signal 到底是什么信号 OOM 谁发的信号 systemtap audit 案例与总结 服务端的程序&#xff0c;一般都希望比较长时间的运行&#xff0c;比如7*24小时。不过&#xff0c;程序也需要更新&#xff0c;比如修Bug&#xff0c;比如增加新功能&#xff0c;比如修复增…

Linux操作系统之批量杀死进程

前言 在Linux操作系统中&#xff0c;一般常用的杀死进程的命令是 kill 、 pkill 、 killall &#xff0c;根据杀死单个进程拓展至批量杀死进程。 1、查看指定名称的进程&#xff0c;如下查看运行wps程序的进程&#xff1a; ps -ef | grep wps | grep -v grep 结果如下&…

在 VUE中,动态加载JS文件

需求 在vue组件中需要调用的函数方法名是相同的&#xff08;接口相同&#xff09;&#xff0c;但是按照页面不同需要导入不同JS文件 。如下&#xff1a; 然而上面这种写法肯定是行不通的&#xff0c;但表达的需求很明确。根据menuId的不同从JS文件中获取方法 解决方案 promi…

原生js实现动态加载js文件?

一、写在前面 今天拼多多笔试题&#xff0c;题目如下&#xff1a; 实现一个动态加载函数function loadScript(src, attrs)返回Promise, 其中 src是脚本地址&#xff0c;attrs是脚本属性。二、具体实现 <script>function loadScript(src, attrs) {return new Promise((r…

JavaScript网页实例:在网页里动态加载JavaScript

把一些逻辑独立的JavaScript脚本文件单独加载&#xff0c;是一种常见的JavaScript动态加载技术。这样做的好处有很多&#xff0c;比如可以减少不必要的JavaScript脚本文件的加载&#xff0c;以提高网页浏览速度。 补充代码&#xff0c;要求用户在网页中点击【动态加载】按钮后…

html动态加载js方法,动态引入js四种方法总结

这次给大家带来动态引入js四种方法总结,动态引入js四种方法的注意事项有哪些,下面就是实战案例,一起来看一下。 index.html test.jsalert("hello! I am test.js"); var str="1"; dynamic.js//第一种方式:直接document.write 但这样会把当前的页面全覆写…

动态加载js文件

1、使用场景 例如本人当前需求——给当前的管理系统的bootstarpTable的提示语修改各个国家的语言&#xff08;语言提示根据当前管理系统的语言环境&#xff09;。 也就是根据如图所示的语言&#xff0c;来变换bootstarptable的提示语&#xff0c; 类似这种提示语。 看看是怎么做…

js中动态加载js

下面介绍一种JS代码优化的一个小技巧&#xff0c;通过动态加载引入js外部文件来提高网页加载速度 【基本优化】 将所有需要的<script>标签都放在</body>之前&#xff0c;确保脚本执行之前完成页面渲染而不会造成页面堵塞问题&#xff0c;这个大家都懂的。 【合…

统计学 假设检验 P值

统计学 假设检验 P值 什么是P值 案例分析 来自总体方差检测的题目 p值的计算 P值

统计假设检验中的P值及置信区间理解

置信区间&#xff0c;就是一种区间估计。 例如&#xff0c;使用95%假设区间估计&#xff0c; 正式的期望无法获取&#xff0c;可用期望的均值替代 显著性P-value 假设&#xff1a;说你的硬币是公平的 检验假设&#xff1a;扔十次&#xff0c;看实验的结果是不是和假设相符 …

统计|假设检验中的P值(pvalue)如何看/怎样理解

本博文源于《商务统计》&#xff0c;之前在做matlab编程和spss统计分析中&#xff0c;对p值的理解就是懵懵懂懂&#xff0c;无法确定出真正含义。今天就以新生儿的例子来观看p值是如何看的&#xff0c;并且了解假设检验的5个步骤。 例子&#xff1a;新生儿 假设检验的一般步骤…

假设检验:使用p值来接受或拒绝你的假设

作者|GUEST 编译|VK 来源|Analytics Vidhya 介绍 检验是统计学中最基本的概念之一。不仅在数据科学中,假设检验在各个领域都很重要。想知道怎么做?让我们举个例子。现在有一个lifebuoy沐浴露。 沐浴露厂商声称,它杀死99.9%的细菌。他们怎么能这么说呢?必须有一种测试技术…