类
连续一维小波变换
语法
描述
的连续小波变换(CWT)wt
=类(x
)x
.CWT是用带对称参数的解析莫尔斯小波得到的。<年代pan class="inlineequation">
),等于3,时间-带宽乘积等于60。类
每个八度使用10个声音。根据小波在频率和时间上的能量分布自动确定最小和最大尺度。
的类
函数使用L1归一化。通过L1归一化,如果你在不同尺度下的数据中有相等的振幅振荡分量,它们在CWT中的幅值也会相等。使用L1归一化可以更精确地表示信号。看到CWT的L1范数而且两个复指数的连续小波变换.
[<年代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
加载文件mtlb.mat
带来语音信号,mtlb
,样本率,Fs
,进入工作区。显示使用凹凸小波得到的语音样本的尺度图。
负载<年代pan style="color:#A020F0">mtlb类(mtlb<年代pan style="color:#A020F0">“撞”Fs)
与使用默认莫尔斯小波得到的尺度图进行比较。
类(mtlb Fs)
地震数据的连续小波变换
获得神户地震资料的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">紧
获得CWT、频率和影响锥。
(wt f coi) = cwt(科比,1);
查看刻度图,包括影响锥。
类(科比,1)
通过指定采样周期而不是采样频率,获得CWT、时间段和影响锥。
(wt,时期,coi] = cwt(科比,分钟(1/60));
查看指定采样周期时生成的尺度图。
类(科比、分钟(1/60))
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">“信号”)
创建一个可应用于信号的CWT滤波器组。由于信号成分的频率是已知的,将滤波器组的频率限制设置为一个包含已知频率的狭窄范围。为了确定范围,绘制滤波器组的幅值频率响应。
fb = cwtfilterbank (SignalLength =元素个数(x) SamplingFrequency = Fs,<年代pan style="color:#0000FF">...FrequencyLimits = [100]);freqz(神奇动物)
使用类
然后用滤波器组绘制信号的尺度图。
类(x, FilterBank = fb)
用数据游标来确定小波系数的振幅与正弦分量的振幅本质上相等。您的结果应该类似于下图中的结果。
多时间序列上CWT滤波器组的应用
这个例子展示了在对多个时间序列进行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代码来自CWT
这个例子展示了如何使用生成的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)
该图使用对数频率轴,因为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 =频率;
在CWT中,频率以2的幂计算。要按2的幂创建频率刻度和刻度标签,可以执行以下操作。
newplot cwt(x,1000) AX = gca;频率= 2 ^(圆(log2 (minf)):圆形(log2 (maxf)));斧子。YTickLabelMode =<年代pan style="color:#A020F0">“汽车”;斧子。YTick =频率;
变化量图颜色
这个例子展示了如何在绘图时在每一层按最大绝对值缩放标量图值。
加载一个信号并显示默认的刻度图。更改颜色图为粉色(240)
.
负载<年代pan style="color:#A020F0">noisdopp类(noisdopp) colormap(粉红色(240))
取信号的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))
更改时间-带宽积
这个例子展示了增加时间-带宽乘积<年代pan class="inlineequation"> 的摩尔斯小波产生的小波在其包络下有更多的振荡。增加<年代pan class="inlineequation"> 缩小小波的频率。
创建两个过滤器组。一个过滤器组具有默认值TimeBandwidth
60的价值。第二个滤波器组有一个TimeBandwidth
10的价值。的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”)
使峰对齐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">“频率响应级”)
在Subplot中绘制CWT尺度图
这个例子展示了如何在图子图中绘制CWT尺度图。
加载演讲样本。数据以7418 Hz采样。绘制默认的CWT尺度图。
负载<年代pan style="color:#A020F0">mtlb类(mtlb Fs)
得到信号的连续小波变换,以及小波变换的频率。
[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">“日志”)
输入参数
x
- - - - - -<年代pan itemprop="purpose">输入信号
实值或复值向量|<年代pan itemprop="inputvalue">时间表|<年代pan itemprop="inputvalue">gpuArray
输入信号,指定为实值或复值向量,或单变量定期采样时间表。输入x
必须有至少四个样本。
的类
函数也接受GPU阵列输入。有关更多信息,请参见在图形处理器上运行MATLAB函数(并行计算工具箱).
数据类型:单
|双
复数的支持:是的
wname
- - - - - -<年代pan itemprop="purpose">分析小波
“莫尔斯”
(默认)|<年代pan itemprop="inputvalue">“埃莫”
|<年代pan itemprop="inputvalue">“撞”
分析小波用于计算CWT。有效的选择wname
是“莫尔斯”
,“埃莫”
,“撞”
,分别指定了Morse, Morlet (Gabor)和bump小波。
默认的莫尔斯小波有对称参数gamma (<年代pan class="inlineequation"> )等于3,时间-带宽乘积等于60。
数据类型:字符
|字符串
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。
例子:wt = cwt (x,“撞”,VoicesPerOctave = 10)
返回的CWTx
使用凹凸小波,每个八度10个声音。
在R2021a之前,名称和值之间用逗号隔开,并括起来的名字
在报价。
例子:wt = cwt(x,"ExtendedSignal",true,"FrequencyLimits",[0.1 0.2])
对称扩展输入信号,并指定频率限制为0.1到0.2个样本每个周期。
ExtendSignal
- - - - - -<年代pan itemprop="purpose">对称扩展输入信号
真正的
或1
(默认)|<年代pan itemprop="inputvalue">假
或0
通过反射对称扩展输入信号的选项,指定为以下之一:
1
(真正的
) -对称延伸0
(假
) -不要对称地伸展
如果ExtendSignal
是假
时,信号周期性扩展。对称扩展信号可以缓解边界效应。
请注意
如果你想反转CWT使用icwt
具有缩放系数和近似合成滤波器,集ExtendSignal
来假
.
数据类型:逻辑
FrequencyLimits
- - - - - -<年代pan itemprop="purpose">频率的限制
双元素标量矢量
在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])
数据类型:双
PeriodLimits
- - - - - -<年代pan itemprop="purpose">时间限制
双元素数组持续时间
在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)])
数据类型:持续时间
VoicesPerOctave
- - - - - -<年代pan itemprop="purpose">每个八度的声音数
10
(默认)|<年代pan itemprop="inputvalue">1 ~ 48之间的整数
每八度用于CWT的声音数,指定为1到48之间的整数。CWT音阶使用每个八度的特定数量的声音进行离散化。小波在频率和时间上的能量分布自动决定了最小和最大尺度。
TimeBandwidth
- - - - - -<年代pan itemprop="purpose">莫尔斯小波的时间-带宽乘积
60
(默认)|<年代pan itemprop="inputvalue">大于等于3小于等于120的标量
莫尔斯小波的时间-带宽乘积,指定为大于等于3小于等于120的标量。对称参数,(<年代pan class="inlineequation">
),固定为3。具有较大时间-带宽乘积的小波在时间上有较大的扩展,在频率上有较窄的扩展。2022世界杯八强谁会赢?莫尔斯小波在时间上的标准差近似为√TimeBandwidth / 2)
.莫尔斯小波在频率上的标准差近似为1/2×√2 / TimeBandwidth
.
如果您指定TimeBandwidth
,您不能指定WaveletParameters
.要指定对称性和时间-带宽乘积,使用WaveletParameters
代替。
用符号表示莫尔斯小波,TimeBandwidth
是P2.
WaveletParameters
- - - - - -<年代pan itemprop="purpose">莫尔斯小波的对称性与时间-带宽乘积
(3、60)
(默认)|<年代pan itemprop="inputvalue">标量的二元向量
莫尔斯小波的对称性和时间-带宽乘积,指定为标量的双元向量。第一个元素是对称性,<年代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
.
FilterBank
- - - - - -<年代pan itemprop="purpose">CWT滤波器组
cwtfilterbank
对象
CWT滤波器组用来计算CWT,指定为cwtfilterbank
对象。如果你设置FilterBank
,您不能指定任何其他选项。所有用于计算CWT的选项都被定义为滤波器组的属性。有关更多信息,请参见cwtfilterbank
.
如果x
是否有时间表、采样频率或采样周期神奇动物
必须符合抽样频率或抽样周期确定RowTimes
的时间表。
例子:wt = cwt (x, FilterBank = cfb)
输出参数
神奇动物
- CWT滤波器组
cwtfilterbank
对象
CWT滤波器组中使用的CWT,返回为cwtfilterbank
对象。看到cwtfilterbank
.
scalingcfs
——比例系数
实值或复值向量
CWT的缩放系数,作为实值或复值向量返回。的长度scalingcfs
等于输入的长度x
.
更多关于
分析小波
解析小波是复值小波,其傅立叶变换在负频率处消失。当使用CWT进行时频分析时,分析小波是一个很好的选择。由于小波系数是复值的,这些系数提供了被分析信号的相位和幅值信息。分析小波非常适合于研究真实世界非平稳信号的频率内容如何随时间的变化而变化。
分析小波几乎完全基于速降函数。如果<年代pan class="inlineequation"> 是时间上的解析速降函数,那么它的傅里叶变换呢<年代pan class="inlineequation"> 一个函数在频率上是快速下降的,在某个区间外是很小的吗<年代pan class="inlineequation"> 在哪里<年代pan class="inlineequation"> .正交小波和双正交小波通常被设计成具有紧凑的时间支持。时间上支持紧的小波比时间上支持快的小波在频率上的能量集中相对较差。大多数正交和双正交小波在傅里叶域中是不对称的。
如果您的目标是获得信号的联合时频表示,我们建议您使用类
或cwtfilterbank
.两个函数都支持以下解析小波:
莫尔斯小波族(默认)
分析Morlet (Gabor)小波
撞
如果您想使用正交或双正交小波进行时频分析,我们推荐使用modwpt
.
当使用小波进行时频分析时,您通常将尺度转换为频率或周期以解释结果。类
而且cwtfilterbank
执行转换。可以通过使用关联的方法获得相应的量表尺度
在可选类
输出参数神奇动物
.
提示
旧的语法
类
函数继续工作,但不再推荐使用。的当前版本类
.旧版本和当前版本都使用相同的函数名。函数的输入自动决定使用哪个版本。看到CWT函数语法已经改变.当执行多个cwt时,例如在for循环中,建议的工作流程是首先创建一个
cwtfilterbank
对象,然后使用wt
对象的功能。此工作流将开销最小化并将性能最大化。看到多时间序列上CWT滤波器组的应用.
算法
最小规模
为了确定最小尺度,找到峰值频率<年代pan class="inlineequation"> 基小波的。对于莫尔斯小波,将小波展开,使小波的傅里叶变换在<年代pan class="inlineequation"> 弧度等于峰值频率的10%最小的刻度出现在最大的频率上:
因此,最小的尺度是(2,<年代pan class="inlineequation"> ).对于莫尔斯小波,最小的尺度通常是<年代pan class="inlineequation"> .对于Morlet小波,最小的尺度通常是2。
最大的规模
根据小波在频率和时间上的能量分布,自动确定小波变换的最小和最大尺度。为了确定最大尺度,CWT使用以下算法。
摩尔斯小波随时间的标准差,<年代pan class="inlineequation"> ,大约是<年代pan class="inlineequation"> ,在那里<年代pan class="inlineequation"> 是时间-带宽乘积。频率的标准差,<年代pan class="inlineequation"> ,大约是<年代pan class="inlineequation"> .如果你把小波缩放一些<年代pan class="inlineequation"> 时,时间持续时间变为<年代pan class="inlineequation"> ,即小波拉伸到等于全长(N样本)的输入。你不能翻译这个小波或在不导致它缠绕的情况下进一步拉伸它,所以最大的尺度是<年代pan class="inlineequation"> .
小波变换尺度为2的幂,表示为<年代pan class="inlineequation"> .NV每个八度的声音数,和j取值范围为0到最大值。对于一个特定的小范围,<年代pan class="inlineequation"> :
log2转换:
因此,最大尺度为
CWT的L1范数
在积分形式中,CWT保持能量。然而,当您以数值方式实现CWT时,能量不会被保留。在这种情况下,无论使用何种标准化方法,CWT都不是标准正交变换。的类
函数使用L1归一化。
小波变换通常使用小波的L2归一化。对于L2范数,将信号放大1/年代,在那里年代大于0,定义如下:
现在的能量年代乘以原始能量。当包含在傅里叶变换中,乘以<年代pan class="inlineequation"> 产生不同的权重被应用到不同的尺度上,因此在高频率的峰值比在低频率的峰值减少更多。
在许多应用中,L1归一化效果更好。L1范数定义不包括该值的平方,因此保留因子为1/年代而不是<年代pan class="inlineequation"> .对于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。
扩展功能
GPU的代码生成
使用GPU Coder™为NVIDIA GPU生成CUDA®代码。
使用注意事项和限制:
支持单、双精度输入信号。精度必须在编译时设置。
不支持时间表输入信号。
只有解析莫尔斯(
“莫尔斯”
)和莫雷(“爱”
)支持小波。不支持以下输入参数:采样周期(
ts
),PeriodLimits
名称-值对,NumOctave
名称-值对,FilterBank
名称-值对。不支持缩放系数输出和滤波器组输出。
不支持绘图。
GPU数组
通过使用并行计算工具箱™在图形处理单元(GPU)上运行来加速代码。
该功能完全支持GPU阵列。有关更多信息,请参见在图形处理器上运行MATLAB函数(并行计算工具箱).
版本历史
介绍了R2016bR2018a:<年代pan class="remove_bold">“NumOctaves”
名称-值参数将被删除
的NumOctaves
名称-值参数将在未来的版本中删除。使用:
名称-值参数
FrequencyLimits
修改CWT的频率范围。名称-值参数
PeriodLimits
修改CWT的周期范围。
看到cwtfreqbounds
额外的信息。
R2016b:<年代pan class="remove_bold">类
函数语法已经改变
这个版本提供了连续小波变换的更新版本,类
.使用新的和简化的语法,您可以轻松地选择最适合连续小波分析的小波、频率或周期范围,以及每个八度的声音。提供了小波和缩放的默认值,因此不需要指定它们。
旧的语法类
函数继续工作,但不再推荐使用。的更新版本类
.旧版本和更新版本都使用相同的函数名。函数的输入自动决定使用哪个版本。
功能 | 使用这个代替 | 兼容性的考虑 |
---|---|---|
老类 |
更新类 |
的所有实例 |
另请参阅
应用程序
功能
cwtfilterbank
|<年代pan itemscope itemtype="//www.ru-cchi.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">icwt
|<年代pan itemscope itemtype="//www.ru-cchi.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">cwtfreqbounds
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。