畅谈无线通信系统物理层之CRC(一)概述与定义

CRC(循环冗余校验)用于无线通信中的错误检测,虽属于链路层,但在物理层接口紧密。CRC具有检错能力强、开销小的特点,能检测奇偶校验和算术和校验等方式无法发现的错误。CRC16-CCITT能纠正1bit随机错误,100%检测奇数个和特定长度的突发错误,但不能保证所有错误都能被检测到。输入位数不同,CRC检验位可能相同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CRC英文为Cyclic Redundancy Check,翻译过来即循环冗余校验,通过添加余式进行错误校验,CRC编码作为循环码字的一种,其生成原理与循环码字的生成完全一致。

严格来说,CRC并不属于物理层,它属于链路层的一部分,在CPU繁忙时,CRC用软件实现的时候占用资源较多,CRC会用硬件实现,此时和物理层接口比较紧密,同时CRC检错功能也可以用来定性物理层的错误,所以CRC也可以看做物理层的一部分。

为什么需要CRC?在通信设备传输过程中,尤其是无线通信中,无论传输系统物理层的设计再怎么完美,差错总会存在,有的时候,出错的某些数据一旦进入下一个流程,可能会引起重大的破环作用,这时需要丢弃,同时也可通知发送端重传,所以在接收方接收数据之前需要对数据进行差错检测,当且仅当检测的结果为正确时接收方才真正收下数据。检测的方式有多种,常见的有奇偶校验、因特网校验和循环冗余校验等。CRC特点是:检错能力强,开销小,易于用编码器及检测电路实现。从其检错能力来看,它所不能发现的错误的几率仅为0.0047%以下。从性能上和开销上考虑,均远远优于奇偶校验及算术和校验等方式

各种书籍和网站都对CRC进行了大量的介绍,如果只进行应用的话,发送接收端设计比较简单,按照标准流程和开源算法进行设计即可,但其实稍微仔细研究的话,会发现CRC其实并不简单,有一些有趣的性能会影响系统设计,比如CRC能纠错吗?CRC能发现所有的错误吗?通过CRC校验就一定没有错误吗?这里对基本问题进行总结,试图能全面了解CRC性能,为工程应用提供更好的支持。

一、定义

先给出CRC定义:通过添加用循环码字生成多项式生成的冗余码字进行校验的方法

讨论点

Q:CRC能纠错吗?

A:在一定条件下可以纠错,比如纠正一个bit错误,假设输入为16bit,加16bit校验后,如果其中32bit中只有1个bit错误,那么其接收序列都是唯一的,可以通过检查接收序列来确定哪一个bit出错。

Q:CRC能发现所有的错误吗?

A:不能,因为错误多了的话,有可能通过CRC校验,比如输入bit出错了,但是校验bit

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值