第一范文网 - 专业文章范例文档资料分享平台

线性分组码信道编码

来源:用户分享 时间:2025/8/25 19:44:39 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

图2 程序的编码过程

3.当输入“2”时,显示“请输入接收码组B:”。然后从提示符后输入:[1 1 0 1 0 0 1;0 1 0 1 1 1 0],回车后显示如下:

图3 程序的译码

4. 当你输入“0”时,系统应该正常退出运行程序,运行结果如下:

图4 系统正常输入退出

4.2 结果分析

1.输出编码结果及输入正确接收码的译码结果分析

由图1可以看出编码的结果的八种情况和在推导过程中运算的结果是一致的,所以我们可以知道程序的编码过程是正确的。对于译码过程而言,当界面显示“请输入接收码组B:” ,然后从提示符后输入:[0 0 0 0 0 0],由于输入的接收码组与编码后的码字一致,它提取了每个码组的前四位,即信息位,由结果看出译码过程是正确的,并没有出现错译的情况,可见程序的译码片段是正确的。 2.输入一位错误时的结果分析

由图1可以看出,当界面显示“请输入接收码组B:” 。然后从提示符后输入:[0 0 0 0;0 0 0 1;0 0 1 0;0 0 1 1;0 1 0 0;0 1 0 1;0 1 1 0;0 1 1 1;1 0 0 0;1 0 0 1;1 0 1 0;1 0 1 1;1 1 0 0;1 1 0 1;1 1 1 0;1 1 1 1]由图2 有一位错误输入时的显示图所知,接收码组的第五位发生了错误,经程序纠检错误后改正了接收序列的错误,并且正确译出了信息位。可见程序的纠错功能也是可以实现的,以上结果进一步证实了,系统译码程序的正确性。 3.输入两位特定位错误时的结果分析

由图3 有两位特定位错误输入时的显示图知,当输入B=[1 1 0 1 0 0 1;0 1 0 1 1 1 0]时,校正子是111,错误图样是100100,所以说明理论得以验证。

Matlab 程序如下:

function bianyiqi % -------$$$$$------- % Define variables:

% H 监督矩阵 % G 生成矩阵 % C 编码矩阵 % I 输入信息序列 % R 信道输出码 Q=input(...

'您好!欢迎使用线性分组码编译器:\\n 请选择编译器种类:\\n 1:编码器 2:译码器 0:退出>>'); while(Q)

%信道编码程序 if(Q==1) clear all close all

H=[1 1 1 0 1 0 0; 1 0 1 1 0 1 0;

1 1 0 1 0 0 1]; %监督矩阵

G=gen2par(H); %求H阵的生成矩阵G I=input('请输入n*4的信息码组:'); C=rem(I*G,2);

disp('编码结果为:C='); disp(C); elseif(Q==2) %信道译码程序 clear all; close all;

H=[1 1 1 0 1 0 0; 1 0 1 1 0 1 0;

1 1 0 1 0 0 1]; %监督矩阵 B=input('请输入接收码组B:'); [a,b]=size(B);

E=[0 0 0 0 0 0 0;0 0 0 0 0 0 1; 0 0 0 0 0 1 0;0 0 0 0 1 0 0; 0 0 0 1 0 0 0;0 0 1 0 0 0 0; 0 1 0 0 0 0 0;1 0 0 0 0 0 0];

S=rem(B*H',2); %求校验子 i=1; for i=1:1:a

M(i,1)=S(i,1).*4+S(i,2).*2+S(i,3); %求校验子所表示的整数 end for i=1:1:a

switch(M(i,1))

% A 纠错输出码序列 % E 错码矩阵 % S 校验子矩阵

% M 校验子的行的十进制序列 % =======================

case 0

A(i,:)=B(i,:)+E(1,:); case 1

A(i,:)=B(i,:)+E(2,:); case 2

A(i,:)=B(i,:)+E(3,:); case 4

A(i,:)=B(i,:)+E(4,:); case 3

A(i,:)=B(i,:)+E(5,:); case 6

A(i,:)=B(i,:)+E(6,:); case 5

A(i,:)=B(i,:)+E(7,:); case 7

A(i,:)=B(i,:)+E(8,:); otherwise '不可能出现' end end

A=rem(A,2); %求出正确的编码 disp('检纠错后的码组A='); disp(A); j=1;

while j<=4 %提取信息位 I(:,j)=A(:,j); j=j+1; end

disp('译出的信息序列I=');

disp(I); %显示原信息码 else

'对不起,您输入有误!' end

Q=input('接下来您想:\\n 1:用编码器 2:用译码器 0:退出>>'); end

disp(' 谢谢您的使用,再见!!!');

搜索更多关于: 线性分组码信道编码 的文档
线性分组码信道编码.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c6x6s87jc460fvqu4zj5s_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top