主要内容

连续一维小波变换

看到的旧版本的信息.不再推荐使用旧版本。

描述

例子

wt=类(x的连续小波变换(CWT)x.输入,x,是实值或复值向量,或单变量规则采样时间表,且必须至少有四个样本。CWT是利用对称参数(gamma) = 3,时带宽积= 60的解析莫尔斯小波得到的。每八度使用10个声音。根据小波在频率和时间上的能量分布自动确定最小和最大尺度。如果x实值,wt是一个二维矩阵,其中每一行对应一个尺度。的列大小wt等于的长度x.如果x是复数,wt为三维矩阵,其中第一页为正尺度(解析部分或逆时针分量)的CWT,第二页为负尺度(反解析部分或顺时针分量)的CWT。

函数使用L1归一化。通过L1归一化,如果你在不同尺度的数据中有等幅振荡分量,它们在CWT中就会有相等的幅值。使用L1归一化可以更准确地表示信号。看到CWT的L1范数而且两个复指数的连续小波变换

wt=类(xwname所指定的解析小波wname来计算CWT。有效的选项wname“莫尔斯”“爱”,“撞”,分别指定Morse、Morlet (Gabor)和bump小波。如果您没有指定wnamewname默认为“莫尔斯”

例子

wtf= cwt(<年代pan class="argument_placeholder">___fs指定采样频率,fs,以Hz为正标量。使用fs来确定比例到频率的转换并返回频率f在赫兹。如果不指定采样频率,返回f以周期为单位。如果输入x是复杂的,比例到频率转换适用于两个页面wt.如果x是时间表,你不能指定吗fsfs由时间表的RowTimes确定。

wt= cwt(<年代pan class="argument_placeholder">___ts采样周期,ts,作为积极的持续时间标量。的持续时间可以是年、天、小时、分钟或秒。使用ts计算比例到周期的转换,并返回中的时间段.中的持续时间数组格式属性与ts.如果输入x是复杂的,比例到周期转换适用于两个页面wt.如果x是时间表,你不能指定吗tsts是由时间表的RowTimes确定的,当您设置“PeriodLimits”名称-值对。

例子

wtf细胞色素氧化酶= cwt(<年代pan class="argument_placeholder">___fs)返回影响锥,细胞色素氧化酶,这显示了CWT的边缘效应变得显著的地方。CWT的影响锥以Hz为单位。如果输入x是复杂的,影响锥适用于两页wt

wt细胞色素氧化酶= cwt(<年代pan class="argument_placeholder">___ts)返回影响锥,细胞色素氧化酶,这显示了CWT的边缘效应变得显著的地方。CWT的影响锥是以周期为单位的。如果输入x是复杂的,影响锥适用于两页wt

[<年代pan class="argument_placeholder">___= cwt(<年代pan class="argument_placeholder">___,名称,值返回带有一个或多个指定的附加选项的CWT名称,值对参数。

[<年代pan class="argument_placeholder">___细胞色素氧化酶神奇动物= cwt(<年代pan class="argument_placeholder">___)返回CWT中使用的滤波器组。看到cwtfilterbank

[<年代pan class="argument_placeholder">___神奇动物scalingcfs= cwt(<年代pan class="argument_placeholder">___)如果分析的小波为,则返回比例系数“莫尔斯”“爱”.凹凸小波不支持缩放系数。万博1manbetx

例子

类(<年代pan class="argument_placeholder">___在没有输出参数的情况下绘制CWT标量图。标量图是CWT作为时间和频率的函数绘制的绝对值。频率以对数刻度绘制。还绘制了显示边缘效应变得显著的影响锥。白虚线外的灰色区域描绘了边缘效应显著的区域。如果输入信号是复值的,则正分量(逆时针方向)和负分量(顺时针方向)在单独的标量图中绘制。

如果不指定采样频率或采样周期,则频率以每个样本的周期为单位绘制。如果指定采样频率,则频率单位为Hz。如果指定采样周期,则标量图将作为时间和周期的函数绘制。如果输入信号是时间表,则将标量图绘制为时间和频率的函数(以赫兹为单位),并使用RowTimes作为时间轴的基础。

若要查看标量图点的时间、频率和大小,请在图轴工具栏中启用数据提示,并单击标量图中的所需点。

请注意

在策划之前,清除(clf)目前的数字。若要在子图中绘制标量图,请使用绘图函数。看到在Subplot中绘制CWT标量图

例子

全部折叠

使用默认值获取语音样本的连续小波变换。

负载<年代pan style="color:#A020F0">mtlb;W = cwt(mtlb);

使用bump小波代替默认的Morse小波获得语音样本的连续小波变换。

负载<年代pan style="color:#A020F0">mtlb类(mtlb<年代pan style="color:#A020F0">“撞”Fs)

图中包含一个轴。标题为Magnitude scalalogram的轴包含图像、直线、区域3个类型的对象。

比较使用默认莫尔斯小波从CWT得到的结果。

类(mtlb Fs)

图中包含一个轴。标题为Magnitude scalalogram的轴包含图像、直线、区域3个类型的对象。

获得神户地震资料的CWT。数据为1995年1月16日20时56分51秒(格林尼治标准时间)在澳大利亚霍巴特塔斯马尼亚大学记录的地震仪(垂直加速度,纳米/平方秒)测量数据,持续51分钟。采样频率为1hz。

负载<年代pan style="color:#A020F0">科比

绘制地震数据。

阴谋(1:元素个数(科比)。/ 60,科比)包含(<年代pan style="color:#A020F0">“分钟”) ylabel (<年代pan style="color:#A020F0">《纳米/ s ^ 2》网格)<年代pan style="color:#A020F0">在标题(<年代pan style="color:#A020F0">“神户地震资料”)

图中包含一个轴。标题为“神户地震数据”的轴包含一个类型为line的对象。

获得CWT、频率和影响锥。

[wt,f,coi] = cwt(神户,1);

绘制数据,包括影响锥。

类(科比,1)

图中包含一个轴。标题为Magnitude scalalogram的轴包含图像、直线、区域3个类型的对象。

通过指定采样周期而不是采样频率,可以获得CWT、时间段和影响锥。

[wt,周期,coi] = cwt(科比,分钟(1/60));

通过指定采样周期而不是频率来查看相同的数据。

类(科比、分钟(1/60))

图中包含一个轴。标题为Magnitude scalalogram的轴包含图像、直线、区域3个类型的对象。

创建两个不同振幅的复指数,频率分别为32和64 Hz。数据采样频率为1000hz。两个复指数在时间上有不相交的支持。万博1manbetx

Fs = 1e3;t = 0:1/Fs:1;z = exp(1 * 2 *π* 32 * t)。* (t > = 0.1 & t < 0.3) + 2 * exp(1 * 2 *π* 64 * t)。* (t > 0.7);

添加标准偏差为0.05的复高斯白噪声。

wgnNoise = 0.05 /√(2)* randn(大小(t)) + 1 * 0.05 /√(2)* randn(大小(t));z = z+wgnNoise;

使用莫尔斯小波获得并绘制cwt。

类(z, Fs)

图包含2个轴。轴1标题为幅值标量正分量(逆时针旋转)包含图像、直线、区域类型的3个对象。轴2与标题负组件(顺时针旋转)包含3个对象类型的图像,线,区域。

请注意,颜色条中复指数分量的大小本质上是它们的振幅,尽管它们在不同的尺度上。这是L1归一化的直接结果。您可以通过执行此脚本并使用数据游标查看每个子图来验证这一点。

这个例子表明,信号中振荡分量的振幅与相应小波系数的振幅一致。

在时间上创建一个由两个不相交的正弦信号组成的信号。万博1manbetx一个正弦波的频率为32hz,振幅为1。另一个正弦波的频率为64hz,振幅为2。信号以1000hz的频率采样1秒。画出信号。

Frq1 = 32;Amp1 = 1;Frq2 = 64;Amp2 = 2;Fs = 1e3;t = 0:1/Fs:1;x = amp1 * sin(2 *π* frq1 * t) * (t > = 0.1 & t < 0.3) + amp2 *罪(2 *π* frq2 * t) * 0.6 (t > & t < 0.9);情节(t, x)网格<年代pan style="color:#A020F0">在包含(<年代pan style="color:#A020F0">的时间(秒)) ylabel (<年代pan style="color:#A020F0">“振幅”)标题(<年代pan style="color:#A020F0">“信号”)

图中包含一个轴。标题为Signal的轴包含一个line类型的对象。

创建一个可应用于信号的CWT滤波器组。由于信号分量频率是已知的,所以将滤波器组的频率限制设置为包括已知频率的狭窄范围。为了确定范围,绘制滤波器组的幅值频率响应。

Fb = cwtfilterbank(<年代pan style="color:#A020F0">“SignalLength”元素个数(x),<年代pan style="color:#A020F0">“SamplingFrequency”Fs,<年代pan style="color:#0000FF">...“FrequencyLimits”[100]);图freqz (fb)

图中包含一个轴。标题为CWT Filter Bank的轴包含24个类型为line的对象。

使用和滤波器组来绘制信号的标量图。

类图(x,<年代pan style="color:#A020F0">“FilterBank”fb)

图中包含一个轴。标题为Magnitude scalalogram的轴包含图像、直线、区域3个类型的对象。

执行这个脚本并使用数据游标来确认小波系数的振幅本质上等于正弦分量的振幅。

这个例子展示了在计算多个时间序列的CWT时,如何使用CWT滤波器组来提高计算效率。

载入1995年神户地震记录的地震仪数据。数据是1995年1月16日在澳大利亚霍巴特的塔斯马尼亚大学记录的地震仪(垂直加速度,纳米/平方秒)测量数据,从20:56:51(格林尼治标准时间)开始,以1秒为间隔持续51分钟。创建一个可以应用于数据的CWT过滤器组。

负载<年代pan style="color:#A020F0">科比Fb = cwtfilterbank(<年代pan style="color:#A020F0">“SignalLength”元素个数(科比),<年代pan style="color:#A020F0">“SamplingFrequency”1);

使用函数,取数据250次的CWT。显示所使用的时间。

Num = 250;抽搐;<年代pan style="color:#0000FF">为K =1:num CFS = cwt(神户);<年代pan style="color:#0000FF">结束toc
运行时间为6.551628秒。

现在使用wt滤波器组的对象函数取数据的CWT。确认使用过滤器组更快。

抽搐;<年代pan style="color:#0000FF">为K =1:num CFS = wt(fb,kobe);<年代pan style="color:#0000FF">结束toc
运行时间为3.782376秒。

这个例子展示了如何使用生成的CUDA代码生成一个MEX文件来执行连续小波变换(CWT)。

首先,确保您有一个支持cuda的GPU和NVCC编译器。看到图形处理器环境检查和设置应用程序(GPU编码器)确保你有正确的配置。

创建GPU编码器配置对象。

cfg = code . gpuconfig (<年代pan style="color:#A020F0">墨西哥人的);

生成1000hz下100,000个样本的信号。信号由两个时间支持不相交的余弦波组成。万博1manbetx

T = 0:.001:(1e5*0.001)-0.001;X = cos(2* *32*t)*(t > 10 & t<=50)+cos(2* *64*t)。*(t >= 60 & t < 90)+<年代pan style="color:#0000FF">...0.2 * randn(大小(t));

使用单精度铸造信号。GPU计算通常在单精度下更有效。如果你的NVIDIA GPU支持,你也可以生成双倍精度的代码。万博1manbetx

X =单(X);

生成GPU MEX文件和代码生成报告。为了允许生成MEX文件,您必须指定三个输入参数的属性(类、大小和复杂度):

  • coder.typeof(单(0)1 e5 [1])指定长度为100,000的包含实数的行向量值。

  • 编码器。typeof('c',[1 inf])指定任意长度的字符数组。

  • coder.typeof (0)指定一个实数价值。

codegen<年代pan style="color:#A020F0">类配置cfgarg游戏{coder.typeof(单(0)1 e5[1]),编码器。typeof(“c”,[1正]),coder.typeof (0)}报告
代码生成成功:要查看报告,打开('codegen/mex/cwt/html/report.mldatx')。

-report标志是可选的。使用报告生成代码生成报告。在<年代tr在g class="emphasis bold">总结在报表的TAB中,可以找到<年代tr在g class="emphasis bold">GPU代码度量链接,它提供了详细的信息,如生成的CUDA内核的数量和分配了多少内存。

在数据上运行MEX文件并绘制标量图。确认图与两个不相交的余弦波一致。

[cfs,f] = cwt_mex(x,<年代pan style="color:#A020F0">“莫尔斯”1 e3);图像(<年代pan style="color:#A020F0">“XData”t<年代pan style="color:#A020F0">“YData”f<年代pan style="color:#A020F0">CData的、abs (cfs)、<年代pan style="color:#A020F0">“CDataMapping”,<年代pan style="color:#A020F0">“缩放”甘氨胆酸)组(,<年代pan style="color:#A020F0">“YScale”,<年代pan style="color:#A020F0">“日志”)轴<年代pan style="color:#A020F0">紧包含(<年代pan style="color:#A020F0">“秒”) ylabel (<年代pan style="color:#A020F0">“赫兹”)标题(<年代pan style="color:#A020F0">双音信号的CWT)

运行上面的CWT命令,但不附加_mex.确认MATLAB和GPU的MEX标度图一致。

[cfs2,f2] = cwt(x,<年代pan style="color:#A020F0">“莫尔斯”1 e3);马克斯(abs (cfs2 (:) cfs (:)))
Ans =单6.7583e-07

这个例子展示了当您获得一个没有输出参数的图时,如何更改CWT的默认频率轴标签。

创建两个频率为32和64赫兹的正弦波。数据采样频率为1000hz。两个正弦波在时间上有不相交的支撑。万博1manbetx添加标准偏差为0.05的高斯白噪声。使用默认的莫尔斯小波获取并绘制CWT。

Fs = 1e3;t = 0:1/Fs:1;x = cos(2 *π* 32 * t) * (t > = 0.1 & t < 0.3) +罪(2 *π* 64 * t) * (t > 0.7);wgnNoise = 0.05*randn(size(t));x = x+wgnNoise;类(x, 1000)

图中包含一个轴。标题为Magnitude scalalogram的轴包含图像、直线、区域3个类型的对象。

该图使用对数频率轴,因为CWT中的频率是对数的。在MATLAB中,对数轴以10(几十)的幂为单位。你可以使用cwtfreqbounds确定给定信号长度、采样频率和小波的最小和最大小波带通频率。

[minf,maxf] = cwtfreqbounds(数字(x),1000);

你可以看到MATLAB默认将频率刻度设置为10和100因为这是最小频率和最大频率之间10的幂。如果您希望添加更多的频率轴刻度,您可以使用以下方法获得最小频率和最大频率之间的对数间隔频率集。

Numfreq = 10;Freq = logspace(log10(minf),log10(maxf),numfreq);

接下来,获取当前轴的句柄,并将频率轴刻度和标签替换为以下内容。

AX = gca;斧子。YTickLabelMode =<年代pan style="color:#A020F0">“汽车”;斧子。YTick =频率;

图中包含一个轴。标题为Magnitude scalalogram的轴包含图像、直线、区域3个类型的对象。

在CWT中,频率以2的幂计算。要以2的幂创建频率刻度和刻度标签,可以执行以下操作。

newplot;类(x, 1000);AX = gca;频率= 2.^(round(log2(minf)):round(log2(maxf)));斧子。YTickLabelMode =<年代pan style="color:#A020F0">“汽车”;斧子。YTick =频率;

图中包含一个轴。标题为Magnitude scalalogram的轴包含图像、直线、区域3个类型的对象。

这个例子展示了如何在每个层次上按最大绝对值缩放标量图值。

加载一个信号并显示默认的标量图。将颜色映射更改为粉色(240)

负载<年代pan style="color:#A020F0">noisdopp类(noisdopp) colormap(粉红色(240))

图中包含一个轴。标题为Magnitude scalalogram的轴包含图像、直线、区域3个类型的对象。

取信号的CWT,得到小波系数和频率。

[cfs,frq] = cwt(噪声分量);

为了有效地找到每个频率(水平)系数的最大值,首先转置系数的绝对值。求每一层的最小值。在每个级别上,减去级别的最小值。

Tmp1 = abs(cfs);T1 = size(tmp1,2);Tmp1 = Tmp1 ';Minv = min(tmp1);Tmp1 = (Tmp1 -minv(ones(1,t1),:));

求的每一层的最大值tmp1.对于每个级别,将每个值除以该级别的最大值。将结果乘以色图中的颜色数量。设等于1个全部为0的元素。转置结果。

Maxv = max(tmp1);maxvArray = maxv(ones(1,t1),:);指数= maxvArray
                   

显示结果。标量图值现在按每个级别的最大绝对值进行缩放。频率以线性比例显示。

T = 0:length(noisdopp)-1;pcolor (t frq tmp2);阴影<年代pan style="color:#A020F0">插值函数ylabel (<年代pan style="color:#A020F0">“频率”)标题(<年代pan style="color:#A020F0">“按等级缩放的标量图”) colormap(粉色(240))

图中包含一个轴。标题为scalalogram Scaled By Level的轴包含一个类型为surface的对象。

这个例子说明了增加时间-带宽乘积<年代pan class="inlineequation"> P 2 莫尔斯小波的变化会产生一个在包络线下有更多振荡的小波。增加<年代pan class="inlineequation"> P 2 缩小小波的频率。

创建两个过滤器组。一个过滤器组具有默认值TimeBandwidth值为60。第二个滤波器组有一个TimeBandwidth值为10。的SignalLength两个滤波器组均为4096个样本。

sigLen = 4096;Fb60 = cwtfilterbank(<年代pan style="color:#A020F0">“SignalLength”, sigLen);Fb10 = cwtfilterbank(<年代pan style="color:#A020F0">“SignalLength”sigLen,<年代pan style="color:#A020F0">“TimeBandwidth”10);

得到滤波器组的时域小波。

[psi60,t] =小波(fb60);[psi10,~] =小波(fb10);

使用尺度函数查找每个滤波器组的母小波。

Sca60 =鳞片(fb60);Sca10 = scales(fb10);[~,idx60] = min(abs(sca60-1));[~,idx10] = min(abs(sca10-1));M60 = psi60(idx60,:);M10 = psi10(idx10,:);

的时间带宽乘积更大fb60滤波器组,验证m60小波在它的包络下有更多的振荡m10小波。

Subplot (2,1,1) plot(t,abs(m60))网格<年代pan style="color:#A020F0">在持有<年代pan style="color:#A020F0">在Plot (t,real(m60)) Plot (t,imag(m60)) xlim([-30 30]) legend(<年代pan style="color:#A020F0">“abs (m60)”,<年代pan style="color:#A020F0">“真实的(m60)”,<年代pan style="color:#A020F0">图像放大(m60)”)标题(<年代pan style="color:#A020F0">'TimeBandwidth = 60') subplot(2,1,2) plot(t,abs(m10))网格<年代pan style="color:#A020F0">在持有<年代pan style="color:#A020F0">在Plot (t,real(m10)) Plot (t,imag(m10)) xlim([-30 30]) legend(<年代pan style="color:#A020F0">“abs (m10)”,<年代pan style="color:#A020F0">“真实的(m10)”,<年代pan style="color:#A020F0">“图像放大(m10)”)标题(<年代pan style="color:#A020F0">'TimeBandwidth = 10')

图包含2个轴。标题TimeBandwidth = 60的坐标轴1包含3个line类型的对象。这些对象分别代表abs(m60), real(m60), imag(m60)。标题TimeBandwidth = 10的坐标轴2包含3个类型为line的对象。这些对象分别代表abs(m10), real(m10), imag(m10)。

的顶点对齐m60而且m10幅度频率响应。验证的频率响应m60小波比频响更窄m10小波。

cf60 = centerFrequencies(fb60);cf10 = centerFrequencies(fb10);m60cFreq = cf60(idx60);m10cFreq = cf10(idx10);freqShift = 2*pi*(m60cFreq-m10cFreq);x10 = m10.*exp(1j*freqShift*(-sigLen/2:sigLen/2-1));图绘制([abs (fft (m60))。' abs(fft(x10)).']<年代pan style="color:#A020F0">在传奇(<年代pan style="color:#A020F0">'时间-带宽= 60',<年代pan style="color:#A020F0">'时间-带宽= 10')标题(<年代pan style="color:#A020F0">“幅度频率响应”)

图中包含一个轴。标题为幅度频率响应的轴包含2个类型为行的对象。分别表示Time-bandwidth = 60, Time-bandwidth = 10。

此示例显示如何在图形子图中绘制CWT标量图。

加载演讲样本。数据采样频率为7418hz。绘制默认的CWT标量图。

负载<年代pan style="color:#A020F0">mtlb类(mtlb Fs)

图中包含一个轴。标题为Magnitude scalalogram的轴包含图像、直线、区域3个类型的对象。

得到信号的连续小波变换,以及CWT的频率。

[cfs,frq] = cwt(mtlb,Fs);

函数设置标量图中的时间轴和频率轴。创建一个表示采样时间的向量。

tms =(0:数字(mtlb)-1)/Fs;

在一个新的图形中,在上面的子图中绘制原始信号,在下面的子图中绘制标量图。在对数刻度上画出频率。

图subplot(2,1,1) plot(tms,mtlb)轴<年代pan style="color:#A020F0">紧标题(<年代pan style="color:#A020F0">“信号与标量图”)包含(<年代pan style="color:#A020F0">“时间(s)”) ylabel (<年代pan style="color:#A020F0">“振幅”)子图(2,1,2)面(tms,frq,abs(cfs))轴<年代pan style="color:#A020F0">紧阴影<年代pan style="color:#A020F0">平包含(<年代pan style="color:#A020F0">“时间(s)”) ylabel (<年代pan style="color:#A020F0">的频率(赫兹)甘氨胆酸)组(,<年代pan style="color:#A020F0">“yscale”,<年代pan style="color:#A020F0">“日志”)

图包含2个轴。标题为Signal和scalalogram的坐标轴1包含一个类型为line的对象。坐标轴2包含一个surface类型的对象。

输入参数

全部折叠

输入信号,指定为实值或复值向量,单变量定时采样时间表。输入x必须至少有四个样本。

函数也接受GPU阵列输入。有关更多信息,请参见在图形处理器上运行MATLAB函数(并行计算工具箱)

数据类型:|
复数支持:万博1manbetx是的

分析小波用于计算CWT,指定为“莫尔斯”“爱”,或“撞”.这些特征向量分别指定分析莫尔斯,Morlet (Gabor),和bump小波。

默认莫尔斯小波具有对称参数(<年代pan class="inlineequation"> γ )等于3,时间-带宽乘积等于60。

采样频率,以Hz为单位,指定为正标量。如果你指定fs,那么你就不能指定ts

数据类型:|

采样周期,也称为时间持续时间,指定为标量持续时间。有效期限为小时分钟,.您不能使用日历持续时间。如果你指定ts,那么你就不能指定fs

例子:Wt = cwt(x,hours(12))

数据类型:持续时间

名称-值对参数

的可选逗号分隔对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“ExtendSignal”,假的表示信号未扩展。

选项,通过反射对称扩展输入信号,指定为逗号分隔的对,由“ExtendSignal”,要么真正的.对称扩展信号可以缓解边界效应。如果你指定真正的,则信号被扩展。如果你指定,则信号不扩展。

CWT中使用的频率限制,指定为具有严格递增项的两元向量。第一个元素指定最小峰值通带频率,必须大于或等于小波峰值频率(以赫兹为单位)和两个时间标准差除以信号长度的乘积。第二个元素指定最高峰值通带频率,必须小于或等于奈奎斯特频率。最大频率与最小频率之比的以2为底的对数必须大于或等于1/NV,其中NV是每八度的声音数。

如果你指定的频率限制超出了允许范围,将限制截断为最小有效值和最大值。使用cwtfreqbounds以确定CWT不同参数化的频率限制。对于复值信号,(-1)*flimits用于反解析部分,在哪里flimits向量是由FrequencyLimits

例子:“FrequencyLimits”,(0.1 - 0.3)

数据类型:

在CWT中使用的周期限制,指定为严格增加正条目的双元素持续时间数组。第一个元素必须大于或等于2*ts在哪里ts是采样周期。最小周期与最大周期之比的底数为2的对数必须小于或等于-1/NV,其中NV是每八度的声音数。最大周期不能超过信号长度除以小波的两个时间标准差与小波峰值频率的乘积。

如果你指定的时间段超出了允许的范围,将限制截断为最小有效值和最大值。使用cwtfreqbounds确定小波变换不同参数化的周期限制。对于复值信号,(-1)*plimits用于反解析部分,在哪里plimits向量是由PeriodLimits

例子:“PeriodLimits”,[秒(0.2)秒(1)]

数据类型:持续时间

用于CWT的每八度的声音数,指定为逗号分隔的对,由“VoicesPerOctave”一个从4到48的偶数。CWT音阶使用每八度指定的声音数进行离散化。小波在频率和时间上的能量分布自动决定了小波的最小和最大尺度。

莫尔斯小波的时间-带宽乘积,指定为逗号分隔对,由“TimeBandwidth”一个大于3且小于等于120的标量。对称参数,gamma (<年代pan class="inlineequation"> γ )的值固定为3。具有较大时频乘积的小波在时间上的扩展较大,而在频率上的扩展较窄。s manbetx 845摩尔斯小波在时间上的标准差约为√TimeBandwidth / 2).摩尔斯小波在频率上的标准差约为1/2 *√2 / TimeBandwidth

如果你指定“TimeBandwidth”,你不能指定“WaveletParameters”.要指定对称性和时间-带宽积,请使用“WaveletParameters”代替。

用符号表示莫尔斯小波TimeBandwidthP2

摩尔斯小波的对称性和时间-带宽的乘积,指定为由逗号分隔的对组成“WaveletParameters”一个标量的两元向量。第一个元素是对称性,<年代pan class="inlineequation"> γ ,必须大于或等于1。第二个元素是时间-带宽乘积,它必须严格大于<年代pan class="inlineequation"> γ .时间-带宽乘积与<年代pan class="inlineequation"> γ 不能超过40。

当<年代pan class="inlineequation"> γ = 3时,莫尔斯小波在频域完全对称,偏度为0。当<年代pan class="inlineequation"> γ 大于3,偏度为正。当<年代pan class="inlineequation"> γ 小于3,偏度为负。

有关更多信息,请参见莫尔斯小波

如果你指定“WaveletParameters”,你不能指定“TimeBandwidth”

八度音阶数,由逗号分隔的对组成“NumOctaves”一个正整数。八度数不能超过log2 (fmax / fmin)在哪里fmax而且fmin为由信号长度、采样频率和小波决定的最大和最小CWT频率(或周期)。看到cwtfreqbounds获取详细信息。

“NumOctaves”不建议使用名称-值对,将在将来的版本中删除。修改CWT的频率或周期范围的建议方法是使用“FrequencyLimits”“PeriodLimits”名称-值对。属性不能同时指定“NumOctaves”而且“FrequencyLimits”“PeriodLimits”名称-值对。

用于计算CWT的CWT过滤器组,指定为CWT过滤器组对象。如果你使用“FilterBank”名称-值对时,不能指定任何其他选项。计算CWT的所有选项都定义为的属性神奇动物

如果x是否有时间表,采样频率或采样周期神奇动物必须与所确定的采样频率或采样周期一致RowTimes时间表。

例子:wt = cwt(x,'FilterBank',fb)

输出参数

全部折叠

连续小波变换,返回复值矩阵。默认情况下,使用解析Morse(3,60)小波,其中3为对称性,60为时间-带宽乘积。每八度使用10个声音。如果x实值,wt是一个Na——- - - - - -N矩阵,Na是天平的多少,和N样品数量在吗x.如果x是复数,wt为三维矩阵,其中第一页为正尺度(解析部分或逆时针分量)的CWT,第二页为负尺度(反解析部分或顺时针分量)的CWT。根据小波在频率和时间上的能量分布自动确定最小和最大尺度。看到算法有关如何确定刻度的信息。

数据类型:|

CWT的频率,作为矢量返回。如果你指定一个采样频率,fs,然后f单位是Hz。如果您没有指定fs返回f以周期为单位。

时间段,作为持续时间数组返回。持续时间的格式与ts.每一行对应一个句点。

CWT的影响锥,以实数数组或持续时间数组的形式返回。影响锥表示在CWT中发生边缘效应的位置。如果你指定一个采样频率,fs,影响锥单位为Hz。如果指定标量持续时间,ts,影响锥以周期为单位。由于边缘效应,请减少对影响范围外或重叠区域的信任。

有关其他信息,请参见边界效应和影响锥

CWT中使用的CWT过滤器组,作为CWT过滤器组对象返回。看到cwtfilterbank

如果分析的小波为“莫尔斯”“爱”,作为实值或复值向量返回。的长度scalingcfs等于输入的长度x

凹凸小波不支持缩放系数。万博1manbetx

更多关于

全部折叠

分析小波

分析小波是复值小波,其傅里叶变换在负频率时消失。当用CWT进行时频分析时,分析小波是一个很好的选择。由于小波系数是复值的,这些系数提供了被分析信号的相位和幅值信息。分析小波非常适合于研究现实世界中非平稳信号的频率内容是如何随时间变化的。

解析小波几乎完全基于速降函数。如果<年代pan class="inlineequation"> ψ t 是一个解析速降函数,那么它的傅里叶变换<年代pan class="inlineequation"> ψ ω 在频率上是一个速降函数,在某个区间外是小的<年代pan class="inlineequation"> α < ω < β 在哪里<年代pan class="inlineequation"> 0 < α < β .正交小波和双正交小波通常被设计成具有紧凑的时间支持。万博1manbetx在时间上支持紧密的小波相对于在时间上支持迅速万博1manbetx衰减的小波在频率上的能量集中相对较差。大多数正交小波和双正交小波在傅里叶域中是不对称的。

如果您的目标是获得信号的联合时频表示,我们建议您使用cwtfilterbank.两个函数都支持以下解析小波:万博1manbetx

  • 莫尔斯小波族(默认)

  • 解析Morlet (Gabor)小波

如果你想用正交或双正交小波做时频分析,我们推荐modwpt

当使用小波进行时频分析时,通常将尺度转换为频率或周期以解释结果。而且cwtfilterbank进行转换。可以通过。获取对应的量表尺度关于可选选项输出参数神奇动物

有关莫尔斯小波的更多信息,请参见莫尔斯小波.有关如何选择适合您的应用程序的小波的指导,请参见选择一个小波

提示

算法

全部折叠

最小规模

要确定最小尺度,请找到峰值频率<年代pan class="inlineequation"> ω x 基小波的。对于莫尔斯小波,扩大小波,使小波的傅里叶变换<年代pan class="inlineequation"> π 弧度等于峰值频率的10%最小的尺度出现在最大的频率上:

年代 0 ω x π

因此,最小的尺度是(2,<年代pan class="inlineequation"> 年代 0 ).对于莫尔斯小波,最小的尺度通常是<年代pan class="inlineequation"> 年代 0 .Morlet小波的最小尺度通常为2。

最大的规模

基于小波在频率和时间上的能量分布,自动确定CWT的最小和最大尺度。为了确定最大尺度,CWT使用以下算法。

摩尔斯小波在时间上的标准差,<年代pan class="inlineequation"> σ t ,约为<年代pan class="inlineequation"> P 2 2 ,在那里<年代pan class="inlineequation"> P 2 是时间-带宽乘积。频率的标准差,<年代pan class="inlineequation"> σ f ,约为<年代pan class="inlineequation"> 1 2 2 P 2 .如果你把小波缩放一些<年代pan class="inlineequation"> 年代 > 1 时,持续时间变为<年代pan class="inlineequation"> 2 年代 σ t N ,这是小波被拉伸到等于全长(N样本)的输入。你不能平移这个小波或者在不引起它缠绕的情况下进一步拉伸它,所以最大的尺度是<年代pan class="inlineequation"> f l o o r N 2 σ t

小波变换尺度为2的幂,表示为<年代pan class="inlineequation"> 年代 0 2 1 N V j NV每八度的声音数,和j取值范围为0到最大。对于一个特定的小范围,<年代pan class="inlineequation"> 年代 0

年代 0 2 1 N V j N 2 σ t

转换为log2:

j 日志 2 2 1 N V 日志 2 N 2 σ t 年代 0

j N V 日志 2 N 2 σ t 年代 0

因此,最大尺度为

年代 0 2 1 N V f l o o r N V 日志 2 N 2 σ t 年代 0

CWT的L1范数

在积分形式下,CWT保存能量。然而,当你在数值上实现CWT时,能量并没有被保留。在这种情况下,不管你使用什么归一化,CWT都不是一个标准正交变换。的函数使用L1归一化。

小波变换通常使用L2归一化的小波。对于L2范数,将信号膨胀1/年代,在那里年代大于0,定义如下:

x t 年代 2 2 年代 x t 2 2

现在的能量是年代乘以原始能量。当包含在傅里叶变换中,乘以<年代pan class="inlineequation"> 1 年代 在不同的尺度上施加不同的权重,使高频的峰值比低频的峰值减少更多。

在许多应用中,L1归一化更好。L1范数定义不包括该值的平方,因此保留因子为1/年代而不是<年代pan class="inlineequation"> 1 年代 .对于L1归一化,所有频率振幅都归一化为相同的值,而不是像L2范数那样降低高频振幅。因此,使用L1范数可以更准确地表示信号。看例子两个复指数的连续小波变换

兼容性的考虑

全部展开

不建议从R2018a开始

参考文献

莉莉,J. M.和S. C.奥尔赫德。广义莫尔斯小波作为解析小波的超族IEEE信号处理汇刊60,不。11(2012年11月):6036-6041。https://doi.org/10.1109/TSP.2012.2210890。

莉莉,j.m.和S.C.奥尔赫德。解析小波的高阶性质IEEE信号处理汇刊57岁的没有。1(2009年1月):146-160https://doi.org/10.1109/TSP.2008.2007607。

莉莉,j.m.。jLab: Matlab的数据分析包,版本1.6.2。2016.http://www.jmlilly.net/jmlsoft.html。

[4] Lilly, Jonathan M.《元素分析:基于小波的分析有噪声时间序列中时间局部化事件的方法》皇家学会学报A:数学,物理和工程科学473年,没有。2200(2017年4月30日):20160776。https://doi.org/10.1098/rspa.2016.0776。

扩展功能

另请参阅

|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">

在R2016b中引入