‘壹’ 通信原理实验中,AMI编码和译码的数据时延是多少真是太难了!高手指点一下!
这类数据方面的时延应该考虑一个时钟周期,器件对数据处理位数的多少,一些器件一个时钟周期只能处理几位,一些器件可以并行处理更多的位数。个人浅见,供参考。
‘贰’ 关于AMI、HDB3编译码实验 有个这样的思考题,示波器看到的HDB3变换规则与书本上和老师讲的有什么不同
示波器上看到的HDB3编码器的输出P22点的波形比书本上的理论上的输出波形要延时5个码位。原因是实验电路中采用了由4个移位寄存器和与非门组成的四连零测试模块去检测二进制码流中是否有四连零,因此输出的HDB3码有5个码位的延时。
‘叁’ MATLAB: 数字通信系统信道编码 AMI 编译码
程序如下,现在原始序列长度20的随机0,1串,要变自己改。
clc;
clear;
source = randint(1,20);
%%%%%%%%%%%% Encode %%%%%%%%%%%%%
perbit = -1;
for i=1:length(source);
if source(i)==1
encoded(i) = (-1)*perbit;
perbit = encoded(i);
else
encoded(i) = source(i);
end
end
%%%%%%%%%%%% Decode %%%%%%%%%%%%
for i=1:length(source);
if encoded(i)~=0
decoded(i) = 1;
else
encoded(i) = 0;
end
end
source
encoded
decoded
‘肆’ AMI编、译码器的VHDL建模及程序设计
AMI编码VHDL程序
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityamiis
port(clk:inbit;
input:inbit;
output1:outbit;
output2:outbit);
endami;
architectureaofamiis
begin
process(clk)
variablec:bit:='0';
begin
ifclk'eventandclk='1‘then
ifinput='1‘then
ifc='0‘then
output1<='1';
output2<='0';
c:=notc;
else
output1<='0';
output2<='1';
c:=notc;
endif;
else
output1<='0';
output2<='0';
endif;
endif;
endprocess;
enda;
AMI译码程序
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityamiymis
port(clk:inbit;
input1,input2:inbit;
output:outbit);
endamiym;
architectureaofamiymis
begin
process(clk)
begin
ifclk'eventandclk='0'then
output<=input1orinput2;
endif;
endprocess;
enda;
ps:因为只能传一张图片,我就传了编码的仿真图,译码的简单一点,你自己试试。