循环码的特点与多项式描述

简介: 循环码的特点与多项式描述

本专栏包含信息论与编码的核心知识,按知识点组织,可作为教学或学习的参考。markdown版本已归档至【Github仓库:https://github.com/timerring/information-theory 】或者公众号【AIShareLab】回复 信息论 获取。

循环码

能够识记循环码的基本概念;

能够说明循环码生成多项式的特点;

能够应用多项式运算完成循环码(系统型和非系统型)的编译码;

能根据生成多项式求出循环码的生成矩阵(系统型和非系统型);

能够解释循环码的编译码电路;

了解循环冗余校验(CRC) ,BCH和RS三种线性循环码

循环码的特点

1.可以用线性反馈移位寄存器很容易地实现编码和伴随式计算;

2.由于循环码有许多固有的代数结构,从而可以找到各种简单实用的译码方法。

由于循环码具有很多的良好性质,所以它在理论和实践中都很重要。

基本概念

定义: 设 $\mathrm{C}$ 是某 ($\boldsymbol{n}, \boldsymbol{k}$) 线性分组码的码字集合, 如果对任何
$$ \mathbf{c}=(c_{n-1}, c_{n-2}, \cdots, c_{0}) \in \mathbf{C} $$
它的循环移位(左移)
$$ \mathbf{c}^{(1)}=(c_{n-2}, c_{n-3}, \cdots, c_{0}, c_{n-1}) $$
也属于 $\mathrm{C}$ , 则称该 ($\boldsymbol{n}, \boldsymbol{k}$) 码为循环码。

同理, 左移 i 位
$$ \mathbf{c}^{(i)}=(c_{n-i-1}, c_{n-i-2}, \cdots, c_{0}, c_{n-1}, \ldots, c_{n-i}) $$
仍是这个循环码的一个码字。

下面A、B、C、D四个码集,哪个码集是循环码? A

提示:先判断是否线性分组码,再看是否符合循环特性

A. (000,110,101,011)

B. (000,010,101,111)

C. (001,110,101,111)

D. (000,010,100,001)

循环码的多项式描述

对任意一个长为 $n$ 的码字
$$ \mathbf{c}=(c_{n-1}, c_{n-2}, \cdots, c_{1}, c_{0}) \in \mathbf{C} $$
可用一多项式来表示, 称其为码多项式:
$$ c(x)=c_{n-1} x^{n-1}+c_{n-2} x^{n-2}+\cdots+c_{1} x+c_{0} $$

$$ \begin{array}{l} \mathrm{C}=(c_{n-1}, c_{n-2}, \ldots, c_{1}, c_{0}) \\ \lt C(x)=c_{n-1} x^{n-1}+c_{n-2} x^{n-2}+\ldots+c_{1} x+c_{0} \end{array} $$

$\boldsymbol{c}_{i}$ 是多项式的系数, 一切系数的运算均是在 $\boldsymbol{G F}(2)$ 上的运算。

多项式的阶数一系数不为 0 的 x 的最高幂次:
$$ \operatorname{deg} c(x) \leq n-1 $$

多项式的加法和乘法运算 GF (2)

加法
$$ \begin{array}{l} u(x)=u_{2} x^{2}+u_{1} x+u_{0}, g(x)=g_{1} x+g_{0} \\ u(x)+g(x)=(u_{2}+0) x^{2}+(u_{1}+g_{1}) x+(u_{0}+g_{0}) \end{array} $$
乘法
$$ \begin{array}{l} u(x) g(x) \\ =u_{2} g_{1} x^{3}+(u_{2} g_{0}+u_{1} g_{1}) x^{2}+(u_{1} g_{0}+u_{0} g_{1}) x+u_{0} g_{0} \end{array} $$
写成矩阵形式
$$ c=(u_{2}, u_{1}, u_{0})(\begin{array}{llll} g_{1} & g_{0} & 0 & 0 \\ 0 & g_{1} & g_{0} & 0 \\ 0 & 0 & g_{1} & g_{0} \end{array})=(u_{2} g_{1},(u_{2} g_{0}+u_{1} g_{1}),(u_{1} g_{0}+u_{0} g_{1}), u_{0} g_{0}) $$
例:
$$ \begin{array}{l} (x^{6}+x^{2}+1)+(x^{3}+x^{2})\\ =x^{6}+x^{3}+(1+1) x^{2}+1 \\ =x^{6}+x^{3}+1 \end{array} $$
基本多项式关系
$$ \begin{array}{c} (x+1)^{2}=x^{2}+1 \\ (x+1)(x^{3}+x+1)(x^{3}+x^{2}+1)=x^{7}+1 \\ (x+1)(x^{n-1}+x^{n-2}+\cdots+x+1)=x^{n}+1 \end{array} $$

多项式的模运算

模 $\mathbf{N}$ 运算: $M / N=Q+R / N \quad 0 \leq R \lt N$ ; 其中 M, N 为 正 整数, $\mathbf{Q}$ 为整数, 则在模 $\mathbf{N}$ 运算下, 有 $M \equiv \mathbf{R}$ (模 $\mathbf{N} $, 记为 $\bmod \mathbf{N}$ )

例 : $14 \equiv 2(\bmod 12)$, $1+1=2 \equiv 0 (mod 2)$, $3+2=5 \equiv 1(\bmod 2)$, $5 \times 4=20 \equiv 0(\bmod 2)$

给定任意两个系数在 $G F(2) $ 上的多项式 a(x) 和 p(x) , 一定存在有唯一的多项式 Q(x) 和 r(x) , 使
$$ a(x)=Q(x) p(x)+r(x) $$
称 Q(x) 是 a(x) 除以 p(x) 的商式, r(x) 是 a(x) 除以 p(x) 的余式, 在模 p(x) 运算下,
$$ a(x) \equiv r(x) \quad[\bmod p(x)] $$
记 a(x) 除以 p(x) 的余式为 $r(x)=[a(x)] \bmod p(x)$ , 其中
$$ 0 \leq \operatorname{deg} r(x)<\operatorname{deg} p(x) \text {, 或 } r(x)=0 $$

$x^6$被$x^3+x+1$除,求余式

注:GF(2)的运算中,用加法代替减法。

计算过程省略:$r(x) = x^2 + 1$

对于任意多项式 a(x) 、 b(x) 和 p(x) , 可以证明

$$ \{b(x)[a(x)]_{\bmod p(x)}\}_{\bmod p(x)}=[b(x) \cdot a(x)]_{\bmod p(x)} $$

若:

$$ \begin{array}{c} a(x)=x^{7}+x+1 \\ b(x)=x^{2}+1 \\ p(x)=x^{3}+x+1 \end{array} $$

请验证上式。余式=1。

对于 (n, k) 循环码, 若 c(x) 对应码字
$$ \mathbf{c}=(c_{n-1}, c_{n-2}, \ldots, c_{1}, c_{0}), $$

$\boldsymbol{c}^{(1)}(\boldsymbol{x})$ 对应 $\boldsymbol{c}$ 的一次移位 $\mathbf{c}^{(1)}=(c_{n-2}, \ldots, c_{1}, c_{0}, c_{n-1})$ , 对 $c^{(i)}(x)$ 对应 c 的 i 次移位 $c^{(i)}$ ,则
$$ \begin{array}{c} c^{(1)}(x)=[x c(x)] \bmod (x^{n}+1) \\ c^{(i)}(x)=[x^{i} c(x)] \bmod (x^{n}+1) \end{array} $$
证:

$$ \begin{array}{l} c^{(1)}(x)=[x c(x)] \bmod (x^{n}+1) \text {, } \\ c^{(i)}(x)=[x^{i} c(x)] \bmod (x^{n}+1) \\ c(x)=c_{n-1} x^{n-1}+c_{n-2} x^{n-2}+\cdots+c_{1} x+c_{0} \\ x c(x)=c_{n-1} x^{n}+c_{n-2} x^{n-1}+\cdots+c_{1} x^{2}+c_{0} x \\ =c_{n-1} x^{n}+c_{n-2} x^{n-1}+\cdots+c_{1} x^{2}+c_{0} x+c_{n-1}+c_{n-1} \\ =c_{n-1}(x^{n}+1)+c^{(1)}(x) \\ arrow[x c(x)]_{\bmod (x^{n}+1)}=[c_{n-1}(x^{n}+1)+c^{(1)}(x)]_{\bmod (x^{n}+1)} \\ =c^{(1)}(x) \\ \end{array} $$

例 (7,4) 循环码的第 12 个码字 $c_{12}$ 的码多项式 为 $C(x)=x^{6}+x^{4}+x^{3}$ , 写出左循环移位 3 次的码字。

解: $i=3, x^{3} C(x)=x^{9}+x^{7}+x^{6}$ , 与 $x^{7}+1$ 作除法, 得 $C^{(3)}(x)=x^{6}+x^{2}+1$ 。对应码字 1000101 。

另: 由简单移位给出, 原始码字 1011000 , 左移三位为: 1000101 。

参考文献:

  1. Proakis, John G., et al. Communication systems engineering. Vol. 2. New Jersey: Prentice Hall, 1994.
  2. Proakis, John G., et al. SOLUTIONS MANUAL Communication Systems Engineering. Vol. 2. New Jersey: Prentice Hall, 1994.
  3. 周炯槃. 通信原理(第3版)[M]. 北京:北京邮电大学出版社, 2008.
  4. 樊昌信, 曹丽娜. 通信原理(第7版) [M]. 北京:国防工业出版社, 2012.
目录
相关文章
|
数据采集 算法 JavaScript
彩票中奖率的真相:用 JavaScript 看透彩票背后的随机算法(上)
原本这篇文章是打算叫「假如我是彩票系统开发者」,但细想一下,如果在文章中引用太多的 JavaScript 的话,反而不是那么纯粹,毕竟也只是我的一厢情愿,彩票开发也不全如本文所讲,有所误导的话便也是得不偿失了。
|
虚拟化 KVM Linux
带你读《KVM实战:原理、进阶与性能调优》之二:KVM原理简介
本书兼具实战性、系统性又不乏深度的KVM虚拟化技术指南,既能让新人快速掌握KVM的基础知识,又能满足有经验的读者进阶学习的需求。本书两位作者来自于阿里云和Intel,在云计算和KVM方面有深入的研究,他们将自己的经验倾囊相授,带你全面了解KVM的各种技术细节。
|
6月前
|
监控 Cloud Native 安全
《服务治理》全景指南:构建可靠的分布式系统
服务治理是分布式系统的“交通管制中心”,通过注册发现、配置管理、流量控制等机制,确保服务稳定高效协作。涵盖核心组件、关键能力及Service Mesh等前沿趋势,助力构建可靠云原生架构。(239字)
|
9月前
|
前端开发 JavaScript Java
智能客服系统的技术栈解析-唯一客服系统技术架构优势
“唯一客服系统”采用 Vue.js 2.x + ElementUI 构建前端,实现响应式界面,支持多端适配;后端基于 Golang + Gin + GORM,具备高性能与高并发处理能力。系统支持私有化部署,提供灵活定制、AI 扩展能力,技术栈简洁易维护,兼顾开发者友好与企业级应用需求。
373 1
|
机器学习/深度学习 人工智能 编解码
StereoCrafter:腾讯开源将任意2D视频转换为立体3D视频的框架,适用于Apple Vision Pro等多种显示设备
StereoCrafter 是腾讯开源的框架,能够将单目2D视频转换为高保真度的立体3D视频,适用于多种显示设备。
1130 8
StereoCrafter:腾讯开源将任意2D视频转换为立体3D视频的框架,适用于Apple Vision Pro等多种显示设备
|
存储 搜索推荐 API
拼多多根据ID取商品详情原数据API接口的开发、运用与收益
拼多多作为中国电商市场的重要参与者,通过开放平台提供了丰富的API接口,其中根据ID取商品详情原数据的API接口尤为重要。该接口允许开发者通过编程方式获取商品的详细信息,为电商数据分析、竞品分析、价格监测、商品推荐等多个领域带来了丰富的应用场景和显著的收益。
942 10
|
存储 弹性计算 固态存储
阿里云服务器租用价格参考:云服务器各收费项目收费标准与活动价格
阿里云服务器收费项目有实例价格、预留实例券、专有宿主机、块存储价格、存储容量单位包、带宽价格和快照服务价格,收费模式有包年包月和按量付费模式。本文为大家汇总了2025年阿里云服务器各个收费项目的最新收费标准与云服务器的最新活动价格,以供参考和了解。
|
搜索推荐 Linux iOS开发
探索操作系统的未来:智能化与个性化的融合之路
在数字时代的浪潮中,操作系统作为连接用户与硬件的桥梁,正经历着前所未有的变革。本文将从智能化和个性化两个维度出发,探讨操作系统未来的发展趋势。我们将通过分析当前主流操作系统的特点,揭示它们在智能化管理和个性化服务上的不足,并提出未来操作系统可能的发展方向。文章旨在启发读者思考,如何在保持易用性和稳定性的同时,让操作系统更加智能和贴近用户需求。
322 38
|
小程序 JavaScript 前端开发
基于微信小程序的宠物寄养平台(毕业设计,附源码,教程)
基于微信小程序的宠物寄养平台(毕业设计,附源码,教程)