精华内容
下载资源
问答
  • 编码传输过程中出错
    千次阅读
    2019-09-06 11:11:52

    https://blog.csdn.net/ios_xumin/article/details/79609029

    X.509公钥证书也好,电子邮件数据也好,经常要用到Base64编码,那么为什么要作一下这样的编码呢?

    我们知道在计算机中任何数据都是按ascii码存储的,而ascii码的128~255之间的值是不可见字符。而在网络上交换数据时,比如说从A地传到B地,往往要经过多个路由设备,由于不同的设备对字符的处理方式有一些不同,这样那些不可见字符就有可能被处理错误,这是不利于传输的。所以就先把数据先做一个Base64编码,统统变成可见字符,这样出错的可能性就大降低了。

     

    对证书来说,特别是根证书,一般都是作Base64编码的,因为它要在网上被许多人下载。电子邮件的附件一般也作Base64编码的,因为一个附件数据往往是有不可见字符的。

    1.标准base64只有64个字符(英文大小写、数字和+、/)以及用作后缀等号;

    2.base64是把3个字节变成4个可打印字符,所以base64编码后的字符串一定能被4整除(不算用作后缀的等号);

    3.等号一定用作后缀,且数目一定是0个、1个或2个。这是因为如果原文长度不能被3整除,base64要在后面添加\0凑齐3n位。为了正确还原,添加了几个\0就加上几个等号。显然添加等号的数目只能是0、1或2;

    4.严格来说base64不能算是一种加密,只能说是编码转换。使用base64的初衷。是为了方便把含有不可见字符串的信息用可见字符串表示出来,以便复制粘贴;

     

    https://www.cnblogs.com/l-yabiao/p/7173023.html

    可以得知,通过Base64编码,原来的3个字节编码后将成为4个字节,即字节增加了33.3%,数据量相应变大。

     

    更多相关内容
  • 按读写器到电子标签的数据传输方向,是读写器(发送器)的信号编码(信号处理)和调制器(载波电路),传输介质(信道),以及电子标签(接收器)的解调器(载波回路)和信号译码(信号处理)。  图1 射频...
  • 在数字通信,有些场合可不经过载波调制和解调过程,而对基带信号进行直接传输。采用AMI码的信号交替反转,有可能出现四连零现象,这不利于接收端的定时信号提取。而HDB3码因其无直流成份、低频成份少和连0个数最多...
  • 在数字通信,有些场合可不经过载波调制和解调过程,而对基带信号进行直接传输。采用AMI码的信号交替反转,有可能出现四连零现象,这不利于接收端的定时信号提取。而HDB3码因其无直流成份、低频成份少和连0个数最多...
  • 为进一步提高无线中继网络的信息传输速率,提出了一种基于复数域网络编码...性能分析和仿真结果表明,该下行传输方案的符号错误概率明显低于传统中继传输方案,且该方案将获得更高的信息传输速率和网络吞吐量。</span>
  • 如果在RFD信道传输过程中出现了错误,那么在接收端收到的波形码型之间就不满足原来的关系,这样就有可能判断出在传输过程中是否出现了错误,从而可以根据检测的结果做出下一步操作的决策,比如在多电子标签应用环境...
  • 差错控制一股分为检错法和纠错法。检错法是指在传输中仅仅发送足以使接收端检测出差错的附加位,接收端检测到一个荐错就要求重新发送数据。...数据单元传输过程中发生的错误有三种:单位错误、多位错误和突发
  • 基于无线视频监控传输技术进行无线信道视频图像传输过程中,经常面临数据传输错误、带宽变化、网络拥塞导致的视频数据丢失问题,严重影响了图像质量。Joint Video Team(JVT)of ISO/IEC MPEG and ITU-T VCEG提出...
  • 3D视频编码传输技术研究,于艳利,,3D视频业务的数据量大,数据压缩的效率直接影响了3D视频业务的市场应用,而实现高效率的压缩后,数据在传输过程中会对信道错误非��
  • 同时,在中继传输过程中同时考虑擦除和错误; 提出了一种用于错误控制的NC解码,以纠正擦除和错误。 尽管存在NC的解码错误,但可以通过CS的重构过程进一步减少该错误; 结果,接收器的相对恢复误差足够小。 最后...
  • 为此,我们遵循一些特定的方法编码和解码消息的过程,这样我们就可以最大程度地减少错误。 汉明编码主要是通过有选择地将冗余比特引入传输的信息流来完成的。 这些附加位将允许检测和纠正接收到的数据流的位错误...
  • 摘 要:本文重点介绍基于DSP和FPGA、采用中频数字化方法,以及QPSK扩频调制技术...但以上措施都只能检错,不能纠错,也就是说传输过程中不能容错。在远距离、干扰大、出错概率非常高的情况下,单纯的出错重发措施会失去
  • 移动通信的无线传输信道是一个多径衰落、随机时变的信道,其信道状态信息(CSI)会不断变化,不断变化的CST可以导致严重的错误突发,解决信道质量波动的方法之一就是自适应传输。AMC技术的本质是根据信道状态信息...
  • 摘 要:本文介绍了串型级联编码的原理,以及它在数字电视地面传输系统的应用,通过FPGA设计电路实现编码过程,最后说明串型级联编码的应用优越性。关键字:FPGA;编码;串型级联编码;数字电视地面传输系统 ...
  •  数字信号在传输过程中可能受到各种干扰及信道传输特性不理想的影响而使信号发生错误, 从而接收到错误的信息。为了实现数字系统在传输过程中的可靠性, 几乎所有的现代通信系统都把纠错编码作为一个基本组成部分。...
  • 为了解决无线链路易出错从而降低传输效率以及由于重传导致数据流间传输不公平的问题,基于网络编码思想提出了一种新的编码组重传模型。在无线单跳信道易错场景下,利用无线广播传输和重传特性,设计了基于编码组重传...
  • 为了改善无线链路出错而降低传输效率问题,在无线中心传输结构下,基于网络编码理论,首先提出了理想的基于编码组的传输模型(ITCG),并根据无线信道易错的特性,又提出了基于重传的编码传输模型(RTCG)。...
  • 在并行中继网络,基于复数域网络编码的并行中继方案具有较大的传输时延以及目的节点检测复杂度,提出了一种复数域网络编码的优化设计方案。性能分析和仿真结果表明,优化设计方案具有与并行中继方案相同的网络吞吐...
  • 5G NR物理层信号传输过程

    万次阅读 多人点赞 2019-08-06 16:47:17
    NR物理层信号传输过程: 下面就简单介绍一下在5G物理层的信号是怎样的一个完整的传输过程,为了能有一个宏观上的概念。这里只讲procedure,不具体到很细节的内容。在学习的过程中我也有很多模糊和理解不到位的...

    NR中物理层信号传输过程:

    下面就简单介绍一下在5G中物理层的信号是怎样的一个完整的传输过程,为了能有一个宏观上的概念。这里只讲procedure,不具体到很细节的内容。在学习的过程中我也有很多模糊和理解不到位的地方,欢迎大家和我一起讨论。
    涉及到高层的这里不介绍,物理层处理的起点是MAC层传下来的TB终点是生成基带OFDM信号,然后将基带OFDM信号变成射频信号,通过天线发射出去。这个过程涉及到很多步骤,参考下面这个图。
    在这里插入图片描述

    TB到CW

    1、TB是指传输块,MAC发往物理层的组织形式,都是一些01信息。TB第一步要经过CRC循环冗余校验。CRC就是加入了一定的冗余信息以保证你的信息具有一定的检错或者纠错能力,说白了就是一种信元编码。就好像你写了一封信,正经的内容写完了,你又加了一句:“如果你收到信的时候信封被拆封了,那么说明我的信已经被别人看了,你最好给我回个电话”一样。

    2、从高层下来的TB有时会过大,那么过大的TB就要经过码块分割,分割为适合下一步处理的大小,要注意分割之后还要加CRC。

    3、分割后的码块要经过信道编码,就比如汉明码、卷积码、Turbo码、Polar码等,使得接收端可以检测或者纠正传输中发生的错误,实现了可靠传输。

    4、编码后的信号,有时太多,分给它的资源却太少或信号太少,分的资源太多,那么就要进行速率匹配,以实现信息和资源的匹配。简单说就是信息多了就扔掉一些,信息少了就重复一些。

    5、速率匹配后的码块,从一个个的单个码块又串联在一起,形成的就是码字CW(code word)。

    说白了码字codeword其实就是TB的变形。

    MIMO、OFDM实现过程

    1、此时的码字仍然是一个个的0和1,这些0和1要进行扰码操作。扰码就是将信息bit和扰码序列相乘得到新的加扰后的序列。扰码序列会根据小区ID、子帧编号和UE ID的不同而不同,在5G中,由于不再是LTE那样以子帧为单位进行调度,而是以符号为单位,所以5G中扰码序列一般不再与时域的信息有关。进行加扰的目的就是上行避免不同的UE之间的干扰,下行避免不同的小区之间的干扰。
    2、加扰后的bit要进行调制,如下图
    在这里插入图片描述
    从此从0和1的bit变为复数值。5G中多数采用QAM调制,就是用不同的幅度和相位表示不同的01 bit,在数学表达上,调制后的符号可以表示为复数值,图中的I路和Q路分别是复数值的实部和虚部。具体的调制以及为什么要进行调制可以参考另一篇文章https://blog.csdn.net/m0_45416816/article/details/96572794
    3、调制后得到的复数值信号,要进行层映射。现在的系统最多可以同时处理2个码字,也就是说前面所说的从TB到CW的这个过程,目前可以有2个这样的过程并行进行。所以在层映射的过程中,包括1个码字的映射和2个码字的映射。这里所说的1个码字或者2个码字,指定是码字流,也就是一串码字流或是两串码字流。单码字流最多可以映射到4层,双码字流最多可以映射到8层。从协议38211中直接把层映射的表格拿过来如下。从表中可以很清楚的了解层映射的方式,以单码字映射到3个层为例,映射方式就是把码字按顺序分到层1一个、层2一个、层3一个,然后又层1一个、层2一个…双码字映射方式与单码字类似,以双码字映射到7个层为例,码字流1映射到层1一个、层2一个、层3一个,然后又层1一个、层2一个… 码字流2映射到层1一个、层2一个、层3一个、层4一个,然后又层1一个、层2一个…
    在这里插入图片描述
    在这里插入图片描述
    4、层映射之后的复数值信息进行预编码,就是将各层输出的结果看做一个向量,与一个预编码矩阵相乘,得到预编码的结果就可以直接进行天线端口映射了。这部分内容可以参考38211中6.3.1.5。层映射和预编码两步合起来,其实就是为了将码字映射到各个天线端口上进行发射。这里就涉及到物理天线数和天线端口数,因为在4G和5G中,多天线系统是为了将信号除了频域分集、时域分集以外,在加入空间分集,也就是不同的信号走不同的路。物理天线数就是多天线系统中实际的天线个数,决定了空间分集的理论上限,但如果不同的物理天线所形成的“路”太近了,那么也就失去了空间分集的意义,此时不同的物理天线就是一条“路”,所以天线端口数就是实际的“路”的多少。也就是天线端口数≤物理天线数。
    5、从一个天线端口出来的一系列复数信号,每个复数信号都与一个子载波相乘,然后一系列子载波相加,就可以得到一个OFDM符号。过程可以这么描述,但在实际中,子载波也是复数信号,是一个复指数信号,根据欧拉公式,也有实部和虚部,分别是一个sin函数和一个cos函数,在设备中存在的形式其实是一张表,这张表给出了每个采样时刻每个子载波的sin函数和cos函数的幅值。天线端口的复数信号和表中的值进行相乘,所有相乘的结果再相加,就是某一个采样时刻的OFDM符号的幅值。一系列采样时刻的OFDM符号的幅值构成OFDM符号,该数字符号再经过D/A转换、功放、射频等一系列操作最终发射出去。当然后面这些都是实现上的问题。至于采样间隔具体是多少,和什么有关系,也可以参考我的另一篇文章https://blog.csdn.net/m0_45416816/article/details/98349772

    这就是宏观上物理层的信号过程的一个简单描述,每个单独的部分又有很多的知识。

    展开全文
  • 海明编码流水传输实验(计算机数据表示实验)

    万次阅读 多人点赞 2020-04-12 22:18:31
    在这里选用选择器,当无发生两位错误时,此时箭头所指的输入端为0,此时选择器选择第0位的数据输入即将01输入,常量和加法器,寄存器够成的电路实现的是x=x+01的功能,即类似于计数器。因此无发生两位错时,不需要...

    首先,了解实验具体要求,实验要求我们对发生两位错的数据进行重传。

    以下是电路设计:
    在这里插入图片描述解题思路:
    1.地址回滚
    在这里插入图片描述
    在这里选用选择器,当无发生两位错误时,此时箭头所指的输入端为0,此时选择器选择第0位的数据输入即将01输入,常量和加法器,寄存器够成的电路实现的是x=x+01的功能,即类似于计数器。因此无发生两位错时,不需要进行地址回滚。
    当发生两位数据的出错时,此时输入的是fd,即-3(8位二进制)的补码表示,因为此时是加法器,因此减3,要用补码进行表示成fd,从而实现地址回滚。

    为什么是减3,这里解释一下:
    假设华字发生两位错,且其他数据的传送都如下图所示
    在这里插入图片描述
    此时,要将华字回滚到取数阶段,然而此时的取数阶段的对应序号为4,而华字的对应序号为1,因此4-3=1,故此时的加法器的输入端应该为-3(八位二进制),则其对应补码为fd。

    2.清空前段的数据
    由于当前电路中的每个阶段都保存了数据,如上图中的‘技’,‘科’,‘中’,要将其数据全部清空,则可利用16位流水接口和22位流水接口的同步清0(高电平有效)。
    在这里插入图片描述
    进行同步清0,必须在两种状态都满足的条件下进行,该两种状态是:发生两位错,传送数据有效。发生两位错再进行同步清0是不言而喻的;数据有效,表明当前传送的数据是有效的。如果数据无效的话,数据都无效了,有无发生两位错和是否重传都是没有必要的。

    3.暂停显示阶段的动作

    此时数据发生两位错误时,该数据不应该传入显示阶段中,显示阶段应该继续显示上个数据,即暂停显示阶段的动作。
    在这里插入图片描述
    标签en5所连接的便是该16位流水接口的使能端(高电平有效),当使能端为1时,忽略时钟的输入,即错误数据不会传入该阶段,仍然继续显示上个数据。
    有两种情况应该暂停显示阶段的动作:
    ①发生两位的错误时
    ②数据无效时
    这两种情况,若其中有一种情况发生,都应该暂停显示阶段的动作。

    进行测评:
    在这里插入图片描述

    展开全文
  • 0 引 言  近年来,图像监视成为监视领域所应用的主要手段,以往的有线图像监视系统往往面临着需要铺设大量的地上、地下设备线路,成本高,施工周期长等诸多...因此如何在无线网络环境高效地传输视频成为人们的研
  • 网络编码技术是一项近年来得到高度关注的新技术,它能提高网络带宽的利用率,增强网络传输的安全性,有效降低设备能耗。为此,建立一种无线网络模型,该模型包含一个发送节点和多个接收节点,并且增加了对 ACK/NAK ...
  • 网络传输过程中的字节序列问题

    千次阅读 2017-05-21 11:39:06
    在网络传输中,我们最好采用utf-8编码,这样可以完全保证传输的正确性。 大小端转换只在跨大小端平台进行传输的时候,我们才需要进行转换,如果不跨平台,则不需要转换,目前来说,Client端基本都是x86体系,如果...

    一、大端存储和小端存储

      1、大端存储:多于一个字节的数据,把高字节部分存储在低地址,把低字节部分存储在高地址。

           例:0x12345678这个数据,我们一般认为左边是高字节部分,右边是低字节部分,那么在采用大端存储的计算机内部的存储则为下面这样

                   低地址:     0x12(高字节)

                   >>>>>:     0x34

                   >>>>>:     0x56

                   高地址:     0x78(低字节)

     即一个整型数据的首地址=高位部分(首地址=低地址)

            目前使用大端存储的厂商主要有:IBMMotorolaSun Microsystems公司大多数微处理器采用大端存储法。

      2、小端存储:多于一个字节的数据,把高字节部分存储在高地址,把低字节部分存放在低地址。

          例:0x12345678这个数据,我们一般认为左边是高字节部分,右边是低字节部分,那么在采用小端存储的计算机内部的存储则为如何下这样

                   低地址:     0x78(低字节)

                   >>>>>:     0x56

                   >>>>>:     0x34

                   高地址:     0x12(高字节)

     即首地址部分=低位部分(首地址=低地址)

            目前使用小端存储的厂商主要有:intel

            其他的一些厂商如ARMMIPSMotorola的PowerPC等,可以通过芯片上电启动时确定的 字节存储顺序规则,来选择存储模式。



    二、网络字节序

     1、目前网络中的体系采用TCP/IP协议,TCP/IP协议规定对于多字节数据,采用大端存储。

        另外,TCP/IP协议规定:接收方接收到的第一个字节是高字节,存储到低地址。那么由于网络TCP/IP协议 从低地址部分开始发送字节数据,所以可以知道,网络字节序列     采用的大端存储。

     2、同一存储模式之间传送数据

        (1)、同为小端存储的双方通信

               小端存储,发送方从低地址开始传送(低地址实际上是低字节部分,按照网络字节序来说,这个取的高字节),然后接收方把接收到的数据存储在低地址部分(接            收到的直接是数据的低字节部分,并存储在低地址上,符合小端存储。但是网络字节序来说,作为高字节),通信双方并没有把本机字节序转为网络字节序,但是            依然完成了数据的正确发收。大端存储也一样。可见同一存储模式的双方并不需要进行字节序列的转换。

        (2)、小端和大端模式之间的通信

               小端存储作为发送方,若直接发送,则把数据的低地址发送出去(实际发送的是数据的低字节),大端存储接收,把这个数据存储在低地址,(接收到的是低字              节,但是由于是大端存储模式,所以平台认为是高字节),这样就导致了数据的错误收发。那么在不同存储模式之间进行通信,我们就需要进行字节序列的转换,            通常,只需要一次转换即可,一般都是将小端转换为大端,因为网络字节序采用大端模式。

        (3)、通信双方是否应该转换

               由于我们不清楚收发双方是什么存储模式,所以在发送时,都应该将本机字节序转为网络字节序,然后,作为接收方,都应该将网络字节序转为本机字节序列然后            在进行存储。


     三、如何判断机器的大端和小端?

    主要原理:我们知道大端存储和小端存储主要是针对超过一个字节的数据而言的,那么对于字节型数据在各平台的存储都是一样的,都是按照地址进行顺序排列存储的,一般都是从低地址往高地址进行排列。同时,我们说通过指针获取一个数据类型的地址,通常也都是获取的该数据的起始地址,即低地址。

    以下实验在我的x86机器上进行实验,所以应该是

    方法一、采用不同指针类型unsigned int和char指针类型指向同一整数类型

    //写法一:往一整型数据0的起始地址写入一字节的数据,如果为小端,则该字节数据应该等于该整型数据。如果为大端,则该字节的数据应该刚好为该整型数据的高位部分。如写入22,如果为小端,则该整型数据应该等于22。如果为大端,则该整型数据应该等于22000000。                                                                                                         #include "stdafx.h"
    #include <iostream>
    
    
    int main()
    {
    	unsigned int a=0;
    	unsigned int * p = &a;
    	unsigned char* p1 = (unsigned char *)p;
    	*p1 = 22;
    	switch (a)
    	{
    	case 22: std::cout << "小端" << std::endl;
    		break;
    	case 22000000:std::cout << "大端" << std::endl;
    	default:std::cout << "不能识别该平台存储模式" << std::endl;
    		break;
    	}
    	system("pause");
    
        return 0;
    }
    

     
     //写法二:读出整数类型的起始地址的一字节数据,如果为小端,则该字节应该等于该整数的低位部分。如果为大端,则该字节应该等于该整数的高位部分。                                                                                                 如22,如果为小端,则该字节应该等于22。                                                                                        ruguo果为大端,则该字节应该等于0。                                                                                                                  #include "stdafx.h"
    #include <iostream>
    
    
    int main()
    {
    	unsigned int a=22;
    	unsigned int * p = &a;//获取a的首地址
    	unsigned char* p1 = (unsigned char *)p;
    	switch (*p1)
    	{
    	case 22: std::cout << "小端" << std::endl;
    		break;
    	case 0:std::cout << "大端" << std::endl;
    	default:std::cout << "不能识别该平台存储模式" << std::endl;
    		break;
    	}
    	system("pause");
    
        return 0;
    }


    方法二、利用联合体的共享内存的方式来判定

    #include "stdafx.h"
    #include <iostream>
    
    union MyUnion
    {
    	char str;
    	unsigned int data;
    };  //str和data共享内存,其中str与data的低地址的第一个字节相同,即str=data的首地址。
    int main()
    {
    	union MyUnion a;
    	a.data = 0x12345678;
    	switch (a.str)  //获取到了data的首地址部分的值
    	{
    	case 0x78: std::cout << "小端" << std::endl;    //首地址=低位部分,则为小端
    		break;
    	case 0x12:std::cout << "大端" << std::endl;     //首地址=高位部分,则为大端
    	default:std::cout << "不能识别该平台存储模式" << std::endl;
    		break;
    	}
    	system("pause");
    
        return 0;
    }


    方法三、LINUX内核开发者的代码,原理也是利用union的共享内存机制

    1  static union { char c[4]; unsigned long mylong; } endian_test = {{ 'l', '?', '?', 'b' } };
    2     #define ENDIANNESS ((char)endian_test.mylong)  //强制转换,截断,取mylong的低位部分。如果是小端,则低位部分应该为‘l’。如果为大端,则低位为‘b’。
    3     cout<<ENDIANNESS<<endl;                                                                                      未验证过,思想也和方法二一样                                                                                                           
    
    内存分布(小端):  高地址  >>>>>>>  b    高位部分
                                                 >>>>>>>  ?
                                                 >>>>>>>  ?
                                     低地址  >>>>>>>  l    低位部分
    内存分布(大端):  高地址  >>>>>>>  b    低位部分
                                                 >>>>>>>  ?
                                                 >>>>>>>  ?
                                     低地址  >>>>>>>  l    高位部分

    最后总结一下需要进行大小端转换的一些数据类型:

    我们知道大小端存储问题只会出现在超过一个字节的数据类型之中,那么针对常用数据类型

    以下数据类型需要进行转换:

    整数类型、浮点型

    注意:字符和字符串类型不需要进行转换,因为他们是单字节编码的数据类型,在计算机中都是一个字节为单位进行存放的。

    另外unicode的字符如果使用utf-8编码则不需要转换,因为UTF-8编码也是单字节编码。如果是utf-16编码则根据big和Little的来确定是否需要转换,如果是Big则不需要转换,如果是little则需要转换。在网络传输中,我们最好采用utf-8编码,这样可以完全保证传输的正确性。

    大小端转换只在跨大小端平台进行传输的时候,我们才需要进行转换,如果不跨平台,则不需要转换,目前来说,Client端基本都是x86体系,如果服务器也是x86体系的,不用转换也不会出现问题。

    展开全文
  • 射频识别系统的结构与通信系统的基本模型相类似,满足了通信功能的基本要求。读写器和电子标签之间的数据传输构成了与基本通信模型相类似的结构。
  • 为什么传输前要进行编码与调制

    千次阅读 2021-02-23 15:34:14
    很多童鞋学编程、学通讯都不清楚硬件底层时如何传输数据的,刚好最近整理了些概念和原理,方便大家参阅。如有不妥,欢迎指正! 模拟信号与数字信号 “模拟信号”(analog signal)是“模拟数据”的电平信号表示...
  • 针对H.264的可伸缩视频编码扩展标准(SVC)在噪声信道传输,采用低密度奇偶校验码(LDPC)提出一种非均衡差错保护的方案。在所提的方案,根据时间、分辨率和质量把原视频序列按重要性分成不同的层。由于不同层...
  • 10信道编码原理.doc

    2021-12-04 21:21:26
    10信道编码原理.doc
  • 本文介绍电脑A上的a程序怎么通过网络将自己的数据通过网络传输给电脑B上的b程序。 1、网络模型 一份数据要通过网络传输,那么这个数据必须满足网络传输的数据格式,网络模型定义了各个计算机之间数据传输的规则,...
  • 使用SecureFx传输文件,存在中文乱码,本质上就是字符编码的问题。
  • TCP/IP协议模型从下到上可以分为网络接口层,网际层(又称网络层),运输层(又称传输层),应用层,大家平时接触到的都是应用层为主。 注意:有的地方会有五层模型,就是将网络接口层拆分为了物理层和数据链路层两...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 227,933
精华内容 91,173
关键字:

编码传输过程中出错