实验三、线性分组码的编译码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息论与编码实验报告
1、认真阅读课本中关于线性分组码的基本原理及特点等内容,并简要写出其基本原理及特点;
解:基本原理:对信源编码器输出的D 进制序列进行分组,设分组长度为k ,相应的码字表示为),,,(12m m m k M ∙∙∙=→,其中每个码元()k i m i
≤≤1都是D 进制的显然这样的码字共有k
D 个。
特点:一个()k n ,线性分组码中非零码字的最小重量等于该码的最小距离min d 。
2、写出(7,4)线性分组码编解码基本步骤,画出程序流程图;
编码流程图 译码流程图 (7,4)汉明码的编码就是将输入的4 位信息码M=[ 3456a a a a ]加上3 位监督码012b b b 从而编成7位汉明码[6a 012345,,,,,a a a a a a ],编码输出B=[6a 5a 4a 3a 2a 1a 0a ].由式A = M ·G=[3456a a a a ]·G 可知,信息码M 与生成矩阵G 的乘积就 是编好以后的(7,4)汉明码
3、实现(7,4)线性分组码编解码的Matlab源程序;构造BSC传输信道中采用(7,4)线性分组码的Simulink仿真程序。
(7,4)汉明码的编码程序:
library ieee;
use ieee.std_logic_1164.all;
entity bm is
port(a:in std_logic_vector(3 downto 0);
but std_logic_vector(6 downto 0));
end ;
architecture one of bm is
begin
b(6)<=a(3);
b(5)<=a(2);
b(4)<=a(1);
b(3)<=a(0);
b(2)<=a(3) xor a(2) xor a(1);
b(1)<=a(3) xor a(2) xor a(0);
b(0)<=a(3) xor a(1) xor a(0);
end;
(7,4)汉明码的译码程序:
library ieee;
use ieee.std_logic_1164.all;
entity ym is
port(a:in std_logic_vector(6 downto 0);
sut std_logic_vector(2 downto 0);
but std_logic_vector(3 downto 0);
cut std_logic_vector(2 downto 0));
end ;
architecture one of ym is
begin
process(a)
variable ss:std_logic_vector(2 downto 0);
variable bb:std_logic_vector(6 downto 0);
begin
ss(2):=a(6) xor a(5) xor a(4) xor a(2);
ss(1):=a(6) xor a(5) xor a(3) xor a(1);
ss(0):=a(6) xor a(4) xor a(3) xor a(0);
bb:=a;
if ss> "000" then
case ss is
when "001" =>bb(0):= not bb(0);c<="000";
when "010" =>bb(1):= not bb(1);c<="001";
when "100" =>bb(2):=not bb(2);c<="010";
when "011" =>bb(3):=not bb(3);c<="011";
when "101" =>bb(4):=not bb(4);c<="100";
when "110" =>bb(5):=not bb(5);c<="101";
when "111" =>bb(6):=not bb(6);c<="110";
when others => null;c<="111";
end case;
else b<= a(6)&a(5)&a(4)&a(3);
end if;
s<=ss;
b<=bb(6)&bb(5)&bb(4)&bb(3);
end process;
end;
4、讨论(7,4)线性分组码的最小码距与码重及纠错能力的关系,讨论采用纠错编码
和不采用纠错编码对传输系统的影响。
最小码距也称最小汉明码(最小码距是指在一个码组集合中,任意两个码组之间最小值);
最小码重指在一个码组集合中,任意码组非零元素的个数;
最小码距d 和纠错能力之间的关系:
(1)若要发现e个独立差错,则要求最小码距d min≥e+1
(2)若要纠正t个独立差错,则要求最小码距d min≥2t+1
(3) 若要发现e个同时又纠正t个独立差错,则要求最小码距d min≥e+t+1,(e>t)其中e指检测的错误,t指纠正的错误。
采用纠错编码能增加传输信息时的正确率,能够及时的纠正一些错误的编码,提高编码
的效率。