小波实验报告用小波函数db1,db2,db3对小波1次分解
- 格式:doc
- 大小:1.31 MB
- 文档页数:3
load leleccum;s = leleccum(1:3920);% 用db1小波函数对信号进行三尺度小波分解[C,L]=wavedec(s,2,'db1');figure(1);plot(s);title('leleccum原始信号');% 提取尺度1的低频系数cA1 = appcoef(C,L,'db1',1); %用小波分解框架[C.L]计算1层低频系数的近似值,小波基为db1% 提取尺度2的低频系数cA2 = appcoef(C,L,'db1',2);figure(2);subplot(2,1,1);plot(cA1);title('尺度1的低频系数');subplot(2,1,2);plot(cA2);title('尺度2的低频系数');% 提取尺度1的高频系数cD1 = detcoef(C,L,1); %用小波分解框架[C.L]计算1层高频系数的近似值,小波基为db1% 提取尺度2的高频系数cD2 = detcoef(C,L,2);figure(3);subplot(2,1,1);plot(cD1);title('尺度1的高频系数');subplot(2,1,2);plot(cD2);title('尺度2的高频系数');我给你大概标注了一下,但是你的程序有问题,% 小波图像压缩 - RGB 图像clear all;close all;% 读取图像im = input('输入图像');%输入图像名称,要加分号X=imread(im);% 输入要分解的小波层数和小波n=input('输入要分解的小波层数');%输入所要分解的层数wname = input('输入小波名称');%输入小波名称,也要加分号x = double(X);NbColors = 255;map = gray(NbColors);x = uint8(x);%把RGB图像转换成灰度图% x = double(X);% xrgb = 0.2990*x(:,:,1) + 0.5870*x(:,:,2) + 0.1140*x(:,:,3);% colors = 255;% x = wcodemat(xrgb,colors);% map = pink(colors);% x = uint8(x);% 对图像x进行n维小波分解x=imread(’ D:\a.jpg’);map=x;n=3wname='sym5';[c,s] = wavedec2(x,n,wname);% 使用默认参数选择各层不同的阈值alpha = 1.5; m = 2.7*prod(s(1,:));[thr,nkeep] = wdcbm2(c,s,alpha,m)% 使用上面的阈值和硬阈值处理进行图像压缩[xd,cxd,sxd,perf0,perfl2] = wdencmp('lvd',c,s,wname,n,thr,'h');disp('压缩效率');disp(perf0);% 重构(下面这个地方有问题,你这里是原始图像小波变换后进行重构,xd才是小波阀值压缩后重构的图像,cxd,sxd,是c,s经过阀值处理后得到的小波分解结构,也就是说xd=waverec2(cxd,sxd,wname);这个wdencmp函数不需要另外进行重构,你下面那些关于重构的都没用,而下面压缩后的图像才是重构后的图像,)R = waverec2(c,s,wname);rc = uint8(R);% 显示原始图像和压缩图像subplot(221), image(x);colormap(map);title('原始图像')subplot(222), image(xd);colormap(map);title('压缩后的图像')% 显示结果xlab1 = ['图像压缩后保留能量百分比',num2str(perfl2)];xlab2 = ['小波阀值压缩后置零系数百分比 ',num2str(perf0), ' %']; xlabel([xlab1 xlab2]);subplot(223), image(rc);colormap(map);title('重构图像');%计算图像大小disp('原始图像');imwrite(x,'original.tif');%将图像x保存为original.tif,下同imfinfo('original.tif')%显示图片original.tif详细信息,下同disp('压缩后的图像');imwrite(xd,'compressed.tif');imfinfo('compressed.tif')disp('重构后的图像');imwrite(rc,'decompressed.tif');imfinfo('decompressed.tif')。
小波分析专题研讨【目的】(1) 掌握正交小波分析的基本原理。
(2) 学会Haar 小波分解和重建算法,理解小波分析的物理含义。
(3) 学会用Matlab 计算小波分解和重建。
(4) 了解小波压缩和去噪的基本原理和方法。
【研讨题目】 基本题题目目的:(1)掌握小波变换分解和重建算法的基本原理和计算方法; (2)掌握小波变换中Haar 基及其基本特性; (3)学会用Haar 基进行小波分解和重建的计算。
8-1 (1)试求信号=T x [2, 2, 2, 4, 4, 4]T的Haar 小波一级变换系数]|[11T T d c 。
(2)将Haar 小波一级变换系数中的细节分量 1d 置零,试计算由系数]0|[1TT c 重建的近似信号1a , 求出x 与1a间的最大误差ε。
解:(1)[]0108642144422211000110000*********000110000001121]|[11-=⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡---=T T d c 由matlab 验证:x=[2 2 2 4 4 4]; [ca,cd]=dwt(x,'db1');得到的结果:[]0 1.4142-0 5.6569 4.2426 2.8284]|[11=TT d c(2)[]000864]0|[1=TT c[]88664421000864100100100100010010010010001001001001211=⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡---=T a 由matlab 验证:c=[4 6 8]; d=[0 0 0];x0=idwt(c,d,'db1')得到:[] 5.6569 5.65694.24264.24262.82842.8284=T x8-2 (1) 试求信号=T x [2, 2, 4, 6,−2,−2,−2, 0]T的Haar 小波三级变换系数]|||[1233T T T T d d d c 。
小波变换频域 matlab
小波变换是一种常用的信号分析工具,它将信号分解成不同频率的小波,可以用来处理非平稳的信号。
在 MATLAB 中使用小波变换进行频域分析,可以通过以下步骤来实现:
1. 加载信号数据,使用 load 命令将数据读入到 MATLAB 中。
2. 选择小波基函数,MATLAB 内置了多种小波基函数,如 haar、db1、db2 等,可根据具体需求选择不同的基函数。
3. 进行小波分解,使用 wavedec 命令对信号进行小波分解,可以得到不同频率的小波系数。
4. 对小波系数进行可视化,使用 plot 命令将小波系数绘制成图像,可以观察到不同频率的成分。
5. 进行小波重构,使用 waverec 命令对小波系数进行重构,得到复原后的信号。
6. 对复原后的信号进行频域分析,可以使用 fft 命令对信号进行傅里叶变换,得到信号的频谱图。
以上是使用小波变换进行频域分析的基本步骤和命令,需要根据具体信号和分析目的进行适当的调整和优化。
Harbin Institute of Technology上机报告课程名称:小波理论与应用院系:电信学院班级: 13硕小波1班学生:位飞13S105006 诚意21邹赛13S005016 诚意12高德奇13S005023诚意12姜希12S005106 诚意11 指导教师:李福利时间: 2014-06-09哈尔滨工业大学位 飞13S105006 电信学院 电子与通信工程 电子2班 小波1班 完成上机报告(一) 邹 赛13S005016电信学院 信息与通信工程 电子2班 小波1班 完成上机报告(二)(三) 高德奇13S005023电信学院 信息与通信工程 电子1班 小波1班 完成上机报告(四) 姜 希12S005106电信学院 信息与通信工程 电子2班 小波1班 整理上机报告(一)一.实验目的和任务已知Butterworth 滤波器,其冲击响应函数为,0()0,0t Ae t h t t α-⎧≥=⎨<⎩若若,求:1、 求()ˆhω 2、 判断是否因果;是低通、高通、带通还是带阻?3、 对于信号3()(sin 22sin 40.4sin 2sin 40),t f t e t t t t -=++0t π≤≤,画出()f t 图形4、 画出滤波后图形()f h t *,比较滤波前后图形,你会发现什么,这里取10A α==5、 取()(sin5sin3sin sin 40),t f t e t t t t -=+++采用不同的变量值A α=()10A α==初始设定,画出原信号图形与滤波后图形,比较滤波效果二.实验原理1、低通滤波器从0~f2 频率之间,幅频特性平直,它可以使信号中低于f2的频率成分几乎不受衰减地通过,而高于f2的频率成分受到极大地衰减。
2、高通滤波器与低通滤波相反,从频率f1~∞,其幅频特性平直。
它使信号中高于f1的频率成分几乎不受衰减地通过,而低于f1的频率成分将受到极大地衰减。
matlab 小波包分解摘要:1.引言2.Matlab 简介3.小波包分解的基本概念4.小波包分解在Matlab 中的实现5.小波包分解的应用案例6.总结正文:1.引言Matlab 是一款广泛应用于科学计算和数据分析的软件,提供了丰富的工具箱和函数,方便用户进行各种计算和分析。
在本文中,我们将介绍如何使用Matlab 进行小波包分解。
2.Matlab 简介Matlab 是一款由美国MathWorks 公司开发的数学软件,自1984 年问世以来,凭借其强大的数值计算和数据分析功能,迅速成为全球科研人员和工程师的必备工具。
Matlab 提供了丰富的工具箱和函数,涵盖了信号处理、图像处理、控制系统、优化等多个领域。
3.小波包分解的基本概念小波包分解是一种信号分解方法,它将信号分解成一系列不同尺度、不同方向的小波函数的线性组合。
小波包分解具有多尺度分析的特点,能够有效地提取信号的时频信息。
与传统的小波分解方法相比,小波包分解具有更高的时频分辨率。
4.小波包分解在Matlab 中的实现在Matlab 中,可以使用Wavelet Toolbox 提供的函数进行小波包分解。
以下是使用Matlab 进行小波包分解的基本步骤:(1) 安装Wavelet Toolbox:首先需要安装Wavelet Toolbox,可以在Matlab 命令窗口中输入“verifywtool”命令进行安装。
(2) 选择合适的小波基函数:在Matlab 中,提供了多种小波基函数,如Haar 小波、Daubechies 小波等。
选择合适的小波基函数有助于获得更好的信号分解效果。
(3) 进行小波包分解:在Matlab 中,可以使用“wavedec”函数对信号进行小波包分解。
例如,对于一个一维信号x,可以使用如下命令进行小波包分解:```matlab[C, L] = wavedec(x, 3, "db2");```其中,3 表示分解的层数,"db2"表示使用Daubechies 小波基函数。
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==小波实验报告篇一:小波分析实验报告小波分析实验报告姓名班级:学号:成绩: 教师签名篇二:小波课程实验报告小波变换与信号时频分析实验报告院班级:姓名:学号:指导老师:哈尔滨工业大学二维图像信号的小波分解与重构1.1 实验目的结合小波多分辨率分解与重构原理,掌握利用MATLAB实现二维图像信号小波分解与重构的具体实现方法,重点理解二维图像信号分解与重构过程中小波基选择、图像信号边缘延拓方式对于分解和重构质量的影响,进而加深对于小波正交特性、完善重建特性的理解。
1.2 实验内容主要利用MATLAB提供的小波工具箱Wavelet Toolbox实现小波分解与重构,具体包括:(1)小波基的选择(要求三种以上小波基)(2)延拓方式的选择(3)分解过程中的抽样与非抽样(4)重构结果的分析,要求分析不同小波基、不同延拓方式、抽样/非抽样对于小波重构的影响(5)分析小波对于图像信号表示的方向特性1.3 实验步骤1. 小波变换Matlab实现编程实现图片的分解与重构,程序如下:dwtmode('zpd');X=imread('BARB.BMP');X=im2double(X);nbcol = 255;[cA1,cH1,cV1,cD1] = dwt2(X,'haar');cod_X=wcodemat(X,nbcol);cod_cA1=wcodemat(cA1,nbcol);cod_cH1=wcodemat(cH1,nbcol);cod_cV1=wcodemat(cV1,nbcol);cod_cD1=wcodemat(cD1,nbcol);dec2d = [cod_cA1,cod_cH1;cod_cV1,cod_cD1];X1=idwt2(cA1,cH1,cV1,cD1,'haar');cod_X1=wcodemat(X1,nbcol);subplot(221);imshow(X,[],'InitialMagnification','fit');title('orig image');subplot(222);imshow(dec2d,[],'InitialMagnification','fit');title('dec image');subplot(223);imshow(cod_cA1,[],'InitialMagnification','fit');title('appro image');subplot(224);imshow(cod_X1,[],'InitialMagnification','fit');title('syn image');在Zero-padding延拓方式下,分别取Haar、db3、sym小波基得到的图像分解与重构的结果如下:1) Haar小波基orig imagedec imageappro imagesyn image2) Db3小波基orig imagedec imageappro imagesyn image3) Sym3小波基orig imagedec imageappro imagesyn image在采用db4小波实现图像的分析和重构,分别采用四种不同的延拓方式,得到的的结果如下:1) extension mode为Zero-padding模式,分解与重构的结果为orig imagedec imageappro imagesyn image。
小波变换是克服其他信号处理技术缺陷的一种分析信号的方法。
小波由一族小波基函数构成,它可以描述信号时间(空间)和频率(尺度)域的局部特性。
采用小波分析最大优点是可对信号进行实施局部分析,可在任意的时间或空间域中分析信号。
小波分析具有发现其他信号分析方法所不能识别的、隐藏于数据之中的表现结构特性的信息,而这些特性对机械故障和材料的损伤等识别是尤为重要的。
如何选择小波基函数目前还没有一个理论标准,常用的小波函数有Haar、Daubechies(dbN)、Morlet、Meryer、Symlet、Coiflet、Biorthogonal 小波等15种。
但是小波变换的小波系数为如何选择小波基函数提供了依据。
小波变换后的系数比较大,就表明了小波和信号的波形相似程度较大;反之则比较小。
另外还要根据信号处理的目的来决定尺度的大小。
如果小波变换仅仅反映信号整体的近似特征,往往选用较大的尺度;反映信号细节的变换则选用尺度不大的小波。
由于小波函数家族成员较多,进行小波变换目的各异,目前没有一个通用的标准。
根据实际运用的经验,Morlet小波应用领域较广,可以用于信号表示和分类、图像识别特征提取;墨西哥草帽小波用于系统识别;样条小波用于材料探伤;Shannon正交基用于差分方程求解。
现在对小波分解层数与尺度的关系作如下解释:是不是小波以一个尺度分解一次就是小波进行一层的分解?比如:[C,L]=wavedec(X,N,'wname')中,N为尺度,若为1,就是进行单尺度分解,也就是分解一层。
但是W=CWT(X,[2:2:128],'wname','plot')的分解尺度又是从2~128以2为步进的,这里的“分解尺度”跟上面那个“尺度”的意思一样吗?[C,L]=wavedec(X,N,'wname')中的N为分解层数, 不是尺度,'以wname'是DB小波为例, 如DB4, 4为消失矩,则一般滤波器长度为8, 阶数为7.wavedec针对于离散,CWT是连续的。
解读matlab 之小波库函数南京理工大学仪器科学与技术专业 谭彩铭2010-4-2使用的matlab 软件版本为matlab7.11 dwt 函数dwt 函数是单尺度一维小波变换函数。
dwt 函数执行过程中调用了函数conv2,这个函数是运算的关键,需要首先明白conv2函数的执行过程。
要明白conv2函数,需要先明白conv 函数。
对w = conv(u,v)运算 Let m = length(u) and n = length(v). Then w is the vector of length m+n-1 whose kth element is式(1)假设h=[h(1) h(2) h(3) h(4)],x=[x(1) x(2) x(3) x(4) x(5) x(6) x(7)],为更直接地表达y=conv(h,x)的计算过程,作如下示意图。
其中length(y)=7+4-1。
图1对c=conv2(a,b)运算这里,a 和b 为一维或二维矩阵,其计算过程可由下式表示1212121122(,)(,)(1,1)k k c n n a k k b n k n k =+-+-∑∑式(2)The size of c in each dimension is equal to the sum of the corresponding dimensions of the input matrices, minus one. That is, if the size of a is [ma,na] and the size of b is [mb,nb], then the size ofC is [ma+mb-1,na+nb-1].其计算过程可以由下表表示 c(1,:)conv(a(1,:),b(1,:)) c(2,:)conv(a(1,:),b(2,:))+ conv(a(2,:),b(1,:)) c(3,:)conv(a(1,:),b(3,:))+ conv(a(2,:),b(2,:)) +conv(a(3,:),b(1,:)) …………下面研究一下conv2函数中的‘valid’参数的用法。
基于Matlab 的小波分析摘要:时间(空间)和频率是表示信号特征的重要方式。
小波变换是一种时间—尺度分析方法,它克服了短时傅里叶变换在单分辨率上的缺陷,具有多分辨率分析的特点,在时域和频域都有表征信号局部信息的能力,时间窗和频率窗都可以根据信号的具体形态动态调整,在一般情况下,低频部分(信号较平稳)可以采用较低的时间分辨率,而提高频率的分辨率。
在高频情况下(频率变化不大)可以用较低的频率分辨率来换取精确的时间定位。
因为这些特点,小波分析可以探测正常信号中的瞬态,并展示其频率成分,广泛应用于各个时频分析领域。
正文:用傅里叶表示一个信号时,只有频率分辨率而没有时间分辨率,这就意味着我们可以确定信号中包含的所有频率,但不能确定具有这些频率的信号出现在什么时候。
而小波变换可以弥补傅里叶变换的不足。
小波是定义在有限间隔且平均值为零的一种函数。
小波变换的基本思想是用一族函数去表示或逼近一信号或函数,这一族函数称为小波函数系,它是通过一基本小波的平移和伸缩构成的,用其变换系数即可描述原来信号。
小波变换是一种积分变换,是将时间函数变换到时间—尺度相平面上的变换。
它是信号 f(t)与被缩放和平移的小波函数Ψ之积在信号存在的整个期间求和。
连续小波变换:连续小波变换的结果是许多小波系数C (C 是缩放因子a 与位置b 的函数)。
尺度a 、位移b 均连续变化,导致不同点的小波变换系数C ψ具有“相关性”,即连续小波变换是“冗余”的,即存在再生核),,,(11b b a a K ⨯。
由此说明(a1,b1)处的小波变换Wf (a1,b1)可以由(a,b) 处的小波变换Wf (a,b )表示。
离散小波变换:在不丢失原信号ƒ(t)信息的基础上,尽量减小小波变换系数的冗余度。
参数的离散化与离散小波变换• 尺度参数a 的离散化取ja a 0=,j=0,±1, ±2…,则相应的小波函数为⋅⋅⋅±±=---2,1,0)),((0210j b t a a j ϕ, • 位移参数b 的离散化位移参数b 按照相应尺度参数的变化规律而变化, 以覆盖整个时间轴,则小波函数在时间轴上的位移量b0应是尺度整数倍,则离散化后且不会损失信息的小波函数。
常用小波基函数目前主要通过用小波分析方法处理信号的结果与理论结果的误差来判定小波基的好坏,并由此选定小波基。
根据不同的标准,小波函数具有不同的类型,标准通常有:1)小波函数和尺度函数的支撑长度。
2)对称性。
在图像处理中对于避免移相是非常有用的。
3)小波函数和尺度函数的消失矩阶数。
4)正则性。
对于信号或图像的重构以获得较好的平滑效果是非常有用的。
可以通过waveinfo函数获得工具箱中小波函数的主要性质。
小波函数和尺度函数可以通过wavefun函数计算,滤波器可以通过wfilters函数产生。
1、haar函数是小波分析中最早用到的一个具有紧支撑的正交小波基函数,同时也是最简单的一个函数。
2、morlet函数的尺度函数不存在,其本身不具有正交性。
3、墨西哥草帽函数在时域和频域有很好的局部化,不具有正交性。
4、Meyer小波的小波函数和尺度函数都是在频域中进行定义的,是具有紧支撑的正交小波。
5、Daubechies小波系,简称dbN,它的db1是haar小波,其他小波没有明确的表达式,dbN函数是紧支撑标准正交小波,它的出现使离散小波分析成为可能。
dbN大多不具有对称性,对于正交小波函数,不对称性是非常明显的。
正则性随着N的增加而增加。
6、Biorthogonal小波系,简称biorNr.Nd。
它主要应用在信号与图像的重构中,通常的用法是采用一个函数进行分解,用另外一个小波函数进行重构,可以解决分解与重构,对称性和重构的精确性成为一对矛盾的问题。
Nr为重构,Nd为分解。
7、Coiflet小波系,简称coifN,是由db构造的一个小波函数,具有比dbN更好的对称性。
从支撑长度的角度看,coifN具有和db3N、sym3N相同的支撑长度,从消失矩的数目来看,具有和db2N、sym2N相同的消失矩数目。
8、Symlets小波系,简称symN,是由db改进的一种函数,是金丝对称的。
一、题目:用小波函数db1,db2,db3对小波1次分解
二、目的:编程实现信号的分解与重构并对比db1,db2,db3几种小波变换
三、算法及其实现:离散小波变换
离散小波变换是对信号的时-频局部化分析,其定义为:/2200()(,)()(),()()jjWfjkaftatkdtftLR
本实验实现对信号的分解与重构:
(1)信号分解:用小波工具箱中的dwt函数来实现离散小波变换,函数dwt将信号分解为两部分,分别称为逼
近系数和细节系数(也称为低频系数和高频系数),实验中分别记为cA1,cD1,它们的长度均为原始信号的一半,但
dwt只能实现原始信号的单级分解。在本实验中使用小波函数db1来实现单尺度小波分解,即:
[cA1,cD1]=dwt(s,’db1’),其中s是原信号;
(2)信号重构:用小波工具箱中的upcoef来实现,upcoef是进行一维小波分解系数的直接重构,即:
A1 = upcoef('a',cA1,'db1'); D1 = upcoef('a',cD1,'db1')。
四、实现工具:
Matlab
五、程序代码:
%装载leleccum信号
load leleccum;
s = leleccum(1:3920);
%用小波函数db1对信号进行单尺度小波分解
[cA1,cD1]=dwt(s,'db1');
subplot(3,3,1);
plot(s);
title('leleccum原始信号');
%单尺度低频系数cA1向上一步的重构信号
A1 = upcoef('a',cA1,'db1');
%单尺度高频系数cD1向上一步的重构信号
D1 = upcoef('a',cD1,'db1');
subplot(3,3,4);
plot(A1);
title('单尺度低频系数cA1向上一步的重构信号');
subplot(3,3,7);
plot(D1);
title('单尺度高频系数cD1向上一步的重构信号');
%%用小波函数db2对信号进行单尺度小波分解
[cA2,cD2]=dwt(s,'db2');
subplot(3,3,2);
plot(s);
title('leleccum原始信号');
%单尺度低频系数cA1向上一步的重构信号
A2 = upcoef('a',cA1,'db2');
%单尺度高频系数cD1向上一步的重构信号
D2 = upcoef('a',cD1,'db2');
subplot(3,3,5);
plot(A2);
title('单尺度低频系数cA2向上一步的重构信号');
subplot(3,3,8);
plot(D2);
title('单尺度高频系数cD2向上一步的重构信号');
%%用小波函数db3对信号进行单尺度小波分解
[cA3,cD3]=dwt(s,'db3');
subplot(3,3,3);
plot(s);
title('leleccum原始信号');
%单尺度低频系数cA1向上一步的重构信号
A3 = upcoef('a',cA1,'db3');
%单尺度高频系数cD1向上一步的重构信号
D3 = upcoef('a',cD1,'db3');
subplot(3,3,6);
plot(A3);
title('单尺度低频系数cA3向上一步的重构信号');
subplot(3,3,9);
plot(D3);
title('单尺度高频系数cD3向上一步的重构信号');
六、运行结果:
七、结果分析: