奇偶校验码

通俗易懂讲通 奇偶校验 (Parity Check) 和 汉明码 (海明码、Hamming Code) 通俗易懂讲通汉明码 (Hamming Code) 和 奇偶校验 (Parity Check) 奇偶校验(Parity check) 奇偶校验是一种添加一个奇偶位用来指示之前的数据中包含有奇数还是偶数个1的检验方式 偶校验 编码过程: 当实际数据中“1”的个数为偶数的时候,校验位是“0”,反之校验位是“1”,换句话说,数据位(N位)和 校验位(1位)组成的 编码数据(N+1位)中,将总共包含偶数个1。 校验过程: 检查 编码数据(N+1位),如果其包含偶数个 1,则 校验通过 偶校验 举例 阅读详情

偶校验为例:
例图中,下划线为校验位,其余为信息位在这里插入图片描述

检错步骤如下:
1.
根据信息位算出校验位(通过异或运算:相同为0,不同为1):
在这里插入图片描述
得出校验位为:0
为什么通过异或运算就能得出校验位为0呢?
其一,这是偶校验,偶校验是通过编码(即校验位+信息位在内的所有位)中1的个数为是否为偶数来检错的,如果1的个数为偶数,则说明编码传输正确,反之,则错误。
(奇校验同理,根据1的个数是否为奇数来检错,如果1的个数为偶数,则说明编码传输正确,反之,则错误。)
其二,因为经过信息位的异或运算,得出0,说明1的个数为奇数,为了保证整个编码符合偶校验(即编码中1的个数为偶数),所以校验位只能是0。

2.
进行偶校验:
(对所有位进行异或运算,结果为1则不符合偶校验的检错方式,表示编码出错,结果为0则符合偶校验,表示编码传输正确。)
在这里插入图片描述
————————————————————————————————

奇校验的不同:
1.算校验位时保证编码中1的个数为奇数
2.进行检错时,对所有位异或运算结果为1正确,为0错误。

————————————————————————————————
奇偶校验码的缺点:
1.只具备检错功能,没有纠错功能
2.码距d=2,仅能检测出奇数位错误
在这里插入图片描述
检错能力是50%的意思是,1、3、5……位错误可以检测出来,2、4、6……位检测不出来。

计算机底层:奇偶校验码 因此只要将数据对应的四种状态设为合法状态,冗余的四种状态设为非法状态,那么计算机校验时,如果发现数据是非法状态的数据,那么计算机就会知道,这个数据在传输过程中发生了改变。如果在使用偶校验码在数据传输时,如果数据传输时改变了奇数个,那么接收方会发现这个信息发生了改变,如果数据传输时改变了偶数个,那么接收方就会认为这个数据是合法的。如果在使用奇校验码在数据传输时,如果数据传输时改变了偶数个,那么接收方会发现这个信息发生了改变,如果数据传输时改变了奇数个,那么接收方就会认为这个数据是合法的。 阅读详情

相关推荐

校验码——奇偶校验码详解,码距,例题

相关文章: 校验码——码距 校验码——海明码及码距 校验码——CRC循环冗余校验码 一、码距 二、奇偶校验码 奇偶校验码是一种增加二进制传输系统最小距离的简单和广泛采用的方法。例如,单个的奇偶校验将使码的最小距离由一增加到二。 一个二进制码字,如果它的码元有奇数个1,就称为具有奇性。例如,码字“10110101”有五个1,因此,这个码字具有奇性。同样,偶性码字具有偶数个1。注意奇性检测等效于所有码元的模二加,...

Ujiggg的博客 1万+

一句话搞懂奇偶校验

一句话搞奇偶校验一句话搞懂奇偶校验奇偶校验是啥一句话搞懂奇偶校验实例 一句话搞懂奇偶校验 奇偶校验是一种常见的校正数据错误的方式。 奇偶校验是啥 奇偶校验是是数据传送时采用的一种校正数据错误的一种方式,分为奇校验和偶校验两种。 奇理偶校验的过程是一样的,只是判断方式不一样。 1# 奇校验 当检测数据中“1”的个数为偶数,奇校验位为“1”; 当校验数据中“1”的个数为奇数,奇校验位为“0”。 2# 偶校验 当检测数据中“1”的个数为偶数,偶校验位为“0”; 当校验数据中“1”的个数为奇数,偶校验位为“1”

DavidBrucesun的博客 1万+

奇偶校验码、海明码

奇偶校验码 奇偶校验码是一种增加二进制传输系统最小距离的简单和广泛采用的方法。奇偶校验码是奇校验码和偶校验码的统称,是一种最基本的检错码。是一种通过增加冗余位使得码字中"1"的个数恒为奇数或偶数的编码方法。 ⑴奇偶校验码原理: 它是由n-1位信息元和1位校验元组成,可以表示成为(n,n-1)。如果是奇校验码,在附加上一个校验元以后,码长为n的码字中“1”的个数为奇数个;如果是偶校验码,在附加上一个校验元以后,码长为n的码字中“1”的个数为偶数个。 奇校验:确保整个被传输的数据中“1”的个数是奇数个,

m0_73540824的博客 2052

奇偶校验

在利用SCI(Serial Communication Interface,串行通信接口)进行通信时,如何判断传输是正确的?最常见的方法就是增加一个校验位(就是所谓的奇偶校验位)来检测是否有错误发生。

Ronnie_Hu的博客 2253

word 2013 长篇文档排版案例教程

office 2013 制作长文格式模板

1万+

STEP 7-Micro/WIN SMART 编程软件:从入门到精通的使用指南

通过不断实践,熟悉软件的各项功能和操作技巧,工程师可更好地应对工业自动化控制中的各种挑战,开发出高效、稳定的控制程序。项目的基本组件是构成程序的核心元素,包括:程序块(主程序 OB1、子程序和中断程序)、数据块(给 V 存储器赋初值)、系统块(硬件组态和参数设置)、符号表(用符号代替存储器地址,使程序更易理解)以及状态图表(监视、修改和强制变量状态)。下载程序时,单击工具栏上的 “下载” 按钮,在弹出的下载对话框中选择要下载的块(程序块、数据块、系统块),单击 “下载” 即可。

电工 5574

奇偶校验判断

奇偶校验(Parity Check)是一种校验代码传输正确性的方法。根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶校验。采用何种校验是事先规定好的。通常专门设置一个奇偶校验位,用它使这组代码中“1”的个数为奇数或偶数。若用奇校验,则当接收端收到这组代码时,校验“1”的个数是否为奇数,从而确定传输代码的正确性。 ...

nidie508的博客 6517

YOLOv8的二次创新 | 结合iRMB与EMA打造全新的iEMA机制,提升动态检测性能【附保姆级代码】

YOLOv8继承了YOLO系列的轻量化和高效检测特性,同时通过改进的架构设计使得其在实时场景下具有更高的检测精度。然而,随着检测需求的增加,尤其是在动态目标检测和长时间序列检测中,YOLOv8的鲁棒性依然可以提升。通过iEMA机制的引入,我们将在这些方面进行进一步优化。iRMB模块是我们对传统Residual Block的进一步改进。通过多层特征提取,iRMB能够捕捉更多层次的特征信息,并通过引入轻量化的残差结构,提升计算效率。

一键难忘的博客 3086

什么是奇偶校验

什么是奇偶校验       对数据传输正确性的一种校验方法。在数据传输前附加一位奇校验位,用来表示传输的数据中"1"的个数是奇数还是偶数,为奇数时,校验位置为"0",否则置为"1",用以保持数据的奇偶性不变。例如,需要传输"11001110",数据中含5个"1",所以其奇校验位为"0",同时把"110011100"传输给接收方,接收方收到数据后再一次计算奇偶性,"110011100"中仍然

周游世界 7284

DISM进行系统修复,进度条卡在63.2%的解决方法

一时用不了软件,安装修复的时候也出现问题 DISM一直卡在63.2%,等了好久时间,直接强制退出寻找最终的解决方案

码农研究僧的博客 1万+

STM32入门教程:无人机控制

我们将会一步一步引导您完成无人机的控制代码,包括无人机的姿态控制、飞行控制和通信控制等。第三步:配置无人机姿态控制 无人机的姿态控制是指控制无人机在空中的倾斜和转向。为了实现姿态控制,我们需要使用加速度计和陀螺仪传感器来获取无人机的姿态信息,并使用PID控制算法来控制无人机的姿态。在这一步骤中,您需要根据您使用的具体传感器和控制算法的要求进行更详细的配置和编码。在通信控制中,您需要考虑到通信的稳定性和可靠性。第五步:通信控制 无人机的通信控制是指与地面站或其他设备进行通信,传输飞行数据和接收飞行指令。

m0_75244442的博客 747

奇偶校验码 ,奇偶校验码检错原理,奇偶校验码的缺点。

奇偶校验码是什么?奇偶校验码怎么检错?奇偶校验码优缺点?

wangyuxiang946的博客 4万+

车载以太网网络测试-24【SOME/IP概述】

SOME/IP**(Scalable Service-Oriented Middleware over IP)是一种基于IP网络的面向服务的通信协议,专为汽车电子系统设计,支持服务发现、远程过程调用(RPC)和事件通知等功能。核心标准是由 AUTOSAR(汽车开放系统架构)定义,现已成为车载通信的重要标准之一(如AUTOSAR 4.0+)。SOME/IP的全称是,它是一种基于IP网络的面向服务的通信协议,广泛应用于汽车电子(AUTOSAR)和物联网领域。Scalable(可扩展的)含义。

车载网络测试工程师的博客 2193

2.1.5 校验码(一文带你分析搞懂:奇偶校验码、海明码、CRC码)

文章目录:什么是校验码?1.奇偶校验码怎么通过奇偶校验码判断数据是正确还是错误呢?(1)奇校验(1)偶校验为什么无法检查出偶数个错误?2.海明(汉明)校验码什么是海明校验码?一题搞懂海明码,在信息位 n=4 ,校验位 k=3 时,求 1010 的海明码。(1)确定海明码位数(2)确定校验位 P~i~ 在海明码中的位置(3)分组形成校验关系(5)校验位 P~i~ 取值(5)海明码的校验原理3.循环冗...

BitHachi 2万+

Lumerical 教程目录,说明及个人感悟(共计138篇,持续更新中)

Lumerical---教程说明及个人感悟

u011699626的博客 1万+

《open3D+pyqt》点云读取、显示与保存

《open3D+pyqt》第一章:点云读取与显示一、效果展示二、环境配置三、代码3.1 qt designer设置3.2 生成ui,qrc的py文件3.3 py文件代码 一、效果展示 二、环境配置 环境配置:Anconda+pycharm+pyqt+open3d+pyqtgraph 显示界面:这里选择pyqtgraph 参考网上教程 三、代码 3.1 qt designer设置 界面布局参照《PCL+QT》教程,界面设置:布局如下: 布局参数参考: 3.2 生成ui,qrc的py文件 3.3 py

阁楼 7115

校验码(奇偶校验码)

校验码(奇偶校验码) 1.奇偶校验码 通过在编码中增加一位校验位来使编码中1的个数为奇数或者偶数,校验位可以在原编码的前面或者后面加。通过加入校验位后的1个数是奇数还是偶数,可分为两种: 奇校验:1的个数为奇数 偶校验:1的个数为偶数 下图为奇校验和偶校验的设置方法。 例如:M的ASCII码77,二进制表示为01001101,若要求奇校验且校验位在最高位,则需要使1的个数为奇数。现原码中的1的个数为偶数,则校验位取值为1,将最高位设置为1,则M的二进制就变为11001101 错误检测能力 只能检测出奇数位

qwqc262的博客 2万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

奇偶校验码原来这样算!!!

数据传输的正误 数据发出方A像数据接收方B发送一串加密过后的情书(11011),但是信息在传输过程中可能发生错误,比如某人截获并修改内容,一段美好的爱情就结束了…(手动狗头).在电路传输中,电信号很容易受到干扰(电梯打电话你就知道了).于是我们要在原有的信息之外加上一个校验信息,这个校验信息叫做检验码. 这里讲集中常见的校验码. 检错 一位奇偶检验码 奇偶校验码分两种,实现约定是采用奇校验方式还是...

Kearney 2万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

奇偶校验码浅谈

1.什么是奇偶校验码 奇偶校验码也是一种校验码,它用来检测数据传输过程中是否发生错误,是众多校验码中最为简单的一种。 顾名思义,它有两种校验方法:奇校验和偶校验 奇校验:原始码流+校验位 总共有奇数个1 偶校验:原始码流+校验位 总共有偶数个1 2. 算法 跟CRC类似,也是在原始码流后面,加上校验位。不同的是,它的校验位只有一位,要么是0,要么是1。并且它的校验码还可...

weixin_30588729的博客 2748

海明码,奇偶校验码

校验码

heipao17的博客 9652
上一篇: MySQL数据库——ifnull函数
下一篇: 海明校验码
黄色猴子
博客等级 码龄7年 87粉丝 104原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值