《浙大通信原理大作业》由会员分享,可在线阅读,更多相关《浙大通信原理大作业(21页珍藏版)》请在金锄头文库上搜索。
1、实验报告课程名称:通信原理 指导老师:邓焰 陈宏 成绩:_实验名称:伪随机序列 编码及解码 实验类型:基础规范型 同组学生姓名: 一、实验目的和要求(必填)二、实验内容和原理(必填)三、主要仪器设备(必填)四、操作方法和实验步骤五、实验数据记录和处理六、实验结果与分析(必填)七、讨论、心得装 订 线0 实验要求:1、环境与工具适应;2、伪随机编码,含5级m序列、M序列;3、归零码、差分码的编码与解码;4、双相码、CMI的编码与解码;5、AMI、PST、HDB3的编码与解码。1 5级m序列:实验原理:查找本原多项式表,得到5级m序列的本原多项式为x5+x2+1,即有C0=C2=C5=1,C1=C
2、3=C4=0对照课本P380图12-4,以逻辑运算“异或”表示加法器的“加”运算,则可以得到以下的电路图:其中,上图中右下角BNAND6器件的使用是为了避免序列“00000”的出现。当只有为全零时,BNAND6输出才为1,此时5个D触发器的置位端有效,将“00000”置为“11111”仿真结果:上图两条粗线间恰为一个周期,共有31us,而一个状态占1us,即为31个状态,这与5级m序列的总状态数N=25-1=31相等。此外,经检验有 从而得以验证结果的正确性。实验波形:2 5级M序列:实验原理:查找本原多项式表,得到5级m序列的本原多项式为x5+x2+1,即有C0=C2=C5=1,C1=C3=
3、C4=0对照课本P380图12-4,以逻辑运算“异或”表示加法器的“加”运算,并在此基础上增加一条支路(a4、a3、a2、a1的或非)引到加法器,则可以得到以下的电路图:下图中左下角BAND6即为在5级m序列基础中新增的支路,其中多余的2个端口直接接地。仿真结果:上图两条粗线间恰为一个周期,共有31us,而一个状态占1us,即为31个状态,这与5级M序列的总状态数N=25-1=31相等。此外,经检验符合课本P391递推方程(12.2-47),从而得以验证结果的正确性。此外,上图虚线框中为全零序列“00000”。实验波形:3 单极性归零码:实验原理:为方便起见,取占空比为50%。当原码为1,则编
4、码为10;当原码为0,则编码恒为0。比对上述伪随机序列仿真结果的时钟脉冲序列和5级m(或M)序列,发现单极性归零码可以通过两者进行逻辑“与”得到,示意图如下所示。基于此可以得到归零码的编码电路。 至于解码电路的得到,比对上图左下角的原码(也即解码)和右下角的编码并结合时钟脉冲,不难发现,若将时钟脉冲作为上升沿触发而将编码作为输入则可以得到原码波形。在此需要注意的是,虽然数电课程中讲的是上升沿触发要看触发前的状态,但由于实际器件存在延时,故在Quartus2仿真及实验过程中均是由触发后的状态决定,这一点已在实践中得到证明。由此借助上升沿触发的D触发器进行归零码的解码。其中,之所以在解码时又使用与
5、门将时钟脉冲和5级m序列进行“与”运算而非直接从编码输出引出的原因,是从编码输出引出的相位和编码直接输出的相位差了180度,尽管两者都是同一点上的波形。仿真结果:实验波形:原码编码编码解码4 差分码:实验原理:CP原码编码差分码是以跳变来表示高电平,以不变表示低电平,即01和10表示高电平;00和11表示低电平。编码过程如上所示,由编码规则不难发现,编码中要发生跳变就必须当原码为1时。因而,可以借助T触发器来实现。其中,CP脉冲作为上升沿触发,原码作为T端口输入。当然,也可以借助于D触发器,以下采用的是同组同学的电路图,思想是通过D触发器保存前一个状态,并将与当前状态进行异或运算。显然,若前后
6、两个状态不同,异或后得到“1”,否则为“0”,这与差分的编码思想一致,只是此方法会至少滞后1个周期。基于此便可得到差分码的编码电路图。至于解码过程,若仍采用上述编码的后一种思想,则解码与编码同效。这是因为解码的差分码便是原码,可以说是两者处于相同的地位。当然,这也可以从“异或”逻辑运算的特点得到。因此,仍将编码的前后状态进行“异或”运算便得到解码,只不过又至少滞后编码一个周期以上。正是因为该方法的编码和解码必然会有较大的延时滞后,故电路图上右上角存在两个为减少滞后时间而采用的D触发器,当然这其中的性价比不高。仿真结果:实验波形:编码原码原码解码5 双相码:实验原理:双相码的编码规则是当原码为1
7、时,则编码为10;当原码为0时,则编码为01。具体的波形表示为CP原码编码由上面波形图,不难发现,编码为CP脉冲与原码的“同或”,且解码为CP脉冲与编码的“同或”运算。基于此可得到电路图如下所示。仿真结果:实验波形:原码编码原码解码6 CMI:实验原理:CMI的编码规则为当原码为1,编码为11与00相互交替;当原码为0,编码为01。由此可见,CMI码为1B2B码。由于当原码为1时存在交替现象,因此考虑采用VHDL语言进行编码。其中,设定一个变量用于记录“1”出现的状态,以此判别输出为11还是00。其中,编码为位于右下角偏上模块而解码为其下方的模块,具体VHDL语言在下文给出。仿真结果:实验波形
8、:原码编码解码原码编 码 解 码LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY CMI_code ISPORT( Clk : in std_logic; CP : in std_logic;DataInput : in std_logic; DataOutput : out std_logic);END CMI_code;ARCHITECTURE CMIcode OF CMI_code IS signal ControlSig : std_logic;-CMI码元控制信号 signa
9、l count: std_logic;-0011 signal DataBuffer : std_logic_vector(1 downto 0);-CMI码元寄存 begin process(CP)-CMI编码进程 begin if CPevent and CP = 1 then CASE DataInput IS WHEN 0= DataBuffer -基带信号为1 则交替编为11 和 00; if count = 0 then DataBuffer = 11; count=1; else DataBuffer = 00; count=0; end if; END CASE; end if
10、; end process; process(Clk)-CMI码元输出进程 begin if Clkevent and Clk = 1 then if ControlSig = 1 then DataOutput= DataBuffer(0); ControlSig= 0; else DataOutput= DataBuffer(1); ControlSig = 1; end if; end if; end process; end CMIcode;LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;
11、ENTITY CMI_decode ISPORT( Clk : in std_logic; CP : in std_logic; DataInput : in std_logic; DataOutput : out std_logic );END CMI_decode;ARCHITECTURE CMIdecode OF CMI_decode IS signal ControlSig : std_logic;-CMI码元控制信号 signal count: std_logic;-0011 signal DataBuffer : std_logic_vector(1 downto 0);-CMI码
12、元寄存 begin process(Clk)-CMI码元输出进程 begin if Clkevent and Clk = 1 then if ControlSig = 1 then DataBuffer(1)= DataInput; ControlSig= 0; DataOutput=DataBuffer(1) xnor DataBuffer(0); else DataBuffer(0)= DataInput; ControlSig = 1; end if; end if; end process; end CMIdecode;7 AMI:实验原理:AMI的编码规则为当原码为1时,编码为+1与-1相互交替;当原码为0时,编码为0保持不变。由于AMI为三电平码,故可以通过两路二电平码来表示,如下所示:CP原码编码(+)(-) 其中,当(+)为高电平、(-)零电平时,表示+1;当(+)为零电平、(-)高电平时,表示-1;而(+)与(-)均为零电平时,表示0。 因此,可以将三电平码AMI的编解码化为两路二电平码的编解码。为避免两路二电平码的不同步造成编码、解