信息论实验.docx

上传人:b****3 文档编号:5494193 上传时间:2022-12-17 格式:DOCX 页数:12 大小:567.12KB
下载 相关 举报
信息论实验.docx_第1页
第1页 / 共12页
信息论实验.docx_第2页
第2页 / 共12页
信息论实验.docx_第3页
第3页 / 共12页
信息论实验.docx_第4页
第4页 / 共12页
信息论实验.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

信息论实验.docx

《信息论实验.docx》由会员分享,可在线阅读,更多相关《信息论实验.docx(12页珍藏版)》请在冰豆网上搜索。

信息论实验.docx

信息论实验

实验一模拟信号取样仿真

实验目的:

信源编码是产生信源有效数据的的源头,利用信源的统计特性,解除信源的相关性,去掉信源的冗余信息,以达到压缩信源的信息率的目的。

本实验通过仿真来演示模拟信号的取样。

实验内容:

通过MATLAB/Simulink软件对正弦模拟信号转化为离散信号进行仿真。

图1模拟信号取样仿真框图

设置参数:

1.SineWave(正弦信号发生器)

位置:

Simulink\Sources

参数名称

参数值

Sinetype

Timebased

Amplitude

1

Bias

0

Frequency

2*pi

Phase

0

Sampletime

0

2.PulseGenerator(脉冲信号发生器)

位置:

Simulink\Sources

参数名称

参数值

Pulsetype

Timebased

Amplitude

1.5

Period

0.025

Pulsewidth

50

Phasedelay

0

3.Constant(常数)

位置:

Simulink\Sources

参数名称

参数值

Constantvalue

[20-3.3]

4.Scope(示波器)

位置:

Simulink\Sinks

参数名称

参数值

Timerange

1

Sampling

0.0005

Y-max

3.5

Y-min

-3.5

仿真结果

图2正弦波及脉冲信号波形示波器显示图

实验二信源编码中压缩算法—DCT变换函数的应用

实验目的:

信源编码以去除消息中的自然剩余来提高信息传输的有效性为目的。

基于DCT压缩算法在信源编码中广泛应用,本实验通过离散余弦变换实现对图像的压缩,以及通过逆离散余弦变换实现对压缩后图像的重构。

实验内容:

1.输入图像,DCT变换实现图像压缩;

2.将输入图像划分成8*8的图像块,计算其DCT系数;

3.通过DCT系数对图像块实现逆DCT重构。

源代码如下:

I=imread('cameraman.tif');%读入图像

I=im2double(I);J=dct2(I);

imshow(J)

I=imread('cameraman.tif');

I=im2double(I);

T=dctmtx(8);%产生DCT变换矩阵

B=blkproc(I,[88],'P1*x*P2',T,T');%计算二维DCT

mask=[11110000

11100000

11000000

10000000

00000000

00000000

00000000

00000000];

%二值掩膜,用以压缩DCT的系数

B2=blkproc(B,[88],'P1.*x',mask);

%只保留DCT的10个系数

I2=blkproc(B2,[88],'P1*x*P2',T',T);

%逆DCT变换,用来重构图像

imshow(I),figure,imshow(I2)

实验结果:

 

实验三信道编码—线性分组码、Hamming码仿真以及循环码、卷积码编解码实验

1.线性分组码、Hamming码仿真实验

实验目的:

线性分组码是最重要也是使用最广的分组码。

通过本实验仿真,掌握线性分组码码字空间的确定方法以及线性分组码的最小码重。

Hamming码是一种很常用的线性分组码,对于二进制的Hamming码,能够纠正所有单比特错误。

了解Hamming码的编码。

实验内容:

1、(7,3)线性分组码的生成矩阵如下所示,确定其码字空间,以及该码的最小码重。

G=1001110

0100111

0011101

实现的MATLAB源代码为:

clear;

k=3;

fori=1:

2^k

forj=k:

-1:

1

ifrem(i-1,2^(-j+k+1))>=2^(-j+k)

m(i,j)=1;

else

m(i,j)=0

end

end

end

%定义生成矩阵G

g=[1001110;

0100111;

0011101];

%产生码字空间

c=rem(m*g,2);

%找出最小汉明距离

d_min=min(sum((c(2:

2^k,:

))))

2、Hamming码编码:

源程序为:

hammgen(3);

clear;

m=3;

[h,g,n,k]=hammgen(m);

msg=randint(100,k,[0,1]);

code=encode(msg,n,k,‘hamming/binary’)

变量code中返回编码后的信号序列

实验结果:

m=

000

 

m=

000

 

m=

000

 

m=

000

001

 

m=

000

001

 

m=

000

001

000

 

m=

000

001

010

 

m=

000

001

010

011

 

m=

000

001

010

011

000

 

m=

000

001

010

011

000

 

m=

000

001

010

011

100

001

 

m=

000

001

010

011

100

101

000

 

d_min=

4

2.循环码、卷积码编解码实验

实验目的:

循环码是线性码的一个重要子类,它的码字具有循环性。

也就是说,它的任一码字无论是向左移还是向右移,无论多少位,所得到的码字仍然是可用的。

通过本实验,知道循环码的编码和解码。

卷积码在把k0个输入比特序列编为长度为n0的编码输出序列的时候,编码输出序列不仅和当前输入比特序列有关,还和编码器先前输入的信息比特序列有关。

通过本实验,了解卷积码的编码。

实验内容:

1、循环码编码、解码、计算误码率MATLAB源程序:

n=3;

k=2;

msg=randint(100,k,[0,1]);

code=encode(msg,n,k,‘cyclic/binary’);

noisycode=rem(code+randerr(100,n,[01;.7.3]),2);%加噪

newmsg=decode(noisycode,n,k,‘cyclic’);%解码

[number,ratio]=biterr(newmsg,msg);%计算误码率

disp([‘Thebiterrorrateis’,num2str(ratio)])

%误码率将显示在命令窗口中

执行,在commandwindow窗口中将显示:

>〉Thebiterrorrateis0.11

2、对消息序列:

10011100110000111进行卷积编码

其MATLAB源代码如下:

clear;

msg=[1001110011000011100];

L=3;%抑制长度

CodeGenerator=[457];%多项式描述

trellis=poly2trellis(L,CodeGenerator);%转换为网格图描述

[code,final_state]=convenc(msg,trellis)

实验结果:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1