主要内容

连续一维小波变换

描述

例子

wt=类(x的连续小波变换(CWT)x.CWT是用带对称参数的解析莫尔斯小波得到的。<年代pan class="inlineequation"> γ ),等于3,时间-带宽乘积等于60。每个八度使用10个声音。根据小波在频率和时间上的能量分布自动确定最小和最大尺度。

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

wt=类(xwname所指定的解析小波wname计算CWT。

例子

wtf) =类(<年代pan class="argument_placeholder">___fs指定采样频率,fs,单位为赫兹,并返回比例到频率的转换f在赫兹。如果不指定采样频率,返回f单位是每个样本的周期。

wt) =类(<年代pan class="argument_placeholder">___ts指定采样周期,ts,作为积极的方面持续时间标量。使用ts为了计算尺度到周期的转换,是一个duration数组,其Format属性与ts

例子

wtf细胞色素氧化酶) =类(<年代pan class="argument_placeholder">___返回影响锥,细胞色素氧化酶,单位为每个样本的周期。指定一个采样频率,fs,以赫兹为单位返回影响锥。

wt细胞色素氧化酶) =类(<年代pan class="argument_placeholder">___ts返回影响锥,细胞色素氧化酶,作为具有相同Format属性的持续时间数组ts

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

[<年代pan class="argument_placeholder">___神奇动物scalingcfs) =类(<年代pan class="argument_placeholder">___)返回小波变换的缩放系数。

[<年代pan class="argument_placeholder">___) =类(<年代pan class="argument_placeholder">___,名称=值指定一个或多个附加的名称-值参数。例如,wt = cwt (x, TimeBandwidth = 40, VoicesPerOctave = 20)指定每个八度40和20个声音的时间带宽乘积。

例子

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

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

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

请注意

在策划之前,清除(clf)现时的数字。要在子图中绘制尺度图,请使用绘图函数。看到在Subplot中绘制CWT尺度图

例子

全部折叠

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

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

加载一个演讲样本。

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

加载文件mtlb.mat带来语音信号,mtlb,样本率,Fs,进入工作区。显示使用凹凸小波得到的语音样本的尺度图。

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

图中包含一个axes对象。标题为“幅值尺度图”的坐标轴对象包含图像、直线、区域3个类型的对象。

与使用默认莫尔斯小波得到的尺度图进行比较。

类(mtlb Fs)

图中包含一个axes对象。标题为“幅值尺度图”的坐标轴对象包含图像、直线、区域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">“垂直加速度(nm / s ^ 2)”)标题(<年代pan style="color:#A020F0">“神户地震数据”网格)<年代pan style="color:#A020F0">在轴<年代pan style="color:#A020F0">紧

图中包含一个axes对象。标题为Kobe Earthquake Data的axes对象包含一个类型为line的对象。

获得CWT、频率和影响锥。

(wt f coi) = cwt(科比,1);

查看刻度图,包括影响锥。

类(科比,1)

图中包含一个axes对象。标题为“幅值尺度图”的坐标轴对象包含图像、直线、区域3个类型的对象。

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

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

查看指定采样周期时生成的尺度图。

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

图中包含一个axes对象。标题为“幅值尺度图”的坐标轴对象包含图像、直线、区域3个类型的对象。

ans = proplistener带有属性:对象:{[1x1 Axes]}源:{[1x1 matlab.graphics.internal.GraphicsMetaProperty]} EventName: 'PostSet'回调:@changeYTickLabels Enabled: 1递归:0

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

Fs = 1 e3;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)

{

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

该算例表明,信号中振荡分量的幅值与相应小波系数的幅值一致。

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

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

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

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

fb = cwtfilterbank (SignalLength =元素个数(x) SamplingFrequency = Fs,<年代pan style="color:#0000FF">...FrequencyLimits = [100]);freqz(神奇动物)

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

使用然后用滤波器组绘制信号的尺度图。

类(x, FilterBank = fb)

图中包含一个axes对象。标题为“幅值尺度图”的坐标轴对象包含图像、直线、区域3个类型的对象。

用数据游标来确定小波系数的振幅与正弦分量的振幅本质上相等。您的结果应该类似于下图中的结果。

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

创建一个100 × 1024的矩阵x.创建一个适合1024个样本信号的CWT滤波器组。

x = randn(100、1024);fb = cwtfilterbank;

使用,以获得1024个样本的信号的CWT。创建一个包含100个信号的CWT系数的3-D数组,每个信号有1024个样本。

cfs = cwt (x (1:));res = 0(100年,大小(cfs, 1),大小(cfs, 2));

使用函数,取矩阵每一行的CWTx.显示运行时间。

抽搐<年代pan style="color:#0000FF">为K =1:100 res(K,:,:) = cwt(x(K,:));<年代pan style="color:#0000FF">结束toc
运行时间为0.928160秒。

现在使用的wt对象函数的滤波器组取每一行的CWTx.显示运行时间。

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

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

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

创建一个GPU编码器配置对象。

cfg = coder.gpuConfig (<年代pan style="color:#A020F0">“墨西哥人”);

在1000hz下生成100,000个样本的信号。信号由两个时间支撑不相交的余弦波组成。

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

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

x =单(x);

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

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

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

  • coder.typeof (0)指定一个真正的价值。

Sig = code .typeof(single(0),[1 1e5]);wav = coder.typeof (<年代pan style="color:#A020F0">“c”[1正]);sfrq = coder.typeof (0);codegen<年代pan style="color:#A020F0">类配置cfgarg游戏{团体,wav, sfrq}报告
代码生成成功:查看报告

-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命令,但不附加_墨西哥人.确认MATLAB和GPU MEX的尺度图是相同的。

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

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

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

Fs = 1 e3;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(大小(t));x = x + wgnNoise;类(x, 1000)

图中包含一个axes对象。标题为“幅值尺度图”的坐标轴对象包含图像、直线、区域3个类型的对象。

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

[minf, maxf] = cwtfreqbounds(元素个数(x), 1000);

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

numfreq = 10;频率= logspace (log10 (minf) log10 (maxf) numfreq);

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

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

图中包含一个axes对象。标题为“幅值尺度图”的坐标轴对象包含图像、直线、区域3个类型的对象。

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

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

图中包含一个axes对象。标题为“幅值尺度图”的坐标轴对象包含图像、直线、区域3个类型的对象。

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

加载一个信号并显示默认的刻度图。更改颜色图为粉色(240)

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

图中包含一个axes对象。标题为“幅值尺度图”的坐标轴对象包含图像、直线、区域3个类型的对象。

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

[cfs, frq] = cwt (noisdopp);

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

tmp1 = abs (cfs);t1 =大小(tmp1, 2);tmp1 = tmp1 ';minv = min (tmp1);tmp1 = (tmp1-minv ((t1),:));

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

maxv = max (tmp1);maxvArray = maxv ((t1),:);indx = maxvArray <每股收益;tmp1 = 240 * (tmp1. / maxvArray);tmp2 = 1 +修复(tmp1);tmp2 (indx) = 1;tmp2 = tmp2 ';

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

t = 0:长度(noisdopp) 1;pcolor (t frq tmp2)阴影<年代pan style="color:#A020F0">插值函数包含(<年代pan style="color:#A020F0">“时间”(样本)) ylabel (<年代pan style="color:#A020F0">“归一化频率(周期/样本)”)标题(<年代pan style="color:#A020F0">“按级别缩放的尺度图”) colormap colorbar(粉色(240))

图中包含一个axes对象。标题为Scalogram按级别缩放的axis对象包含一个类型为surface的对象。

这个例子展示了增加时间-带宽乘积<年代pan class="inlineequation"> P 2 的摩尔斯小波产生的小波在其包络下有更多的振荡。增加<年代pan class="inlineequation"> P 2 缩小小波的频率。

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

sigLen = 4096;fb60 = cwtfilterbank (SignalLength = sigLen);fb10 = cwtfilterbank (SignalLength = sigLen TimeBandwidth = 10);

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

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

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

sca60 =尺度(fb60);sca10 =尺度(fb10);[~, idx60] = min (abs (sca60-1));[~, idx10] = min (abs (sca10-1));m60 = psi60 (idx60:);m10 = psi10 (idx10:);

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

次要情节(2,1,1)情节(t, abs (m60))网格<年代pan style="color:#A020F0">在持有<年代pan style="color:#A020F0">在情节(t)的(m60))情节(t,图像放大(m60))<年代pan style="color:#A020F0">从传说xlim (30 [-30]) (<年代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">在情节(t,实际(m10))情节(t,图像放大(m10))<年代pan style="color:#A020F0">从传说xlim (30 [-30]) (<年代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的Axes对象1包含3个类型为line的对象。这些对象表示abs(m60)、real(m60)、imag(m60)。标题为TimeBandwidth = 10的Axes对象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 *π* (m60cFreq-m10cFreq);x10 = m10。* exp (1 j * 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">“频率响应级”)

图中包含一个axes对象。标题为“幅度频率响应”的axis对象包含两个类型为line的对象。这些对象表示Time-bandwidth = 60, Time-bandwidth = 10。

这个例子展示了如何在图子图中绘制CWT尺度图。

加载演讲样本。数据以7418 Hz采样。绘制默认的CWT尺度图。

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

图中包含一个axes对象。标题为“幅值尺度图”的坐标轴对象包含图像、直线、区域3个类型的对象。

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

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

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

经颅磁刺激=(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">“振幅”) subplot(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 and Scalogram的axis对象1包含一个类型为line的对象。Axes对象2包含一个类型为surface的对象。

输入参数

全部折叠

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

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

数据类型:|
复数的支持:是的

分析小波用于计算CWT。有效的选择wname“莫尔斯”“埃莫”,“撞”,分别指定了Morse, Morlet (Gabor)和bump小波。

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

数据类型:字符|字符串

采样频率,以赫兹为单位,指定为正标量。如果您指定fs,则无法指定ts.如果x是时间表,你不能指定吗fsfs由时间表的RowTimes确定。

数据类型:|

采样周期,也称为时间持续时间,指定为一个标量持续时间。有效期限是小时分钟,.您不能使用日历持续时间。如果您指定ts,则无法指定fs.如果x是时间表,你不能指定吗tsts是由时间表的RowTimes确定的,当您设置PeriodLimits名称-值参数。

例子:wt = cwt (x,小时(12))

数据类型:持续时间

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

例子:wt = cwt (x,“撞”,VoicesPerOctave = 10)返回的CWTx使用凹凸小波,每个八度10个声音。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

例子:wt = cwt(x,"ExtendedSignal",true,"FrequencyLimits",[0.1 0.2])对称扩展输入信号,并指定频率限制为0.1到0.2个样本每个周期。

通过反射对称扩展输入信号的选项,指定为以下之一:

  • 1真正的) -对称延伸

  • 0) -不要对称地伸展

如果ExtendSignal时,信号周期性扩展。对称扩展信号可以缓解边界效应。

请注意

如果你想反转CWT使用icwt具有缩放系数和近似合成滤波器,集ExtendSignal

数据类型:逻辑

在CWT中使用的频率限制,指定为具有严格递增的正项的双元素向量。第一个元素指定了最低峰值通带频率,必须大于或等于小波峰值频率的赫兹和两个时间标准差除以信号长度的乘积。第二个元素指定最高峰值通带频率,必须小于或等于Nyquist频率。频率上限的比值以2为底的对数,freqMax,到低频极限,freqMin,必须大于或等于1 / NV,在那里NV是每个八度的声音数:

日志<年代ub>2(freqMax / freqMin)≥1 / NV

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

例子:wt = cwt(x,1000,VoicesPerOctave=10,FrequencyLimits=[80 90])

数据类型:

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

日志<年代ub>2(pMin / pMax)≤1 / NV

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

例子:wt = cwt(x,seconds(0.1),VoicesPerOctave=10,PeriodLimits=[seconds(0.2) seconds(3)])

数据类型:持续时间

每八度用于CWT的声音数,指定为1到48之间的整数。CWT音阶使用每个八度的特定数量的声音进行离散化。小波在频率和时间上的能量分布自动决定了最小和最大尺度。

莫尔斯小波的时间-带宽乘积,指定为大于等于3小于等于120的标量。对称参数,(<年代pan class="inlineequation"> γ ),固定为3。具有较大时间-带宽乘积的小波在时间上有较大的扩展,在频率上有较窄的扩展。2022世界杯八强谁会赢?莫尔斯小波在时间上的标准差近似为√TimeBandwidth / 2).莫尔斯小波在频率上的标准差近似为1/2×√2 / TimeBandwidth

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

用符号表示莫尔斯小波TimeBandwidthP2

莫尔斯小波的对称性和时间-带宽乘积,指定为标量的双元向量。第一个元素是对称性,<年代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

CWT滤波器组用来计算CWT,指定为cwtfilterbank对象。如果你设置FilterBank,您不能指定任何其他选项。所有用于计算CWT的选项都被定义为滤波器组的属性。有关更多信息,请参见cwtfilterbank

如果x是否有时间表、采样频率或采样周期神奇动物必须符合抽样频率或抽样周期确定RowTimes的时间表。

例子:wt = cwt (x, FilterBank = cfb)

输出参数

全部折叠

连续小波变换,返回复值矩阵。默认情况下,使用解析莫尔斯(3,60)小波,其中3是对称性,60是时间-带宽乘积。每个八度使用10个声音。

  • 如果x实值,wt是一个Na——- - - - - -N矩阵,Na是磅秤的数量,和N样品数量在吗x

  • 如果x是复数,wt是一个三维矩阵,其中第一页是正尺度(解析部分或逆时针分量)的CWT,第二页是负尺度(反解析部分或顺时针分量)的CWT。

根据小波在频率和时间上的能量分布自动确定最小和最大尺度。看到算法了解如何确定量表的信息。

数据类型:|

CWT的比例到频率转换,作为矢量返回。如果你指定一个采样频率,fs,然后f在赫兹。如果不指定fs返回f单位是每个样本的周期。如果输入x是复杂的,标频转换适用于两个页面吗wt

缩放到周期的转换,作为具有相同Format属性的持续时间数组返回ts.每一行对应一个周期。如果输入x是复杂的,规模到周期的转换适用于两页wt

CWT的影响锥。如果你指定一个采样频率,fs,影响锥的单位为赫兹。如果指定标量持续时间,ts,影响锥是具有相同Format属性的持续时间数组ts.如果输入x复杂的是,圆锥的影响力适用于两个页面吗wt

影响锥表示边缘效应在CWT中发生的位置。由于边缘效应,请减少对影响锥外或重叠的区域的信任。有关其他信息,请参见边界效应和影响锥

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

CWT的缩放系数,作为实值或复值向量返回。的长度scalingcfs等于输入的长度x

更多关于

全部折叠

分析小波

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

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

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

  • 莫尔斯小波族(默认)

  • 分析Morlet (Gabor)小波

如果您想使用正交或双正交小波进行时频分析,我们推荐使用modwpt

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

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

提示

  • 旧的语法函数继续工作,但不再推荐使用。的当前版本.旧版本和当前版本都使用相同的函数名。函数的输入自动决定使用哪个版本。看到CWT函数语法已经改变

  • 当执行多个cwt时,例如在for循环中,建议的工作流程是首先创建一个cwtfilterbank对象,然后使用wt对象的功能。此工作流将开销最小化并将性能最大化。看到多时间序列上CWT滤波器组的应用

算法

全部折叠

最小规模

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

年代 0 ω x π

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

最大的规模

根据小波在频率和时间上的能量分布,自动确定小波变换的最小和最大尺度。为了确定最大尺度,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范数可以更准确地表示信号。看例子两个复指数的连续小波变换

参考文献

莉莉,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-160。https://doi.org/10.1109/TSP.2008.2007607。

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

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

扩展功能

版本历史

介绍了R2016b

全部展开

另请参阅

应用程序

功能

  • |<年代pan itemscope itemtype="//www.ru-cchi.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">|<年代pan itemscope itemtype="//www.ru-cchi.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">
Baidu
map