图像通信系统设计与仿真课程设计_第1页
图像通信系统设计与仿真课程设计_第2页
图像通信系统设计与仿真课程设计_第3页
图像通信系统设计与仿真课程设计_第4页
图像通信系统设计与仿真课程设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录目录.摘要.第一章 图像通信系统的概述11.1 图像通信通信课程设计的任务与要求11.1.1 设计任务11.1.2 设计要求11.2 图像通信通信课程设计流程1第二章 图像的编码与解码22.1 哈弗曼编码的原理22.2 哈弗曼解码的原理2第三章 数字信号的调制与解调33.1 数字信号的调制33.1.1 调制的概念及分类33.1.2 调制的原理33.2 数字信号的解调43.2.1 解调的概念43.2.2 解调的原理4第四章 图形用户界面的设计与制作64.1 图形用户界面GUI的概述64.2 图形用户界面(GUI)的设计与制作6第五章 总结7参考文献8附录1 哈弗曼编码解码在MATLAB中的算

2、法9摘要利用MATLAB对图像进行哈弗曼编码,将数字化后的图像进行数字调制,已调后的信号可以传输和交换,到达接收端,经解调和解码还原成图像,从而完成了图像信号传送和接收。利用图形用户界面(GUI),通过窗口、菜单、按键等方式来方便地对本次课程设计的图像通信进行操作,观察。本文通过对图像进行哈弗曼编码,对比ASK,FSK,PSK三种调制方式进行传输,利用相干解调方式,然后再进行哈弗曼解码,在图形用户界面上实现图像通信操作仿真。关键字:huffman编码解码,调制解调,图形用户界面第一章 图像通信系统的概述1.1 图像通信通信课程设计的任务与要求1.1.1 设计任务1) 学习并掌握图像通信的基本原

3、理,学会利用仿真的手段对于实用通信系统的基本理论,基本算法进行实际验证;2) 学习通信系统仿真软件MATLAB的基本使用方法,解决实际系统出现的问题;3) 通过MATLAB进行仿真,并制作图形用户界面(GUI)加深对图像通信系统理论的理解;1.1.2 设计要求1) 编码:读入一幅图像,对图像进行哈弗曼编码;2) 调制:采用振幅键控(ASK),相移键控(PSK),频移键控(FSK)三种方式对编码后产生的数字信号进行调制;3) 解调:采用相干解调方式;4) 解码:哈弗曼解码输出原图像;1.2 图像通信通信课程设计流程 根据系统设计的任务要求,确定该系统的设计流程方框图,如图1.1所示。 图1.1

4、图像的设计流程方框图 第 1 页 第二章 图像的编码与解码2.1 哈弗曼编码的原理基于哈夫曼编码图像压缩的基本原理是在对数据进行编码时可以对那些经常出现的数据指定较少的位数表示,而那些不常出现的数据指定较多的位数表示,每个数据的代码各不相同,这是一种典型的无损编码方式。这些代码都是二进制码,且码字长度是不均匀的、平均码率可以接近信息源熵值的一种编码。 哈夫曼编码是一种常用的压缩编码算法,采用变长码编码,属于无损压缩算法的一种。 由于进行的是无损压缩,所以要扫描图像的所有像素点,压缩过程分为四步:1 扫描统计像素出现的概率并按大小排列;2 建立最优二叉树;3 哈夫曼编码;4 保存编码。 2.2

5、哈弗曼解码的原理哈夫曼解码过程是文件编码过程的逆过程,由于哈夫曼编码可即时解码,因此只要得到一个码字,则通过查找哈夫曼编码表得到相应的字符,映射过程是编码时映射的逆过程。因此,每从压缩文件中读出一个码字,就从通过查找哈夫曼编码表用字符替换相应的码字,当压缩文件中所有的码字被字符替换掉,也就宣告解压过程完成了。 第 8 页第三章 数字信号的调制与解调 3.1 数字信号的调制3.1.1 调制的概念及分类用基带信号对载波(通常为余弦或正弦)波形的某些参数(如幅度、相位和频率)进行控制,使这些参数随基带信号的变化而变化。因此,数字信号的调制可分为振幅键控(ASK),相移键控(PSK),频移键控(FSK

6、)。3.1.2 调制的原理1) M进制振幅键控(MASK)基本原理M进制数字振幅调制信号的载波幅度有M种取值,在每个符号时间间隔Ts内发送M个幅度中的一种幅度的载波。表达式:a. g(t)为基带信号波形b. Ts为符号时间间隔c. an为幅度值2) M制频移键控(MFSK)基本原理表达式: 式中 为载波角频率,共有M种取值。通常可选载波频率fn/2Ts,n为正整数,此时M种发送信号相互正交。3) M进制相移键控(MPSK)基本原理表达式 : 式中a. g(t)-信号包络波形,通常为矩形波,幅度为1b. Ts-码元时间宽度c. c-载波角频率d. -第n个码元对应的相位,共有M种取值3.2 数字

7、信号的解调3.2.1 解调的概念解调也叫检波,其作用就是从接收到的已调波中无失真地恢复出调制信号。调幅信号的解调技术可大致分为两类:相关解调和非相关解调。 1) 相干解调(又称同步检波):需要在接收端知道发射载波的频率和相位(恢复相干载波以用于与接收的已调信号相乘)。其中乘机检波器也叫鉴相器,是将输入的带通信号变为基带信号的下变频电路。2) 非相干解调(又称包络检波):即不需要知道有关的信息,它的输出信号与输入信号实际包络成正比。3.2.2 解调的原理1. ASK信号的解调 2ASK相干解调方框图如图所示2. FSK信号的解调2FSK相干解调方框图如图所示3. PSK信号的解调2PSK相干解调

8、方框图如图所示第四章 图形用户界面的设计与制作 4.1 图形用户界面GUI的概述图形用户界面GUI是一种包含多种对象的图形窗口,并为GUI开发提供一个方便高效的集成开发环境GUIDE。GUIDE主要是一个界面设计工具集,MATLAB将所有GUI支持的控件都集成在这个环境中。GUIDE将设计好的GUI保存在一个FIG文件中,同时生成M文件框架。FIG文件:该文件包括GUI图形窗口及其所有FIG文件包含序列化的图形窗口对象;M文件:该文件包括GUI设计、控制函数以及定义为子函数的用户控件回调函数。GUIDE可以根据GUI设计过程直接自动生成M文件框架,优点如下:a. M文件已经包含一些必要的代码;

9、b. 管理图形对象句柄并执行回调函数子程序;c. 提供管理全局数据的途径;d. 支持自动插入回调函数原型。4.2 图形用户界面(GUI)的设计与制作1) GUI创建包括界面设计和控件编程两部分,主要步骤如下:a. 通过设置GUIDE应用程序的选项来运行GUIDE;b. 使用界面设计编辑器进行界面设计;c. 编写控件行为响应控制(即回调函数)代码。2) 图像通信系统的的图形用户界面GUI 第五章 总结参考文献附录1 图像通信在在MATLAB中算法实现1、 哈弗曼编码在MATLAB中的算法1. function ratio,rowsB,colsB,dictionary,Huffcode_I=Huf

10、fEncode(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. for i = 1:rows10. for j = 1:cols11. H(I(i,j)+1) =H(I(i,j)+1)+1;12. end1

11、3. end14. 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. for i =1:lenIndex-120. index1 = IndexCell1; 21. index2 = IndexCell2; for j =1:length(index1)22. cod

12、eWord(index1(j) = 0,codeWordindex1(j) ;23. end24. for j =1:length(index2)25. codeWord(index2(j) = 1,codeWordindex2(j) ;26. end 27. IndexCell = index1,index2,IndexCell3:end;28. Hn = sum(Hn(1:2),Hn(3:end);29. Index, Hn = sortH(Hn);30. IndexCell = IndexCell(Index);31. end32. Lavg = 0;33. for i = 1:leng

13、th(H)34. Lavg = Lavg+ H(i)* length( codeWordi);35. end36. ratio=8/Lavg; %计算压缩比37. II =I(:);38. Huffcode_I = ; % 存储图像的Huffman编码39. for i = 1:length(II)40. Huffcode_I = Huffcode_I,codeWordII(i)+1;41. end42. Huffcode_I = logical(Huffcode_I);43. dictionary=zeros(1,uint16(maxI+1)*16);%字典的传送44. A=;45. for

14、 i=1:double(maxI+1)46. num=length(codeWordi);47. Y=num;48. if num=049. for k=1:450. B=mod(Y,2);51. dictionary(16*(i-1)+(5-k)=B;52. Y=floor(Y/2);53. end54. A=codeWordi;55. for j=1:num56. dictionary(16*(i-1)+4+j)=A(j);57. end58. end59. end2、 哈弗曼编码在MATLAB中的算法如下:1. function DI = HuffDecode(rowsB,colsB,d

15、ictionary, Huffcode_I) 2. rows=0; %图像列数3. for i=1:length(rowsB)4. if rowsB(i)=05. rows=rows+2(length(rowsB)-i);6. end7. end8. cols=0; %图像行数9. for i=1:length(colsB)10. if colsB(i)=011. cols=cols+2(length(colsB)-i);12. end13. end 14. codeWord = cell(1,256); % 字典解码接收,字典解码存放码字15. for i=1:25616. num=dict

16、ionary(16*(i-1)+1)*8+dictionary(16*(i-1)+2)*4+dictionary(16*(i-1)+3)*2+dictionary(16*(i-1)+4);17. if num=018. codeWord(i)=dictionary(16*(i-1)+5):(16*(i-1)+4+num);19. end20. if length(dictionary(16*i+1):end)<121. maxI=i;22. break; 23. end24. end 25. len=length(Huffcode_I);%图像解码26. D=zeros(1,rows*c

17、ols);27. k=1;q=1;28. for q=1:rows*cols29. for i=1:maxI+130. num=length(codeWordi);31. if num=0 32. if (len-k+1)>=num33. if Huffcode_I(k:k+num-1)=codeWordi34. D(q)=i-1; %解码35. k=k+num;36. break;37. end38. end39. end40. end41. end42. DI = reshape(D,rows,cols);3、 调制在MATLAB中的算法如下:1. function eth et b

18、n = digtalmod(fs,fc,an,M,Rb,df,modType)2. Tr=fs/Rb;3. if M=24. bn = bin2decxie(an,M);5. else 6. bn=an;7. end8. N0=length(bn);9. T=N0/Rb;%N个码元的传输时间10. t=0:1/fs:T-1/fs;11. for i=1:length(bn)12. s(i-1)*Tr+1:i*Tr)=bn(i);13. end14. switch modType15. case 'ASK1'16. et = s.*cos(2*pi*fc*t); %ASK17.

19、case 'FSK2'18. et = cos(2*pi*(fc+s*df).*t);%FSK19. case 'PSK3'20. et = cos(2*pi*fc*t+s*2*pi/M); 21. end22. eth=hilbert(et);4、 解调在MATLAB中的算法如下:1. function bn0 = 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. switch modType7. 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*

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论