哈工大小波分析上机实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
小波分析上机实验报告
院系:电气工程及自动化学院
学科:仪器科学与技术
实验一小波分析在信号压缩中的应用
一、试验目的
(1)进一步加深对小波分析进行信号压缩的理解;
(2)学习Matlab中有关信号压缩的相关函数的用法。
二、相关知识复习
用一个给定的小波基对信号进行压缩后它意味着信号在小波阈的表示相对缺少了一些信息。之所以能对信号进行压缩是因为对于规则的信号可以用很少的低频系数在一个合适的小波层上和一部分高频系数来近似表示。
利用小波变换对信号进行压缩分为以下几个步骤来完成:
(1)进行信号的小波分解;
(2)将高频系数进行阈值量化处理。对从1 到N 的每一层高频系数都可以选择不同的阈值并且用硬阈值进行系数的量化;
(3)对量化后的系数进行小波重构。
三、实验要求
(1)对于某一给定的信号(信号的文件名为leleccum.mat),利用小波分析对信号进行压缩处理。
(2)给出一个图像,即一个二维信号(文件名为wbarb.mat),利用二维小波分析对图像进行压缩。
四、实验结果及程序
(1)load leleccum
%将信号装入Matlab工作环境
%设置变量名s和ls,在原始信号中,只取2600-3100个点
s = leleccum(2600:3100); ls = length(s);
%用db3对信号进行3级小波分解
[c,l] = wavedec(s, 3, 'db3');
%选用全局阈值进行信号压缩
thr = 35;
[xd,cxd,lxd,perf0,perfl2] = wdencmp('gbl',c,l,'db3',3,thr,'h',1);
subplot(2,1,1);plot(s);
title('原是信号s');
subplot(2,1,2);plot(xd);
title('压缩后的信号xd');
图1 实验1压缩结果
图2 不同阈值下实验1压缩结果
(2)clear %清除Matlab工作环境中现有的变量
load wbarb;
%显示图像
subplot(221); image(X); colormap(map);
title('原始图像');
axis square;
disp('压缩前图像X的大小')
whos('X')
%==================================================== %对图像用bior3.7小波进行2层小波分解
[c,s] = wavedec2(X,2,'bior3.7');
%提取小波分解结构中第1层的低频系数和高频系数
ca1 = appcoef2(c,s,'bior3.7',1);
ch1 = detcoef2('h',c,s,1); %小波分解结构中第1层的水平方向高频系数cv1 = detcoef2('v',c,s,1); %小波分解结构中第1层的垂直方向高频系数cd1 = detcoef2('d',c,s,1); %小波分解结构中第1层的斜线方向高频系数%分别对小波分解结构中第1层的各频率成份进行重构
a1 = wrcoef2('a',c,s,'bior3.7',1);
h1 = wrcoef2('h',c,s,'bior3.7',1);
v1 = wrcoef2('v',c,s,'bior3.7',1);
d1 = wrcoef2('d',c,s,'bior3.7',1);
c1 = [a1,h1;v1,d1];
%显示分解后各频率成分的信息
subplot(222);image(c1);
axis square
title('分解后低频和高频信息');
%==================================================== %下面进行图像的压缩处理
%保留小波分解结构中第1层的低频信息,进行图像压缩
%第1层的低频信息为ca1,显示第1层的低频信息
%首先对第1层信息进行量化编码
ca1 = wcodemat(ca1,440,'mat',0);
%改变图像的亮度
ca1 = 0.5*ca1;
subplot(223);image(ca1);colormap(map);
axis square;
title('第一次压缩图像');
disp('第一次压缩图像的大小为:')
whos('ca1')
%==================================================== %保留小波分解第二层低频信息,进行图像的压缩,此时压缩比更大%第2层的低频信息即为ca2,显示第2层的低频信息
ca2 = appcoef2(c,s,'bior3.7',2);
%首先对第2层低频信息进行量化编码
ca2 = wcodemat(ca2,440,'mat',0);
%改变图像的亮度
ca2 = 0.25*ca2;
subplot(224);image(ca2);colormap(map);
axis square;
title('第2次压缩图像');
disp('第2次压缩图像的大小为');
whos('ca2')
图3 实验2压缩结果
五、实验分析及结论
(1)根据实验1压缩结果分析得到,压缩后的信号保持了原有信号的轮廓信息,即低频信息,而大部分细节信息(高频信息)得到了消除。原有信号中的高频信息可能是噪声,也可能是信号本身,所以通过合理的选择阈值,可以得到不同的滤波效果或者是压缩效果。
(2)实验2是进行2维图像的压缩,根据压缩结果,原始图像大小为
256*256,第一次压缩大小为135*135,第二次压缩大小为75*75。显然,经过小波分解后得到了一系列的不同分辨率的图像,分解层数越多,低频区间越小,所提取的图像的信息越少,即图像压缩比也大。但是,带来的结果是随着分解层数的增加,图像的质量越来越差。因而,在对压缩比和图像质量都有较高要求时,只保留原始图像的低频信息是不够的,必须采用其他的编码方法。