首先应明白连续或不连续多指数学的概念而已,应用中的信号都是离散的,只是你的采样足够高就可认为是连续的,所以小波变换中关心的是点数问题,而不关心信号是否连续。对于CWT或DWT其连续与否不是指分析信号,而是你说的a或b的问题,但你仍可以借鉴上面对于信号连续的理解。CWT中a是连续的,b其实就是点数,也可认为是连续的。最早的DWT是没有mallat算法的,那时a是以2的幂次方变化离散,b却是连续变化的,即二进小波变换。这种变换很鸡肋,还不如直接做CWT。DWT的应用之所以远远多于CWT就是引入了mallat算法,好处是终于可以分解和重构信号了,这种方式对信号特征的研究非常有利。DWT的核心思想其实就是CWT引出的伸缩和平移的概念,a以2的幂次方变化实现了小波的伸缩,b通过下抽样实现了小波的平移。从实际应用中进行小波变换的目的和效果来看,cwt中2/4/8/16/32的小波系数结果应该对应DWT中的阶次(层数)1/2/3/4/5的小波细节系数(或更准确的是重构后的小波细节,因为cwt的系数个数是不变的等于原信号长度,但DWT细节系数是每层近似减半的,重构后才会等长,b也是姑且认为是减半的不连续吧)。
再追问吧,第二问题可能更多,我尽量精简。哎,干嘛要把问题写在一起,这就是麻烦啊,你必须追问我才能再写!
如果只要得到小波系数,可以1D直接使用wavedec (2D使用wavedec2)函数进行分解,得到分解结果的CL组构(2D得到CS组构),然后用appcoef和detcoef(2D使用appcoef2和detcoef2)函数提取细节和逼近小波系数,你可以直接参看matlab的帮助文档,非常简单。
相关工具包没有安装,我的就没啥事
可以得到以下
WAVEDEC Multi-level 1-D wavelet decomposition
WAVEDEC performs a multilevel 1-D wavelet analysis
using either a specific wavelet 'wname' or a specific set
of wavelet decomposition filters (see WFILTERS)
[C,L] = WAVEDEC(X,N,'wname') returns the wavelet
decomposition of the signal X at level N, using 'wname'
N must be a strictly positive integer (see WMAXLEV)
The output decomposition structure contains the wavelet
decomposition vector C and the bookkeeping vector L
For [C,L] = WAVEDEC(X,N,Lo_D,Hi_D),
Lo_D is the decomposition low-pass filter and
Hi_D is the decomposition high-pass filter
The structure is organized as:
C = [app coef(N)|det coef(N)| |det coef(1)]
L(1) = length of app coef(N)
L(i) = length of det coef(N-i+2) for i = 2,,N+1
L(N+2) = length(X)
See also dwt, waveinfo, waverec, wfilters, wmaxlev
Reference page in Help browser
doc wavedec
你可以重装的全的或者下个小波的工具包set path设置下路径就行了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)