线性分组码编码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一线性分组码编码实验内容:

1、在GF(2)上,已知(7,4)线性分组码C的生成矩阵为

1000011

0100111

G

0010110

0001101

⎡⎤

⎢⎥

⎢⎥=

⎢⎥

⎢⎥

⎣⎦

请用VC实现该码的编码,并给出信息位和码字的对应列表;

2、在GF(2)上,请编程实现以上述矩阵为检验矩阵的码的编码,并给出信息位和码字的对应列表。

实验报告格式:

1.实验目的;

2.实验环境;

3.实验内容;

4.算法设计;

5.详细设计(含程序代码,主要函数说明,调试结果);

package com.former;

import java.awt.*;

import javax.swing.*;

public class XinxiweiandMazi extends JFrame {

NewPanel newpanel=null;

public static void main(String[] args) {

XinxiweiandMazi xx=new XinxiweiandMazi();

Caculation ct=new Caculation();

rmation();

ct.resoult(rmation());

}

//创建构造函数进行初始化

public XinxiweiandMazi()

{

newpanel=new NewPanel();

//将面板添加到JFrame中

this.add(newpanel);

//设置窗体

this.setTitle("线性分组码编码 02");

this.setSize(500,600);

this.setVisible(true);

this.setLocation(100, 200);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

//创建一个面板,用于显示信息

class NewPanel extends JPanel

{

Caculation cat=new Caculation();

//覆盖paint()方法

public void paint(Graphics g)

{

super.paint(g);

g.setColor(Color.CYAN);

g.fillRect(0, 0, 800, 600);

//修改画笔

g.setColor(Color.black);

//设置字体的类型:字体的形状,加粗,大小!

Font myfont=new Font("华文新魏",Font.PLAIN,20);

//显示我创作新的字体

g.setFont(myfont);

g.drawString("码字", 10, 30);

//定义数据的坐标

int x=0;

int y=0;

//画出信息编码

for(int i=0;i<16;i++)

{

for(int j=0;j<7;j++)

{

//画出信息编码

g.drawString(cat.arr[i][j]+" ", x, y+70);

x+=15;

}

//从新设置坐标

x=0;

y+=30;

}

//画出信息位

g.drawString("相对应的信息位", 130, 30);

y=0;

for(int i=0;i<16;i++)

{

for(int j=0;j<4;j++)

{

//画出信息位

g.drawString(cat.arr1[i][j]+"", x+150, y+70);

x+=15;

}

x=0;

y+=30;

}

}

}

//创建一个类,用来计算当用户输入信息位,计算出相对应的码字class Caculation

{

//定义数组的行数和列数

static int rows=4;

static int columns=7;

//定义生成矩阵G

int G[][]={{1,0,0,0,0,1,1},

{0,1,0,0,1,1,1},

{0,0,1,0,1,1,0},

{0,0,0,1,1,0,1}};

//定义一个数组,用来存放信息编码

static int arr[][]=new int[rows*rows][columns];

//定义一个矩阵,用来存储信息位的数据

static int arr1[][]=new int[rows*rows][rows];

//写一个函数,功能是生成矩阵所对应的所有信息位public int[][] Information()

{

//定义两个变量,用来控制二进制的转换

int a=0,b=0;

for(int j=0;j

{

b=a;

for(int k=0;k<4;k++)

{

arr1[j][k]=b%2;

b/=2;

}

//用来完成二进制转换

a++;

}

return arr1;

}

//该函数用来完成计算出相对应的信息编码

public void resoult(int arr1[][])

相关文档
最新文档