← 2022 · 海光 笔试

推荐答案 测试一下

己知一套串行编码规则如下,编码后的信号与前一个时钟编码前的电平相同表示为1,与前一个时钟编码前的电平不同表示为0.且不允许出现编码后连续6个时钟为相同电平(如果出现需要插入1个bit,该bit是将编码后信号进行一次取反)。假定编码后信号初…

A、110010000011110110 B、110010000001111010 C、001000001111010100
单选题 中等 笔试真题单选

参考答案

我们分析这道题。题目描述一种串行编码规则:编码后的信号与前一个时钟编码前的电平相同表示为1,不同表示为0。初始编码后信号为低电平。给定二进制序列01010011111110010,需要编码。并且有约束:不允许出现编码后连续6个时钟为相同电平,如果出现则需要插入1个bit,该bit是将编码后信号进行一次取反。注意:插入的bit是插入到编码后序列中,并且插入后会影响后续的编码?需要仔细理解。 规则:编码过程是每输入一个原始bit,根据当前编码前的电平(即上一个时钟编码前的电平?注意描述:“编码后的信号与前一个时钟编码前的电平相同表示为1,与前一个时钟编码前的电平不同表示为0.” 注意“前一个时钟编码前的电平”是指上一个时钟周期中,编码前的原始电平?还是编码后的?有点绕。通常这类编码类似于差分曼彻斯特编码?但这里需要明确。 重新读题:“己知一套串行编码规则如下,编码后的信号与前一个时钟编码前的电平相同表示为1,与前一个时钟编码前的电平不同表示为0.且不允许出现编码后连续6个时钟为相同电平(如果出现需要插入1个bit,该bit是将编码后信号进行一次取反)。假定编码后信号初始为低电平,则二进制序列01010011111110010编码后的二进制编码是” 注意:编码规则描述:编码后的信号(即输出的bit)与前一个时钟编码前的电平相同表示为1,不同表示为0。也就是说,输出的编码比特是对应于当前输入比特与上一个编码前的电平的比较结果?或者更常见的是:输入数据序列,每个时钟周期输出一个编码比特,这个编码比特表示当前输入与前一个输入是否相同?但这里说“与前一个时钟编码前的电平”,可能指的是编码前的原始数据电平?因为“编码前的电平”就是原始数据电平?有点混乱。 另一种理解:这是一种类似于“不归零反转”(NRZI)的编码,其中“1”表示电平不变,“0”表示电平翻转。但题目说“编码后的信号与前一个时钟编码前的电平相同表示为1,与前一个时钟编码前的电平不同表示为0”。这里“编码前的电平”可能是指输入数据的电平?但输入数据是二进制序列,每个bit代表一个电平。所以编码过程:对于每个输入数据bit(即“编码前的电平”),我们比较它与前一个时钟的编码前的电平(即上一个输入数据bit),如果相同则输出1,不同则输出0。然后输出就是编码后的信号。初始条件:编码后信号初始为低电平?注意这里说“假定编码后信号初始为低电平”,但初始的编码后信号是输出,而比较的对象是“前一个时钟编码前的电平”,那么第一个时钟的“前一个时钟编码前的电平”是什么?可能初始时我们有一个参考电平,即初始低电平。所以第一个输入bit需要与初始低电平比较,相同则输出1,不同则输出0。然后这个输出就是第一个编码后的bit。然后第二个输入bit与第一个输入bit(即前一个编码前的电平)比较,等等。 所以实际上就是:给定输入序列(原始数据),输出序列是根据差分规则产生的:输出bit = 1 if 当前输入bit == 上一个输入bit (或初始电平) else 0。注意:初始电平是低电平(0)。这样从输入序列得到输出序列。然后还要考虑约束:输出序列中不允许出现连续6个相同电平(即连续6个相同的bit?注意“编码后连续6个时钟为相同电平”指的是连续6个输出bit相同(全1或全0))。如果出现,需要插入1个bit,该bit是将编码后信号进行一次取反。也就是说,当输出序列中检测到连续5个相同bit后,即将到来的第6个bit如果还是相同,那么我们需要在输出序列中插入一个反相的bit(即取反)来打断连续6个相同。注意插入的bit是插入到输出序列中,那么后续的编码是否受影响?因为插入的bit是“编码后信号”,它也会影响后续的比较吗?题目说“不允许出现编码后连续6个时钟为相同电平(如果出现需要插入1个bit,该bit是将编码后信号进行一次取反)”。注意,这个插入是在编码过程中实时进行的?还是先编码再插入?通常是在编码过程中实时检测,当输出序列即将出现连续6个相同电平时,在输出第6个之前插入一个反相bit,然后继续后续编码。并且插入的bit也会作为输出的一部分,并且会影响后续的编码比较吗?因为编码规则是基于前一个时钟编码前的电平,而插入的bit是编码后的信号,不是编码前的电平。所以插入的bit不影响后续的编码比较?因为比较的是“编码前的电平”,即原始数据。插入的bit只是编码后信号,它不影响原始数据序列。所以插入操作只是在输出流中插入额外的比特,并不改变原始输入序列。所以后续的编码仍然按照原始输入序列进行,但需要注意,插入的bit占用了时钟周期吗?题目说“不允许出现编码后连续6个时钟为相同电平”,这里“时钟”指的是输出时钟,所以插入的bit会占用一个时钟周期,从而使得后续的原始数据对应的输出bit延后?还是说插入的bit是在编码过程中即时插入,不影响后续原始数据的编码时钟?通常这种编码是串行传输,每个时钟输出一个bit,如果插入了一个bit,那么原定的下一个原始bit的编码输出就要延迟一个时钟?但题目没有明确说明。我们再看选项长度:给定输入序列长度是17位(01010011111110010,共17个bit)。输出选项A和B都是18位,C是18位?A:110010000011110110(18位),B:110010000001111010(18位),C:001000001111010100(18位)。所以输出长度是18,比输入多1位,说明插入了一个bit。所以插入操作应该是:在编码过程中,当输出序列中出现连续5个相同bit时,第6个bit如果相同,则在输出第5个之后插入一个反相bit,然后继续输出原始编码的第6个?还是插入后跳过?需要明确。 常见类似问题如“8B/10B编码”中的“运行长度限制”,通常是在编码过程中检测连续相同bit的数量,当达到5个时,下一个bit如果相同则插入一个反相bit(即字节填充)。但这里插入的bit是取反,那么插入后,连续相同的计数会被打断。然后后续的编码按照原

涉及知识点

  • 时钟
← 上一题
登录后反馈错题
下一题 →