版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上实验报告课程名称:通信原理 指导老师:邓焰 陈宏 成绩:_实验名称:伪随机序列 编码及解码 实验类型:基础规范型 同组学生姓名: 一、实验目的和要求(必填)二、实验内容和原理(必填)三、主要仪器设备(必填)四、操作方法和实验步骤五、实验数据记录和处理六、实验结果与分析(必填)七、讨论、心得装 订 线0 实验要求:1、环境与工具适应;2、伪随机编码,含5级m序列、M序列;3、归零码、差分码的编码与解码;4、双相码、CMI的编码与解码;5、AMI、PST、HDB3的编码与解码。1 5级m序列:实验原理:查找本原多项式表,得到5级m序列的本原多项式为x5+x2+1,即有C0
2、=C2=C5=1,C1=C3=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=C
3、2=C5=1,C1=C3=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 单极性归零码:实验原理:为方便起见,取占空比
4、为50%。当原码为1,则编码为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 双相码:实验原理:双
7、相码的编码规则是当原码为1时,则编码为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;-CM
9、I码元控制信号 signal count: std_logic;-'00''11' signal DataBuffer : std_logic_vector(1 downto 0);-CMI码元寄存 begin process(CP)-CMI编码进程 begin if CP'event and CP = '1' then CASE DataInput IS WHEN '0'=> DataBuffer <= "01" WHEN '1' => -基带信号为'1
10、9; 则交替编为"11" 和 "00" if count = '0' then DataBuffer <= "11" count<='1' else DataBuffer <= "00" count<='0' end if; END CASE; end if; end process; process(Clk)-CMI码元输出进程 begin if Clk'event and Clk = '1' then if Cont
11、rolSig = '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;ENTITY CMI_decode ISPORT( Clk : in s
12、td_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;-'00''11' signal DataBuffer : std_logic_vector(1 downto 0);-CMI码元寄存 begin proces
13、s(Clk)-CMI码元输出进程 begin if Clk'event 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;
14、end CMIdecode;7 AMI:实验原理:AMI的编码规则为当原码为1时,编码为+1与-1相互交替;当原码为0时,编码为0保持不变。由于AMI为三电平码,故可以通过两路二电平码来表示,如下所示:CP原码编码(+)(-) 其中,当(+)为高电平、(-)零电平时,表示+1;当(+)为零电平、(-)高电平时,表示-1;而(+)与(-)均为零电平时,表示0。 因此,可以将三电平码AMI的编解码化为两路二电平码的编解码。为避免两路二电平码的不同步造成编码、解码出错,故采用VHDL语言对AMI进行编码,而解码部分则直接由两路二电平码进行“异或”运算得到。仿真结果:实验波形:原码编码原码解码编 码
15、LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY AMI_code ISPORT( Clk : in std_logic; DataInput : in std_logic; DataOutput1 : out std_logic; DataOutput0 : out std_logic );END AMI_code;ARCHITECTURE AMIcode OF AMI_code IS signal count: std_logic;-'01''10'
16、 signal DataBuffer : std_logic_vector(1 downto 0);begin process(Clk) begin if Clk'event and Clk = '1' then CASE DataInput IS WHEN '0'=> DataBuffer <= "00" WHEN '1' => if count = '0' then DataBuffer <= "01" count<='1' else
17、 DataBuffer <= "10" count<='0' end if; END CASE; DataOutput1 <=DataBuffer(1); DataOutput0 <=DataBuffer(0); end if; end process; end AMIcode;8 PST:实验原理:PST为2B1T码,其编码规则如下所示,实验要求正负模式无条件轮流切换。其中,编码时需要设置一个变量用于记录此次编码所采用的模式。在该状态变量已决定所采用的编码模式后,对两位二进制原码进行相应的编码,这就是编码乃至解码部分所基于的思想。仿
18、真结果:编 码 解 码LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY PST_code ISPORT( Clk : in std_logic; DataInput : in std_logic; DataOutput1 : out std_logic; DataOutput0 : out std_logic);END PST_code;ARCHITECTURE PSTcode OF PST_code IS signal count: std_logic;-'01'
19、39;10' signal DataBuffer : std_logic_vector(1 downto 0); signal Dbuffer : std_logic_vector(1 downto 0); signal c1:std_logic; signal c2:std_logic;begin process(Clk) begin if Clk'event and Clk = '1' then if count = '0' then Dbuffer<=DataBuffer; DataBuffer(1) <= DataInput;
20、 count<='1' else DataBuffer(0) <= DataInput; count<='0' end if; if count = '0' then CASE Dbuffer IS WHEN "00" => DataOutput1 <='0' DataOutput0 <='1' WHEN "01" => DataOutput1 <='0'DataOutput0 <='0'
21、WHEN "10" => if c1='0' then DataOutput1 <='1'DataOutput0 <='0'c1<='1' else DataOutput1 <='0'DataOutput0 <='1'c1<='0' end if; WHEN "11" => DataOutput1 <='1'DataOutput0 <='0' END C
22、ASE; else CASE Dbuffer IS WHEN "00" =>DataOutput1 <='1'DataOutput0 <='0' WHEN "01" => if c2='0' then DataOutput1 <='1'DataOutput0 <='0'c2<='1' else DataOutput1 <='0'DataOutput0 <='1'c2<=
23、'0' end if ; WHEN "10" =>DataOutput1 <='0'DataOutput0 <='0' WHEN "11" => DataOutput1<='0'DataOutput0 <='1' END CASE; end if; end if; end process; end PSTcode;LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsi
24、gned.ALL;ENTITY PST_decode ISPORT( Clk : in std_logic;DataInput1 : in std_logic; DataInput0 : in std_logic;DataOutput : out std_logic);END PST_decode;ARCHITECTURE PSTdecode OF PST_decode ISsignal count: std_logic; signal DBuffer0: std_logic_vector(1 downto 0);signal DataBuffer1 : std_logic_vector(1
25、downto 0);signal DataBuffer0 : std_logic_vector(1 downto 0);signal DBuffer1: std_logic_vector(1 downto 0);signal DBuffer11: std_logic_vector(1 downto 0);begin process(Clk) begin if Clk'event and Clk = '1' then if count = '0' then DBuffer11<=DBuffer1; DBuffer1<=DataBuffer1;
26、count<='1' DataBuffer1(1) <=DataInput1; DataBuffer1(0) <= DataInput0; else DBuffer0<=DataBuffer0;DataBuffer0(1) <= DataInput1; DataBuffer0(0) <= DataInput0; count<='0' end if; if count = '0' then if DBuffer1="01" and DBuffer0="10" then
27、 DataOutput<='0' end if; if (DBuffer1="00" and DBuffer0="10") or (DBuffer1="00" and DBuffer0="01") then DataOutput<='0' end if; if (DBuffer1="10" and DBuffer0="00") or (DBuffer1="01" and DBuffer0="00") then DataOutput<='1'
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 绿化栽植方案
- 给水工程中的水塔水箱防水施工技术
- 摔倒吧爸爸观后感100字
- 井下密闭技术方案
- 2024-2025学年黑龙江省哈尔滨市兆麟中学高三(上)期中数学试卷(含答案)
- 2011年6月15日下午陕西省司法系统面试真题
- 江西申论模拟92
- 河北省申论模拟118
- 临沂国际雕塑公园作文
- 大班幼儿自发性绘画表征的特征分析与教师支持
- 《古典文献的检索》课件
- 玻璃制造中的智能制造技术应用与发展
- 数据安全与隐私保护
- Unit 5 There is a big bed 单元教学分析(素材)人教PEP版英语五年级上册
- 电力建设“五新”技术
- 矿山机电一体化与自动化技术
- 《有效沟通技能讲座》课件
- 中班《打电话》课件
- 医院医学装备委员会第会议通知、纪要议程、总结
- 《初中政治课堂中的跨学科知识融合与综合应用》
- 中医妇科-崩漏
评论
0/150
提交评论