图像通信系统设计及仿真.docx
- 文档编号:11459896
- 上传时间:2023-03-01
- 格式:DOCX
- 页数:16
- 大小:125.70KB
图像通信系统设计及仿真.docx
《图像通信系统设计及仿真.docx》由会员分享,可在线阅读,更多相关《图像通信系统设计及仿真.docx(16页珍藏版)》请在冰豆网上搜索。
图像通信系统设计及仿真
科学技术学院
SCIENCE&TECHNOLOGYCOLLEGEOF
NANCHANGUNIVERSITY
《课程设计》报告
REPORTONCURRICULUMDESIGN
题目:
图像通信系统设计与仿真
学科部、系:
信息学科部电子系
专业班级:
10电子1班
学号:
7020910031
学生:
徐智宝
指导教师:
曾萍萍芳娟
起讫日期:
2013.11.18---2013.11.29
摘要
图像通信是以图像通信的基本原理、基本技术理论为基础发展的新技术,具体容包括图像与数字图像通信、图像分析与正交变换、图像压缩编码、静止图像编码、活动图像编码、图像通信中的信道编码与传输技术。
本课程设计主要研究图像通信系统的设计和仿真,在MATLAB中对图像进行读取、压缩和哈弗曼编码,将数字化后的图像进行数字调制,已调后的信号可以传输和交换,到达接收端,经解调和解码还原成图像,从而完成了图像信号传送和接收。
利用图形用户界面(GUI),通过窗口、菜单、按键等方式来方便地对本次课程设计的图像通信进行操作,观察。
本文通过对图像进行哈弗曼编码,对比ASK,FSK,PSK三种调制方式进行传输,利用相干解调方式,然后再进行哈弗曼解码,在图形用户界面上实现图像通信操作仿真。
关键词:
图像通信系统,传输接收,压缩,哈弗曼编码解码,调制,相干解调,图形用户界面
第一章图像通信系统的概述
1.1图像通信通信课程设计的任务与要求
1.1.1设计任务
1)学习并掌握图像通信的基本原理,学会利用仿真的手段对于实用通信系统的基本理论,基本算法进行实际验证;
2)学习通信系统仿真软件MATLAB的基本使用方法,解决实际系统出现的问题;
3)通过MATLAB进行仿真,并制作图形用户界面(GUI)加深对图像通信系统理论的理解;
1.1.2设计要求
1)编码:
读入一幅图像,对图像进行哈弗曼编码;
2)调制:
采用振幅键控(ASK),相移键控(PSK),频移键控(FSK)三种方式对编码后产生的数字信号进行调制;
3)解调:
采用相干解调方式;
4)解码:
哈弗曼解码输出原图像;
1.2图像通信通信课程设计流程
根据系统设计的任务要求,确定该系统的设计流程方框图,如图1.1所示。
图1.1图像的设计流程方框图
第二章图像的编码与解码
2.1哈弗曼编码的原理
哈弗曼编码过程分为两步骤:
第一,消减信源符号数量;第二,对每一个信源符号赋值。
基于哈夫曼编码图像压缩的基本原理是在对数据进行编码时可以对那些经常出现的数据指定较少的位数表示,而那些不常出现的数据指定较多的位数表示,每个数据的代码各不相同,这是一种典型的无损编码方式。
这些代码都是二进制码,且码字长度是不均匀的、平均码率可以接近信息源熵值的一种编码。
哈夫曼编码是一种常用的压缩编码算法,采用变长码编码,属于无损压缩算法的一种。
由于进行的是无损压缩,所以要扫描图像的所有像素点,压缩过程分为四步:
1 扫描统计像素出现的概率并按大小排列;
2 建立最优二叉树;
3 哈夫曼编码;
4 保存编码。
2.2哈弗曼解码的原理
哈夫曼解码过程是文件编码过程的逆过程,由于哈夫曼编码可即时解码,因此只要得到一个码字,则通过查找哈夫曼编码表得到相应的字符,映射过程是编码时映射的逆过程。
因此,每从压缩文件中读出一个码字,就从通过查找哈夫曼编码表用字符替换相应的码字,当压缩文件中所有的码字被字符替换掉,也就宣告解压过程完成了。
第三章数字信号的调制与解调
3.1数字信号的调制
3.1.1调制的概念及分类
用基带信号对载波(通常为余弦或正弦)波形的某些参数(如幅度、相位和频率)进行控制,使这些参数随基带信号的变化而变化。
因此,数字信号的调制可分为振幅键控(ASK),相移键控(PSK),频移键控(FSK)。
3.1.2调制的原理
1)M进制振幅键控(MASK)基本原理
M进制数字振幅调制信号的载波幅度有M种取值,在每个符号时间间隔Ts发送M个幅度中的一种幅度的载波。
表达式:
a.g(t)为基带信号波形
b.Ts为符号时间间隔
c.an为幅度值
2)M制频移键控(MFSK)基本原理
表达式:
式中
为载波角频率,共有M种取值。
通常可选载波频率f=n/2Ts,n为正整数,此时M种发送信号相互正交。
3)M进制相移键控(MPSK)基本原理
表达式:
式中
a.g(t)--信号包络波形,通常为矩形波,幅度为1
b.Ts--码元时间宽度
c.c--载波角频率
d.
--第n个码元对应的相位,共有M种取值
3.2数字信号的解调
3.2.1解调的概念
解调也叫检波,其作用就是从接收到的已调波中无失真地恢复出调制信号。
调幅信号的解调技术可大致分为两类:
相关解调和非相关解调。
1)相干解调(又称同步检波):
需要在接收端知道发射载波的频率和相位(恢复相干载波以用于与接收的已调信号相乘)。
其中乘机检波器也叫鉴相器,是将输入的带通信号变为基带信号的下变频电路。
2)非相干解调(又称包络检波):
即不需要知道有关的信息,它的输出信号与输入信号实际包络成正比。
3.2.2解调的原理
1.ASK信号的解调
2ASK相干解调方框图如图所示
2.FSK信号的解调
2FSK相干解调方框图如图所示
3.PSK信号的解调
2PSK相干解调方框图如图所示
第四章图形用户界面的设计与制作
图形用户界面或图形用户接口(GraphicalUserInterface,GUI)是指采用图形方式显示的计算机操作环境用户接口。
与早期计算机使用的命令行界面相比,图形界面对于用户来说更为简便易用。
GUI的广泛应用是当今计算机发展的重大成就之一,它极方便了非专业用户的使用人们从此不再需要死记硬背大量的命令,取而代之的是可用用通过窗口、菜单、按键等方式来方便地进行操作。
而嵌入式GUI具有下面几个方面的基本要求:
轻型、占用资源少、高性能、高可靠性、便于移植、可配置等特点。
4.1图形用户界面GUI的概述
图形用户界面GUI是一种包含多种对象的图形窗口,并为GUI开发提供一个方便高效的集成开发环境GUIDE。
GUIDE主要是一个界面设计工具集,MATLAB将所有GUI支持的控件都集成在这个环境中。
GUIDE将设计好的GUI保存在一个FIG文件中,同时生成M文件框架。
FIG文件:
该文件包括GUI图形窗口及其所有FIG文件包含序列化的图形窗口对象;
M文件:
该文件包括GUI设计、控制函数以及定义为子函数的用户控件回调函数。
GUIDE可以根据GUI设计过程直接自动生成M文件框架,优点如下:
a.M文件已经包含一些必要的代码;
b.管理图形对象句柄并执行回调函数子程序;
c.提供管理全局数据的途径;
d.支持自动插入回调函数原型。
4.2图形用户界面(GUI)的设计与制作
1)GUI创建包括界面设计和控件编程两部分,主要步骤如下:
a.通过设置GUIDE应用程序的选项来运行GUIDE;
b.使用界面设计编辑器进行界面设计;
c.编写控件行为响应控制(即回调函数)代码。
2)图像通信系统的的图形用户界面GUI
第五章总结
图像通信系统为目前广泛使用的技术,以图像通信理论为基础,反映了当代图像通信发展的新技术。
对基本原理和技术的分析同时涉及模拟图像通信和数字图像通信,并以数字图像的分析为主。
具体容包括图像与数字图像通信、图像分析与正交变换、图像压缩编码、静止图像编码、活动图像编码、图像通信中的信道编码与传输技术、图像编码方法的新进展和数字图像通信系统。
本次图像通信系统设计与仿真是对图像通信系统在MATLAB中的简单应用。
通过在MATLAB中对图像进行读取、压缩和哈弗曼编码,将数字化后的图像进行数字调制,已调后的信号可以传输和交换,到达接收端,经解调和解码还原成图像,从而完成了图像信号传送和接收。
利用图形用户界面(GUI),通过窗口、菜单、按键等方式来方便地对本次课程设计的图像通信进行操作,观察。
本文通过对图像进行哈弗曼编码,对比ASK,FSK,PSK三种调制方式进行传输,利用相干解调方式,然后再进行哈弗曼解码,在图形用户界面上实现图像通信操作仿真。
让我们深入了解图像通信系统及其技术应用。
参考文献
[1]娄莉·图像通信原理与技术[M].:
清华大学,2010
[2]章毓晋.图像处理和分析教程[M].:
人民邮电,2009
[3]夏良正.数字图像处理(第2版).:
东南大学,2005
[4]敏.数字图像处理.:
机械工业,2005
[5]朝晖.数字图像处理及应用(含1CD).:
机械工业,2005
[6]何东健,耿楠,义宽.数字图像处理..:
电子科技大学,2004
[7]贾永红.数字图像处理.:
大学,2004
附录1图像通信在在MATLAB中算法实现
一、哈弗曼编码在MATLAB中的算法
1.function[ratio,rowsB,colsB,dictionary,Huffcode_I]=HuffEncode(I)
2.K=imread('cameraman.tif');
3.I=imresize(K,[20,20]);
4.maxI=max(max(I));%求图像灰度级最大值
5.H=zeros(1,maxI+1);%直方图矩阵初始化
6.[rows,cols]=size(I);
7.rowsB=tentotwo(rows);%调用十进制转换成二进制的程序
8.colsB=tentotwo(cols);
9.fori=1:
rows
10.forj=1:
cols
11.H(I(i,j)+1)=H(I(i,j)+1)+1;
12.end
13.end
14.H=H/(rows*cols);
15.[Index,Hn]=sortDezero(H);%调用sortDezero函数
16.IndexCell=num2Cell(Index);%Huffman树的下标变成元包数组
17.lenIndex=length(Index);
18.codeWord=cell(1,maxI+1);%定义元包数组存放码字
19.fori=1:
lenIndex-1
20.index1=IndexCell{1};
21.index2=IndexCell{2};forj=1:
length(index1)
22.codeWord(index1(j))={[0,codeWord{index1(j)}]};
23.end
24.forj=1:
length(index2)
25.codeWord(index2(j))={[1,codeWord{index2(j)}]};
26.end
27.IndexCell=[{[index1,index2]},IndexCell{3:
end}];
28.Hn=[sum(Hn(1:
2)),Hn(3:
end)];
29.[Index,Hn]=sortH(Hn);
30.IndexCell=IndexCell(Index);
31.end
32.Lavg=0;
33.fori=1:
length(H)
34.Lavg=Lavg+H(i)*length(codeWord{i});
35.end
36.ratio=8/Lavg;%计算压缩比
37.II=I(:
);
38.Huffcode_I=[];%存储图像的Huffman编码
39.fori=1:
length(II)
40.Huffcode_I=[Huffcode_I,codeWord{II(i)+1}];
41.end
42.Huffcode_I=logical(Huffcode_I);
43.dictionary=zeros(1,uint16(maxI+1)*16);%字典的传送
44.A=[];
45.fori=1:
double(maxI+1)
46.num=length(codeWord{i});
47.Y=num;
48.ifnum~=0
49.fork=1:
4
50.B=mod(Y,2);
51.dictionary(16*(i-1)+(5-k))=B;
52.Y=floor(Y/2);
53.end
54.A=codeWord{i};
55.forj=1:
num
56.dictionary(16*(i-1)+4+j)=A(j);
57.end
58.end
59.End
哈弗曼编码在MATLAB中的算法如下:
1.functionDI=HuffDecode(rowsB,colsB,dictionary,Huffcode_I)
2.rows=0;%图像列数
3.fori=1:
length(rowsB)
4.ifrowsB(i)~=0
5.rows=rows+2^(length(rowsB)-i);
6.end
7.end
8.cols=0;%图像行数
9.fori=1:
length(colsB)
10.ifcolsB(i)~=0
11.cols=cols+2^(length(colsB)-i);
12.end
13.end
14.codeWord=cell(1,256);%字典解码接收,字典解码存放码字
15.fori=1:
256
16.num=dictionary(16*(i-1)+1)*8+dictionary(16*(i-1)+2)*4+dictionary(16*(i-1)+3)*2+dictionary(16*(i-1)+4);
17.ifnum~=0
18.codeWord(i)={dictionary((16*(i-1)+5):
(16*(i-1)+4+num))};
19.end
20.iflength(dictionary((16*i+1):
end))<1
21.maxI=i;
22.break;
23.end
24.end
25.len=length(Huffcode_I);%图像解码
26.D=zeros(1,rows*cols);
27.k=1;q=1;
28.forq=1:
rows*cols
29.fori=1:
maxI+1
30.num=length(codeWord{i});
31.ifnum~=0
32.if(len-k+1)>=num
33.ifHuffcode_I(k:
k+num-1)==codeWord{i}
34.D(q)=i-1;%解码
35.k=k+num;
36.break;
37.end
38.end
39.end
40.end
41.end
42.DI=reshape(D,[rows,cols]);
二、调制在MATLAB中的算法如下:
1.function[ethetbn]=digtalmod(fs,fc,an,M,Rb,df,modType)
2.Tr=fs/Rb;
3.ifM~=2
4.bn=bin2decxie(an,M);
5.else
6.bn=an;
7.end
8.N0=length(bn);
9.T=N0/Rb;%N个码元的传输时间
10.t=0:
1/fs:
T-1/fs;
11.fori=1:
length(bn)
12.s((i-1)*Tr+1:
i*Tr)=bn(i);
13.end
14.switchmodType
15.case'ASK1'
16.et=s.*cos(2*pi*fc*t);%ASK
17.case'FSK2'
18.et=cos(2*pi*(fc+s*df).*t);%FSK
19.case'PSK3'
20.et=cos(2*pi*fc*t+s*2*pi/M);
21.end
22.eth=hilbert(et);
解调在MATLAB中的算法如下:
1.functionbn0=digitaldemod(eth,fs,fc,Rb,M,modType)
2.T=length(eth)/fs;
3.t=0:
1/fs:
T-1/fs;
4.Tr=fs/Rb;
5.eth=hilbert(eth);
6.switchmodType
7.case'ASK1'
8.des=abs(eth);
9.case'FSK2'
10.phi=unwrap(angle(eth));
11.des=diff(phi);
12.case'PSK3'
13.eth=eth.*exp(-j*2*pi*fc*t);
14.des=angle(eth);
15.des(find(des<-0.1))=des(find(des<-0.1))+2*pi;
16.end
17.des=medfilt1(des,floor(0.65*Tr));%%中值滤波
18.a=max(des(2*Tr:
end-2*Tr));
19.b=min(des(2*Tr:
end-2*Tr));
20.d=(a-b)/(M-1);
21.ddes=des(Tr/2:
Tr:
end);
22.fork=0:
M-1
23.index=find(ddes>(b+d*(2*k-1)/2)&ddes<(b+d*(2*k+1)/2));
24.bn0(index)=k;
25.end
26.ifM~=2
27.k=log2(M);%确定M进制需要多少位二进制
28.A=zeros(1,k*length(bn0));
29.fori=1:
length(bn0)
30.forf=1:
k
31.A(k*(i-1)+(k-f+1))=mod(bn0(i),2);
32.bn0(i)=floor(bn0(i)/2);
33.end
34.end
35.bn0=A;
36.end
课程设计成绩评定表
专业:
电子信息班级:
电子1班学号:
7020910031:
徐智宝
课题名称
图像通信系统的设计与仿真
方案、结论与改进之处
图像通信系统技术,容包括图像与数字图像通信、图像分析与正交变换、图像压缩编码、静止图像编码、活动图像编码、图像通信中的信道编码与传输技术。
本课程设计主要研究图像通信系统的设计和仿真,在MATLAB中对图像进行读取、压缩和哈弗曼编码,将数字化后的图像进行数字调制,已调后的信号可以传输和交换,到达接收端,经解调和解码还原成图像,从而完成了图像信号传送和接收。
利用图形用户界面(GUI),通过窗口、菜单、按键等方式来方便地对本次课程设计的图像通信进行操作,观察。
本文通过对图像进行哈弗曼编码,对比ASK,FSK,PSK三种调制方式进行传输,利用相干解调方式,然后再进行哈弗曼解码,在图形用户界面上实现图像通信操作仿真。
指导教师评语
建议成绩:
指导教师:
课程小组评定
评定成绩:
课程负责人:
时间:
2013年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图像 通信 系统 设计 仿真
![提示](https://static.bdocx.com/images/bang_tan.gif)