CCSDS CONVOLUTIONAL CODING 卷积码 规范

文章目录

  • 3 CONVOLUTIONAL CODING
    • 3.1 overview
    • 3.2 general
      • 3.2.1 ATTACHED SYNC MARKER
      • 3.2.2 DATA RANDOMIZATION
      • 3.2.3 FRAME VALIDATION
      • 3.2.4 QUANTIZATION
    • 3.3 BASIC CONVOLUTIONAL CODE SPECIFICATION
    • 3.4 PUNCTURED CONVOLUTIONAL CODES
  • matlab中的 comm.ConvolutionalEncoder 与CCSDS卷积码协议的对应
    • matlab中的poly2trellis

来源:官方文件 CCSDS 131x0b5.pdf

3 CONVOLUTIONAL CODING

3.1 overview

基本卷积码是速率 ® 1/2、约束长度 (K) 7 的透明码,非常适合以高斯噪声为主的信道。,该代码在 3.3 中定义。,当根据 3.4 对此代码进行穿孔(punctured)时,尽管纠错性能较低,但可以实现较高的码率。

穿孔(punctured)允许选择 2/3、3/4、5/6 或 7/8 的单一码率。,四种不同的穿孔方案允许为给定的服务或数据速率选择最合适的纠错级别和符号率。

3.2 general

3.2.1 ATTACHED SYNC MARKER

与卷积码一起使用的附加同步标记应为 9.2 中规定的 32 位模式,并且应始终在执行卷积编码之前插入。

3.2.2 DATA RANDOMIZATION

应使用第 10 节中定义的伪随机化器,除非系统设计者验证以下注释中确定的问题已通过其他方式解决。

当与二进制相移键控 (BPSK) 调制一起使用时,使用基本卷积码指定反相器,以确保足够的位转换以保持接收器符号同步器锁定。,如果使用一些复用方案,例如使用正交相移键控(QPSK)调制,或者如果使用穿孔卷积码,则单独的反相器不能保证足够的位转换。,还有一些数据模式无法确定卷积码同步。,伪随机化器还用于帮助信号采集并减轻传输信号中的谱线。

3.2.3 FRAME VALIDATION

当使用 TM、AOS 或 USLP 传输帧时,应使用参考文献 [1]、[2] 或 [6] 中指定的帧错误控制字段 (FECF) 来验证传输帧,除非卷积码被级联,带有外部 Reed-Solomon 代码(参见第 4 节)。

如果超出解码器的纠正能力,输出中可能会出现未检测到的错误突发。

3.2.4 QUANTIZATION

只要约束(例如解码器的复杂性)允许,就应该使用至少具有三位量化的软位决策。

3.3 BASIC CONVOLUTIONAL CODE SPECIFICATION

在这里插入图片描述
NOTES:
1 由于卷积码是透明的,因此可以在卷积编码器之前使用差分编码来帮助解决相位模糊度,相应地,接收端从NRZ-M到NRZ-L的转换应该在卷积解码器的输出处执行。,不建议在卷积编码器之后进行差分编码,因为它会带来相当大的性能损失。,它还需要差分检测,这对于软符号来说更加复杂。
2 当符号流中的固定模式(卷积编码的附加同步标记的固定部分)用于为卷积解码器提供节点同步时,需要考虑由调制波形转换产生的模式的任何修改。

在这里插入图片描述

3.4 PUNCTURED CONVOLUTIONAL CODES

在这里插入图片描述

matlab中的 comm.ConvolutionalEncoder 与CCSDS卷积码协议的对应

trellis=poly2trellis(7,[171,133]);



function out = conv_encode(data,trellis)
code_conv_0 = convenc(data,trellis);
l=length(data);
code_conv=ones(l,1);
for i=1:2:2*l-1
    %这里对应c2的那个inverter。poly2trellis函数里似乎没有直接的表示取反的系数,用了一个亦或
    code_conv(i)=code_conv_0(i);
    code_conv(i+1)=xor(code_conv_0(i+1),1);
end
out = code_conv;



function decode = conv_decode( code, trellis )

% 解码
% 约束长度1+6=7
% 第一位输出生成序列为(1111001)2=(171)8
% 第二位输出生成序列为(1011011)2=(133)8
% trellis=poly2trellis([7],[171,133]);
% 上述含义为:2种输入状态,4种输出状态,64=2^6个寄存器
% 下一个状态可以组合出64*2种,输出64*2种
% 这东西本质上是个网格图,一堆点那个
    l=length(code);
    code_conv=ones(l,1);
    for i=1:2:l-1
        code_conv(i)=code(i);
        code_conv(i+1)=xor(code(i+1),1);
    end

    %解码
    tbdepth = 30; % 维特比解码器的回溯深度
    decode= vitdec(code_conv,trellis,tbdepth,'trunc','hard');

matlab中的poly2trellis

trellis = poly2trellis(ConstraintLength,CodeGenerator)
trellis = poly2trellis(ConstraintLength,CodeGenerator,FeedbackConnection)

trellis = poly2trellis(ConstraintLength,CodeGenerator) returns the trellis structure description corresponding to the conversion for a rate K / N feedforward encoder. K is the number of input bit streams to the encoder, and N is the number of output connections. ConstraintLength specifies the delay for the input bit streams to the encoder. CodeGenerator specifies the output connections for the input bit streams to the encoder.

trellis = poly 2 trellis(constraint length,CodeGenerator)返回与速率为K / N的前馈编码器的转换相对应的网格结构描述。k是编码器的输入比特流数,N是输出连接数。ConstraintLength指定编码器输入比特流的延迟。CodeGenerator指定输入比特流到编码器的输出连接。

The poly2trellis function accepts a polynomial description of a convolutional encoder and returns the corresponding trellis structure description. This output can be used as an input to the convenc and vitdec functions. It can also be used as a mask parameter value for the Convolutional Encoder, Viterbi Decoder, and APP Decoder blocks.

poly2trellis函数接受卷积编码器的多项式描述并返回相应的网格结构描述。此输出可用作convenc和vitdec函数的输入。它也可以用作卷积编码器、维特比解码器和APP解码器模块的掩码参数值。

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

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

相关文章

Linux IRC

目录 入侵框架检测 检测流程图 账号安全 查找账号中的危险信息 查看保存的历史命令 检测异常端口 入侵框架检测 1、系统安全检查(进程、开放端口、连接、日志) 这一块是目前个人该脚本所实现的功能 2、Rootkit 建议使用rootkit专杀工具来检查&#…

OSPF之单区域配置

文章目录 单区域配置项目背景项目分析拓扑图配置思路基础配置命令查看路由器接口IP地址信息OSPF配置 测试PC1与PC2互通查看OSPF邻居表修改OSPF路由器的router-id完美的OSPF配置命令写法常用查询命令 单区域配置 项目背景 企业内部存在多个部门,分别属于不同的网段…

经纬恒润AUTOSAR产品成功适配芯来RISC-V车规内核

近日,经纬恒润AUTOSAR基础软件产品INTEWORK-EAS(ECU AUTOSAR Software,以下简称EAS)在芯来提供的HP060开发板上成功适配芯来科技的RISC-V处理器NA内核,双方携手打造了具备灵活、可靠、高性能、强安全性的解决方案。这极…

C语言-printf和scanf的区别详解

fprintf(指定的格式写到文件里面。适用于所有的输出流,可以打印在屏幕上面)fscanf(指定的格式读取出来,适用于所有的输入流) fprintf(指定的格式写到文件里面) 两个函数是一样的 打开…

DFS:二叉树的深搜与回溯

一、计算布尔二叉树的值 . - 力扣(LeetCode) class Solution { public:bool evaluateTree(TreeNode* root) {if(root->leftnullptr) return root->val0?false:true; bool left evaluateTree(root->left);bool rightevaluateTree(root->rig…

B096-docker版jenkins环境搭建

目录 Jenkins持续集成工具的介绍Jenkins安装过程案例 tips:ssm项目需要放到tomcat中运行,springboot项目不需要,内置有tomcat,可直接命令行运行 Jenkins持续集成工具的介绍 Jenkins安装过程 docker版Jenkins需要先安装docker环境…

ES6 学习(二)-- 字符串/数组/对象/函数扩展

文章目录 1. 模板字符串1.1 ${} 使用1.2 字符串扩展(1) ! includes() / startsWith() / endsWith()(2) repeat() 2. 数值扩展2.1 二进制 八进制写法2.2 ! Number.isFinite() / Number.isNaN()2.3 inInteger()2.4 ! 极小常量值Number.EPSILON2.5 Math.trunc()2.6 Math.sign() 3.…

vue3封装Element分页

配置当前页 配置每页条数 页面改变、每页条数改变都触发回调 封装分页 Pagination.vue <template><el-paginationbackgroundv-bind"$attrs":page-sizes"pageSizes"v-model:current-page"page"v-model:page-size"pageSize":t…

使用PopLDdecay软件绘制LD衰减图

前记 PopLDdecay是一款用于进行种群遗传学和关联分析的软件。它可以在全基因组水平上进行基因型数据的相关性和衰减分析&#xff0c;帮助研究人员探索种群间的遗传差异和突变选择的模式。 使用PopLDdecay可以实现以下功能&#xff1a; 遗传距离的计算&#xff1a;可以计算遗…

Python3:ModuleNotFoundError: No module named ‘elftools‘

问题背景 问题 ModuleNotFoundError: No module named ‘elftools’ 解决方法 pip3 install pyelftools 成功&#xff01;&#xff01;&#xff01;

最优算法100例之13-输出第n个丑数

专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html 题目描述 把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当…

瑞_23种设计模式_中介者模式

文章目录 1 中介者模式&#xff08;Mediator Pattern&#xff09;1.1 介绍1.2 概述1.3 中介者模式的结构1.4 中介者模式的优缺点1.5 中介者模式的使用场景 2 案例一2.1 需求2.2 代码实现 3 案例二3.1 需求3.2 代码实现 &#x1f64a; 前言&#xff1a;本文章为瑞_系列专栏之《2…

【JAVA】Idea 右侧的gradle 不见了

1. 找到项目的build.gradle 文件&#xff0c;右键 2. 找到“Link Gradle Project”选项 3. 右侧就出现了gradle

记录一个写自定义Flume拦截器遇到的错误

先说结论&#xff1a; 【结论1】配置文件中包名要写正确 vim flume1.conf ... a1.sources.r1.interceptors.i1.type com.atguigu.flume.interceptor.MyInterceptor2$MyBuilder ... 标红的是包名&#xff0c;表黄的是类名&#xff0c;标蓝的是自己加的内部类名。这三个都…

wiztree免费的c盘清理软件

现如今&#xff0c;我们无论是工作还是学习&#xff0c;都已经离不开电脑了&#xff0c;经常使用电脑就会导致电脑的“垃圾”越来越多&#xff0c;从而导致磁盘爆红。 相信大家多多少少都体会过这大红的压迫感吧&#xff0c;想清理但是不敢删&#xff0c;不清理吧软件用不了&a…

ArcGIS支持下SWAT与CENTURY模型的结合:流域水碳氮综合模拟

目录 专题一 流域水碳氮建模 专题二 数据准备 专题三 流域水模拟 专题四 流域氮模拟 专题五 流域碳模拟 专题六 模型结果分析及地图制作 更多应用 基于ArcGIS的SWAT模型是一类比较典型的流域模型&#xff0c;结合SWAT模型和生物地球化学循环模型可以实现流域水碳氮综合模…

1.1 单片机的概念

一,单片机的概念 单片机(Single-Chip Microcomputer),也被称为单片微控制器,是一种集成电路芯片。它采用超大规模集成电路技术,将具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、…

怎么让ChatGPT批量写作原创文章

随着人工智能技术的不断发展&#xff0c;自然语言处理模型在文本生成领域的应用也日益广泛。ChatGPT作为其中的佼佼者之一&#xff0c;凭借其强大的文本生成能力和智能对话特性&#xff0c;为用户提供了一种高效、便捷的批量产出内容的解决方案。以下将就ChatGPT批量写作内容进…

蓝桥杯第十五届抱佛脚(五)DFS、BFS及IDS

蓝桥杯第十五届抱佛脚&#xff08;五&#xff09;DFS、BFS及IDS 深度优先搜索 DFS(Depth-First Search)即深度优先搜索,是一种用于遍历或搜索树或图的算法。它从根节点开始,尽可能沿着每一条路径直到这条路径最后一个节点被访问了,然后回退,继续访问下一条路径。它的基本思想…

亚米级分辨率卫星原始影像免费了

免费申请亚米级分辨率卫星原始影像(限学生) 引言 今天我去参加了长光卫星公司在北京举行的一个培训班&#xff0c;看到了一个宣传栏&#xff0c;挺有意思的&#xff0c;分享一下: 就是吉林长光给高校用户的一个影像福利&#xff0c;用来促进吉林一号的应用&#xff0c;你用长…