通信工程基于matlab的(7 - 4)循环码和(7 - 4)汉明码的编程设计
实验设计
实验一:(7,4)循环码的编码与译码
1.实验编码原理: 根据循环码的代数性质建立系统编码的过程,可以把消息矢量用如下多项式表示:
m(x)?mk?1xk?1?mk?2xk?2?...?m1x?m0要编码成系统循环码形式,把消息比特移入码字寄存器的最右边k位,而把监督
n?kn?kxx比特加在最左边的n-k个中,则要用乘以m(x)得到 m(x)=
mk?1xn?1?mk?2xn?2?...?m1xn?k?1?m0xn?kn?k,则p(x)+ x m(x)
xn?k m(x)= q(x) g(x)+ p(x),其中p(x)可以表示为
n?k?1?...?p1x?p0p(x)= pn?k?1xn?1n?2n?k?1?m0xn?k+ pn?k?1xn?k?1?...?p1x?p0= mk?1x?mk?2x?...?m1xn?kpmp另U(x)= p(x)+ x m(x),则U=(0,p1,p2,···,n?k?1,0 ,m1,···,
mk?1)。
本实验根据以上原理,用matlab实现书上例6.8系统形式的循环码,生成多项式为g(x)=
2.实验译码原理:译码的实验原理 g(x)= ,在(n,k)循环码中,
nx?1可分解成g(x)和其他因式的乘积,记为 由于g(x)能除尽,因此
1?x?x31?x?x3 即可写成
xn?1?g(x)h(x)
nxh(x)??1
*43hh(x)x?x则 = ? x ? 1,其中
g(x)即h (x) =
x4?x2?x?1*(x)式h(x)的逆多项式。
监督矩阵多项式可表示为
?x2h*(x)??*?H(x)??xh(x)??h*(x)??? ,
3.(7,4)循环码的编码(4位)的程序:
clear; clc;
a=input('请输入消息矢量:'); %高次项系数在前的生成多项式 Gx=[1 0 1 1];
%将数组a的高位依次放在数组Data的低位 Data=zeros(1,7); Data(1)=a(4); Data(2)=a(3); Data(3)=a(2); Data(4)=a(1);
úta除以Gx得到余数Rx [Qx,Rx]=deconv(Data,Gx); b=Rx+Data;
%将数组b的高位放在后面 c=b(1); b(1)=b(7); b(7)=c; c=b(2); b(2)=b(6); b(6)=c; c=b(3); b(3)=b(5); b(5)=c;
%将数组b校正 for i=1:7
if rem(abs(b(i)),2)==0 b(i)=0;end end for i=1:7
if rem(abs(b(i)),2)==1 b(i)=1;end end
disp('输入序列:'); a
disp('编码输出序列:'); b
程序运行结果为:
改变输入序列
运行结果的编码如下: 序号 1 2 3 4 5 输入序列 0000 0001 0010 0011 0100 输出序列 000 0000 101 0001 111 0010 010 0011 011 0100 序号 9 10 11 12 13 输入序列 1000 1001 1010 1011 1100 输出序列 110 1000 011 1001 001 1010 100 1011 101 1100
6 7 0101 0110 110 0101 100 0110 14 15 1101 1110 1111 000 1101 010 1110 111 1111 8 0111 001 0111 16 4.相对应的译码和纠错(7位)程序: clear; clc;
r=[1 0 0 1 1 1 1];
h=[1,0,0;1,1,0;1,1,1;0,1,1;1,0,1;0,1,0;0,0,1]; b=flipud(h); s=r*b; for i=1:3
if rem(abs(s(i)),2)==0 s(i)=0;end end for i=1:3
if rem(abs(s(i)),2)==1 s(i)=1;end end
if s==[0 0 0]
e=[0 0 0 0 0 0 0 ]; elseif s==[1 0 0]
e=[0 0 0 0 0 0 1]; elseif s==[1 1 0]
e=[0 0 0 0 0 1 0]; elseif s==[1 1 1]
e=[0 0 0 0 1 0 0]; elseif s==[0 1 1]
e=[0 0 0 1 0 0 0]; elseif s==[1 0 1]
e=[0 0 1 0 0 0 0]; elseif s==[0 1 0]
e=[0 1 0 0 0 0 0]; else s==[0 0 1]
e=[1 0 0 0 0 0 0]; end u=r+e; for i=1:7
if rem(abs(u(i)),2)==0 u(i)=0;end end for i=1:7
if rem(abs(u(i)),2)==1 u(i)=1;end
end
Data=zeros(1,4); Data(1)=u(4); Data(2)=u(5); Data(3)=u(6); Data(4)=u(7); if e==[0 0 0 0 0 0 0] disp('没有错误:') k=0,else
disp('第几位错误:') k=find(e) ;end
disp('接收码字') r
disp('译码输出序列:') Data
第几位错误:k = 5 接收码字
r = 1 0 0 1 1 1 1 译码输出序列:
Data =1 0 1 1
以上编码有个缺点,就是它只能对一个消息矢量(4位)进行编码,我又在这个基础上编写了一个可以同时对位数是4的倍数的消息矢量进行编码。 5.多位循环码(4的倍数)的编码程序如下: clear; clc;
a=[1 1 0 0 1 0 1 1]; [X,N]=size(a);
%将信息码分为M帧,1帧4个信息码
M=ceil(N/4); d=zeros(1,4); b=zeros(1,7*M); Data=zeros(1,7); for k=1:M for j=1:4
d(j)=a(j+(k-1)*4);end %生成多项式 Gx=[1 0 1 1]; Data(1)=d(4); Data(2)=d(3); Data(3)=d(2); Data(4)=d(1);
úta除以Gx得到余数Rx
…… 此处隐藏:855字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [互联网资料]2022年厦门大学机电工程系824机械设计
- [互联网资料]东南大学2022年硕士研究生拟录取名单公
- [互联网资料]能源调研报告(精选多篇)
- [互联网资料]初三英语下学期 中考英语 语法填空训练
- [互联网资料]2022内蒙古选调生行测常识备考:新事物
- [互联网资料]自驾必备!在新西兰租什么样的车自驾游
- [互联网资料]佛教素食菜谱44页未完
- [互联网资料]盈利能力分析外文翻译
- [互联网资料]2022年南昌航空大学音乐学院736马克思
- [互联网资料]优选外贸跟单实习报告总结(精品版)
- [互联网资料]银行新员工培训总结
- [互联网资料]2_year_visa_new_guidance_190316
- [互联网资料]天津市五校宝坻一中静海一中杨村一中芦
- [互联网资料]2007--2008学年第一学期高三数学宁波市
- [互联网资料]Chromatic framework for vision in ba
- [互联网资料]幼儿园大班上学期美术教案《心愿树》含
- [互联网资料]2022年华中农业大学信息学院820微型计
- [互联网资料]硬盘坏道的表现 __硬盘使用久了
- [互联网资料]江苏省2016年会计从业资格考试《会计基
- [互联网资料]公共场所卫生监督试卷全解
- 高级英语第一册所有修辞方法及例子总结
- 综合交通枢纽规划与城市发展
- 沃尔玛的企业文化案例分析
- 美国Thanksgiving Day 感恩节 介绍
- PEP六年级英语上册Unit6How do you fee
- 最齐全的中国大型商场购物中心名单
- 数据结构实验报告八—哈夫曼编译码
- 杭州市余杭区人民政府(通知)
- 七年级语文成语运用专项训练
- 微观经济学第三章 消费者行为 课后习题
- 对_钱学森之问_的思考
- Excel_三级联动_下拉菜单
- 办公用品需求计划申请表
- 对外汉语教材必须要知道的发展史
- 挑战杯大学生学术科技作品竞赛作品申报
- 举办民办教育培训机构应具备下列条件
- 太阳能路灯项目设计方案
- 2013年八年级上最新人教版新教材Unit3I
- 【历史】 6-4 《近代科学之父牛顿》 课
- 高中生物《第四章 第二节 探讨加酶洗衣




