1、AMI码是通信编码中的一种,为极性交替翻转码,分别用一个高电平和低电平表示两个极性。(1)编码规则。消息代码中的0用传输码中的0表示。消息代码中的1用传输码中的+1、-1交替表示。例如:消息代码:1 0 1 0 1 0 0 0 1 0 1 1 1AM I码 :+1 0 -1 0 +1 0 0 0 -1 0 +1- 1 + 1(2)AMI码的特点。AMI码确定的基带信号中正负脉冲交替出现,而 0电位保持不变;所以由AM I码确定的基带信号无直流分量(等概情况下 ) ,且只有很小的低频分量。不易提取定时信号,由于它可能出现长的连0串。(3)AMI编码用c语言实现。int ami (char* r,
2、in t f) void opposite(char* s)char a=n,c;if(*s)=p) (*s)=n;in t i=0; e lse if( (*s)=n) (*s)=p;wh ile(f) if ( i= l ) re tu rn 0 ; 说明:其中p代表+ 1 , n代表- 1 , r为接收c=r ; 码 , f为接收码的个数。函数oppo -site起取if (c=0) r=0; 反作用。e lse if(c=1) oppos i te(&a) ; r=a ;e lse re turn 1 ;i + + ;(4)解码规则。从收到的符号序列中将所有的-1变换成 +1后 ,就可
3、以得到原消息代码。2、AM I 编译码器设计方案2 . 1 AM I 编码器设计AM I 编码规则: 将消息码中的 0, 变换为传输码 0; 将消息码中的 1 , 交替变换为传输码的+ 1、- 1、+ 1、- 1。根据AM I 编码规则和 AM I 码的特点, 以及该系统是在 CP LD/ F P-GA 下设计, 进行建模时, CPLD/ F PGA 构成的模块的输入信号与输出信号均为单极性信号, 而 AM I 码信号为双极性信号, 因此, 需要解决将单极性信号转换成为双极性信号的问题。要实现 AM I 编码功能, 需要对软、硬件都进行设计, 将功能模块分为两部分: 一部分运用 VHDL 语言
4、编写源程序来实现;另一部分由单极性/ 双极性转换电路来实现。上图中, 第一个方框的功能: 将消息码进行交替识别和极性控制。依据编码规则, 将消息码中的 0 , 变换为传输码 0 ; 而消息由于+ 1和- 1 为双极性码, 不能直接运用 FPGA / CP LD 来实现, 要通过外围的单极性/ 双极性转换电路来实现。首先, 须建立识别符号, 用单极性码代替双极性码+ 1、- 1和 0 (例如: “10”表示“- 1”, “01”表示“+ 1”, 用“00”表示“0”)。按此方案建模, 得到单极性/双极性控制的功能表 , 如下表所示。解决了单极性信号转换为双极性信号的问题。其次, 另一个需要解决的
5、问题: 如何将消息码中的“1”交替地变换成为控制码“10”和“01”, 将消息码中的“0”变为控制码“00”。具体建模方案: 建立一个功能模块电路(码型控制器) , 当输入为 0 时, 数据选择器输出为“00”; 当输入为 1 时, 设置一个偶数计数器记录 1的个数, 当计数器计数为偶数, 使数据选择器输出为“10”, 若计数器计数为奇数, 则使数据选择器输出为“01”。通过这种建模方案, 来实现交替识别和极性控制的功能。2 . 2 AM I 译码器设计AM I 码的译码是编码的逆过程。从收到的符号序列中, 将所有的- 1 变换成+ 1 后, 就可以得到原来的消息码。 建立一个功能模块电路,
6、当遇到编码为“01”或者“10”时, 该模块电路输出为“1”; 当遇到编码为“00”时, 该模块电路输出为“0”。3、AM I 编译码器的源程序与仿真波形3. 1 AM I 编码器的源程序以下是编码器主要部分的源程序arch itectu r e behav e of AM I CODER issignal f lag : st d log ic;beg inpr ocess ( clk )if clk ev ent and clk = 1 thenif BDin = 1if f lag = CD ou t = 10;f lag = 0 else 01 =1end if ; 00end ife
7、nd p ro cess ;end behave3. 2 AM I 编码器的仿真波形基带传输系统中的一路消息码, 经过编码规则交替变换后,得到的仿真波形。从图中可以看到, 除有 200ns 的延时外, 所设计的编码器能完成编码功能, 得到所需的控制码。然后, 将控制码, 经过单极性/ 双极性变换电路, 得到最终的 AM I 码。3 . 3 AM I 译码器的源程序以下是译码器主要部分的源程序p ro cess ( clk )beginev en t and clk = if CDin = 10 o r CDat ain = BD ou t BDo u t 0 ;end p ro cess3. 4 AM I 译码器的仿真波形下图是译码器的仿真结果。从图中可以看到, 除有 200ns 的延时外, 恢复原有的消息码, 实现译码器的功能。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1