实验一 信息熵与图像熵计算(5)

2019-09-02 19:03

SuansuJiema(bm,k) end

if YN==2

disp('你选择了不译码。')

disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%') end

解码函数:

functionSuansuJiema(bm,num) 18

format long

pa=0.2;pb=0.3;pc=0.1;pd=0.15;pe=0.25; i=1; ym={};

ym{1}(1)=YM(bm); bm0=bm;

whilei>=1&i

caseym{1}(i)=='a' bm0=(bm0-0)/pa; caseym{1}(i)=='b' bm0=(bm0-pa)/pb; caseym{1}(i)=='c' bm0=(bm0-pa-pb)/pc; caseym{1}(i)=='d'

bm0=(bm0-pa-pb-pc)/pd; caseym{1}(i)=='e'

bm0=(bm0-pa-pb-pc-pd)/pe; end i=i+1;

ym{1}(i)=YM(bm0); end

disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%jiema_start%%%%%%%%%%%%%%%%%%%%%%%') disp(['译码结果是',ym{1}])

disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%jiema_end%%%%%%%%%%%%%%%%%%%%%%%%%') 函数二:

functionym=YM(A)

pa=0.2;pb=0.3;pc=0.1;pd=0.15;pe=0.25; switch 1

case 0<=A&A

case pa<=A&A

casepa+pb<=A&A

casepa+pb+pc<=A&A

casepa+pb+pc+pd<=A&A

case A>=1|A<0

disp('该码子为错误编码') end 19

实验六线性分组码的信道编码和译码(2 学时) 一、实验目的

1.熟悉MATLAB 工作环境及工具箱;

2.掌握线性分组码的编码、译码原理以及纠错原理。 二、实验内容

用MATLAB 软件编程实现线性分组码的信道编码和译码。 三、实验仪器、设备

1.计算机-系统最低配置256M 内存、P4 CPU; 2.MATLAB 编程软件。 四、实验原理

1.线性分组码基本原理

首先,将信息序列分成K 个符号一组,然后,在信息组中加入一些校验码 元,组成N 长码字,由此得到(N,K)分组码。(N,K)分组码中任一码字的 码长为N,所含的信息位数目为K,校验位数目为r=N-K,且码中任意两个码 字的和仍为码字。例如,对于(5,2)分组码,N=5,K=2,其编码函数f 为: 1 1 C ?M 2 2 C ?M

3 1 2 1 2 C ?M ?M ?C ?C 4 1 1 C ?M ?C

5 1 2 1 2 C ?M ?M ?C ?C

编码函数可知:c(码字)=m(信息矩阵)G(生成矩阵)其中,生成矩阵为: 1 0 1 1 1 0 1 1 0 1 G ?? ??? ??

当生成矩阵G 确定后,编码的问题就解决了。又由编码函数的后3 个方程

可以确定校验方程,对应的矩阵形式为0 T CH ? 或0 T GH ? ,式中,H 称为一致

性校验矩阵,一致性校验矩阵如下: 1 1 1 0 0 1 0 0 1 0 1 1 0 0 1 H ??

?? ? ??

????

H 和G 的关系为:??K*K K*r G ?I A ,??K*r r*r H ?A I 。

纠错译码时,若发送码字为C,则接收序列为y,校正子* * T T s ?y H ?e H , 因此,可以得到译码c ?y?e(模2 和)。其中,e 称为差错图样。S 是传输 是否出错的标志,称为伴随式。(5,2)线性分组码的最小汉明距离为dmin=3, 20

能够检出2 位错误或纠正1 位错误。 2.线性分组编码、译码算法: (1)线性分组码信道编码: (a)输入生成矩阵G 和原序列; (b)由矩阵G 得到n,k 和H; (c)根据公式生成编码。 (2)线性分组码信道译码:

(a)输入生成矩阵G 和接收序列; (b)由矩阵G 得到n,k 和H; (c)根据公式生得到校正S; (d)求错误图样e; (e)译码c ?y ?e。 五、实验步骤

1.根据实验原理能设计出线性分组编码、译码程序; 2.输入矩阵G 和原序列验证编码程序是否正确; 3.输入矩阵G 和接收序列验证译码程序是否正确。 六、实验报告要求

1.按照本节内容后实验报告形式书写;

2.实验总结和心得要详细,可以根据自己实验情况,写出建议。 七、实验注意事项

1.线性分组码中生成矩阵、校验矩阵、伴随式之间的关系。 2.在计算矩阵时,注意位操作运算。 八、思考题

优化程序,提高运算速度? 附录1:实验报告样式: 实验报告

班级:姓名:学号:组别:同组人: 课程名称:实验室:实验时间:

(使用实验报告纸的,以上内容可按照实验报告纸格式填写) 实验六线性分组码的信道编码和译码 一、实验目的:

二、实验内容与原理:

三、实验器材(设备、元器件、软件工具、平台): 四、实验步骤: 21

五、程序流程图:

六、实验数据及结果分析: 七、实验结论: 八、思考题:

九、编程、调试过程中遇到的问题及解决方法:

十、其他:实验总结、心得体会及对本实验方法、手段及过程的改进建议等。 附录二: 附录二: 线性分组码的信道编码和译码 close all; clc;

G=input('请输入生产矩阵G,例如:G=[1 0 1 1 1;0 1 1 0 1]\\n G='); G;

[k,n]=size(G); r=n-k;

m=input('请输入需传送消息m,如m=[0 0 0 1 1 0 1 1]\\n m='); l=length(m); if(mod(l,k))

disp('输入消息有误'); else ge=l/k; temp1=[]; fori=1:ge

temp1(i,:)=m(k*(i-1)+1:i*k); end

m=temp1;

c=mod(m*G,2); A=G(:,k+1:n); H=[A',eye(r)]; disp('校验矩阵'); H

disp('编码矩阵'); c end

disp('敲回车键继续'); pause

y=input('输入接收序列y,如:y=[0 0 0 0 0 0 1 1 0 1 1 0 1 1 1 1 0 0 1 0]\\n y='); temp2=[]; fori=1:ge

temp2(i,:)=y(1,n*(i-1)+1:i*n); end y=temp2

s=mod(y*H',2); e=s*pinv(H'); 22

fori=1:ge

for j=1:n

if(e(i,j)>0.5-eps) e(i,j)=1; else

e(i,j)=0; end end end

cc=mod(y+e,2); sc=cc(:,1:2); disp('差错图样); e

disp('估计值'); cc

disp('译码序列'); sc__

clear all; close all; clc; 13

n=input('ê?è?D??′·?o?êy:'); p=zeros(1,n); fori=1:n

p(1,i)=input('ê?è?D??′·?o????ê:'); end q=p;

if sum(p)<1||sum(p)>1 error('ê?è????ê2?·?o????ê·?2?') end

a=zeros(n-1,n); n=length(p); fori=1:n-1

[q,l]=sort(q); a(i,:)=[l(1:n-i+1),zeros(1,i-1)]; q=[q(1)+q(2),q(3:n),1]; end

fori=1:n-1

c(i,1:n*n)=blanks(n*n); end

c(n-1,n)='1'; c(n-1,2*n)='0'; fori=2:n-1

c(n-i,1:n-1)=c(n-i+1,n*(find(a(n-i+1,:)==1))-(n-2):n*(find(a(n-i+1,:)==1)));

c(n-i,n)='1';

c( n-i,n+1:2*n-1)=c(n-i,1:n-1); c(n-i,2*n)='0';


实验一 信息熵与图像熵计算(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:视频会商系统试运行工作报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: