主要内容

cwtfilterbank

连续小波变换滤波器组

描述

使用cwtfilterbank创建连续小波变换(CWT)滤波器组。在滤波器组中使用的默认小波是解析莫尔斯(3,60)小波。您可以改变莫尔斯小波的时间带宽和对称性参数,以调整莫尔斯小波为您的需要。您还可以使用分析的Morlet (Gabor)小波或bump小波。当在时频分析多个信号时,为提高计算效率,您可以预先计算一次滤波器,然后将滤波器组作为输入传递给CWT..使用过滤器组,您可以在时间和频率上可视化小波。您还可以创建具有特定频率或周期范围的过滤器存储体,并测量3-DB带宽。您可以确定滤波器组中小波的质量因子。

创建

描述

例子

FB.= cwtfilterbank创建连续小波变换(CWT)滤波器组FB..滤波器被归一化,以便所有通频带的峰值幅度近似等于2。默认滤波器组是为1024个样本的信号设计的。默认滤波器组使用解析莫尔斯(3,60)小波。滤波器组使用默认的尺度:大约每八度10个小波带通滤波器(每八度10个声音)。最高频率通频带的设计使振幅降至峰值奈奎斯特频率的一半。

作为实现,CWT使用L1归一化。L1归一化后,不同尺度的等幅振荡分量在CWT中具有相同的幅度。L1归一化提供了更精确的信号表示。振荡分量的振幅与相应小波系数的振幅一致。看正弦和小波系数振幅

FB.可以作为输入CWT.

例子

FB.= cwtfilterbank(名称,值创建CWT滤波器组FB.具有由一个或多个指定的属性名称,值对论点。属性可以以任何顺序指定Name1, Value1,…,的家.将每个属性名用引号括起来。

笔记

不能更改现有筛选器组的属性值。例如,如果你有一个滤波器组FB.与A.SignalLength对于2000个过滤器,必须创建第二个过滤器组fb2用2001年的样本处理一个信号。您不能分配一个不同的SignalLengthFB.

特性

全部展开

信号的长度,指定为正整数。信号必须具有至少四个样本。

例子:'signallength',1700

数据类型:

分析滤波器组中使用的小波,具体为'莫尔斯'“爱”, 或者“撞”.这些字符串分别指定分析莫尔斯,Morlet(Gabor)和凸块小波。默认小波是分析摩尔斯(3,60)小波。

默认情况下,对于Morse小波,频率响应衰减达到奈奎斯特的峰值幅度的50%。对于Morlet和凸块小波,频率响应衰减到峰值幅度的10%。您可以通过设置筛选银行来更改衰减百分比FrequencyLimits财产。看cwtfreqbounds

对于莫尔斯小波,你也可以参数化小波使用TimeBandwidth小波分析器属性。

例子:'小波','凹凸'

用于CWT的每个八度音的声音数,指定为从4到48的偶数。CWT尺度是用每个八度的特定声音数量离散的。小波在频率和时间上的能量分布自动决定了最小和最大尺度。

您可以使用cwtfreqbounds确定小波滤波器组的频率极限。频率限制取决于一些参数,如小波的能量传播、每个八度音阶的声音数、信号长度和采样频率。

例子:'voicesperoctave',20

数据类型:单身的|

以赫兹为单位的采样频率,指定为正标量。如果未指定,频率为cycles/sample, Nyquist频率为½。要以周期指定比例,请使用SamplingPeriodPeriodLimits属性。

您无法指定采样频率SamplingPeriod属性。

例子:'抽样频道',5

数据类型:单身的|

小波滤波器组的频率限制,指定为具有正严格递增项的二元向量。第一个元素指定最低的峰值通频带频率。频率必须大于或等于小波峰值频率(赫兹)与两个时间标准差除以信号长度的乘积。高频极限必须小于或等于奈奎斯特值。高频极限比率的以2为底的对数,fMax,到低频极限,富马,必须大于或等于1 / NV.,在那里NV是每个八度的声音数:

日志2(FMAX / FMIN)≥1/ NV

如果你指定频率限制超出允许范围,cwtfilterbank截断极限到最小值和最大值。使用cwtfreqbounds确定小波变换不同参数化的频率极限。

如果在过滤器银行中使用采样周期,则无法指定FrequencyLimits财产。

例子:如果fb = cwtfilterbank('SignalLength',1000,'SamplingFrequency',1000,'FrequencyLimits',[90 100]), 然后日志2(100/90)≥1 / fb。VoicesPerOctave

数据类型:

采样周期,指定为标量持续时间。您无法指定采样频率SamplingPeriod属性。

例子:“SamplingPeriod”,秒(0.5)

数据类型:持续时间

小波滤波器组的周期限制,指定为两个元素持续时间阵列具有积极的严格增加条目。第一个元素PeriodLimits指定最大的峰值通带频率,必须大于或等于两倍SamplingPeriod.最大时段不能超过信号长度除以小波和小波峰值频率的两次标准偏差的乘积。基本-2对数的最小期限,min,至最大周期,maxP,必须小于或等于-1 / nv.,在那里NV是每个八度的声音数:

日志2(minP / maxP)≤1 / NV

如果在允许范围之外指定期限限制,cwtfilterbank截断极限到最小值和最大值。使用cwtfreqbounds确定针对小波变换的不同参数化的期间限制。

如果在过滤器银行中使用采样频率,则无法指定PeriodLimits财产。

例子:如果fb = cwtfilterbank('SignalLength',1000,'SamplingPeriod',seconds(0.1),'PeriodLimits',[seconds(0.2) seconds(3)]), 然后日志2(0.2 / 3)≤1 / fb。VoicesPerOctave

数据类型:持续时间

莫尔斯小波的时间-带宽乘积,指定为一个正标量。该属性仅在小波属性是'莫尔斯'.此属性指定MORSE小波的时间带宽乘积,其对称参数(伽马)固定在3。TimeBandwidth是严格大于3且小于或等于120的正数。

时间带宽产品越大,小波越散开,小波越窄。莫尔斯小波及时的标准偏差约为√TimeBandwidth / 2).频率的标准偏差约为1/2 *√2 / TimeBandwidth.看广义莫尔斯和分析Marlet小波

TimeBandwidth小波分析器属性不能指定。

用符号表示莫尔斯小波TimeBandwidthP.2

例子:“TimeBandwidth”,20

数据类型:

Morse小波参数,指定为双元素矢量。第一元素是对称参数(伽马),必须大于或等于1.第二元素是时间带宽产品,必须严格大于伽马。时间带宽产品与伽玛的比率不能超过40。

当等于3时,莫尔斯小波在频域是完全对称的。偏度等于0。gamma值大于3导致正偏度,而gamma值小于3导致负偏度。小波分析器只有在小波属性设置为'莫尔斯'

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

小波分析器TimeBandwidth属性不能指定。

例子:“WaveletParameters”,[4,20]

信号的边界扩展,指定为“反射”'定期'.确定如何在边界处处理数据。

例子:'边界','定期'

对象的功能

WT. 带滤波器组的连续小波变换
freqz CWT滤波器组频率响应
timeSpectrum 上小波频谱
scaleSpectrum 尺度平均小波谱
小波 CWT滤波器组时域小波
尺度 CWT过滤器银行秤
Wavelet金宝appsupport. 支持CWT滤波器组时间金宝app
QFactor. CWT滤波器组质量因子
powerbw CWT滤波器组3 dB带宽
centerFrequencies CWT滤波器组带通中心频率
centerPeriods CWT过滤器银行带通中心周期

例子

全部折叠

创建连续小波变换滤波器组。

fb = cwtfilterbank
fb = cwtfilterbank with properties: VoicesPerOctave: 10 Wavelet: 'Morse' SamplingFrequency: 1 SamplingPeriod: [] PeriodLimits: [] SignalLength: 1024 FrequencyLimits: [] TimeBandwidth: 60 Wavelet parameters: [] Boundary: 'reflection'

绘制幅度频率响应。

Freqz(FB)

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

创建两个正弦波,频率分别为16和64赫兹。数据采样频率为1000hz。画出信号。

Fs = 1 e3;t = 0:1 / Fs: 1 - 1 / f;x = cos(2 *π* 64 * t) * (t > = 0.1 & t < 0.3) +罪(2 *π* 16 * t) * (t > = 0.5 & t < 0.9);情节(t, x)标题('信号'

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

为信号创建一个CWT滤波器组。画出滤波器组中小波的频率响应。

fb = cwtfilterbank (“SignalLength”,numel(t),'采样频率'Fs);freqz(神奇动物)标题(“频率响应-莫尔斯(3,60)小波”

图中包含一个轴对象。标题为频率响应-莫尔斯(3,60)小波的轴对象包含71个类型为线的对象。

解析莫尔斯(3,60)小波是滤波器组中的默认小波。小波的时间-带宽乘积等于60。创建第二个滤波器组与第一个滤波器组相同,但使用解析莫尔斯(3,5)小波。在第二滤波器组中绘制小波的频率响应。

fb3x5 = cwtfilterbank (“SignalLength”,numel(t),'采样频率'Fs,......'timebandwidth'5);图Freqz(FB3X5)标题('频率响应 - 莫尔斯(3,5)小波'

图中包含一个轴对象。标题为频率响应-莫尔斯(3,5)小波的轴对象包含96个类型为线的对象。

观察频率响应比第一个滤波器组更宽。莫尔斯(3,60)小波比莫尔斯(3,5)小波具有更好的频率局域性。将每个滤波器组应用于信号,并绘制得到的标量图。观察莫尔斯(3,60)小波比莫尔斯(3,5)小波有更好的频率分辨率。

类图(x,'ilterbank',fb)标题(“震级标度图-莫尔斯(3,60)”

图中包含一个轴对象。具有标题尺度标题缩放 - 摩尔斯(3,60)的轴对象包含3个类型图像,线,区域。

类图(x,'ilterbank'fb3x5)标题(“星等标量图-莫尔斯(3,5)”

图中包含一个轴对象。标题为“大小标尺图-莫尔斯(3,5)”的轴对象包含3个类型为图像、线、区域的对象。

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

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

frq1 = 32;amp1 = 1;frq2 = 64;amp2 = 2;Fs = 1 e3;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)网格包含(的时间(秒)) ylabel (“振幅”)标题('信号'

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

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

fb = cwtfilterbank (“SignalLength”元素个数(x),'采样频率'Fs,......“FrequencyLimits”[100]);图freqz (fb)

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

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

类图(x,'ilterbank'fb)

图中包含一个轴对象。具有标题幅度标题标题尺度标题的轴对象包含3个类型图像,行,区域的对象。

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

此示例显示了如何改变广义莫尔斯小波的时间带宽参数,以近似分析Morlet小波。

广义莫尔斯小波是一个完全分析小波的家族。Morse小波有两个参数,对称性和时间带宽产品。您可以改变这些参数以获得具有不同属性和行为的分析小波。有关其他信息,请参阅莫尔斯小波和其中的参考文献。

载入1995年神户地震记录的地震仪数据。这些数据是1995年1月16日在澳大利亚霍巴特的塔斯马尼亚大学(Tasmania University, Hobart, Australia)记录的地震仪(垂直加速度,纳米/平方秒)测量数据,从20:56:51 (GMT)开始,以1秒为间隔持续51分钟。创建具有可以应用于数据的默认设置的CWT过滤器。使用过滤器组生成标量程表。

负载科比fb = cwtfilterbank (“SignalLength”,numel(神户),'采样频率'1);类(科比,'ilterbank'fb)

图中包含一个轴对象。具有标题幅度标题标题尺度标题的轴对象包含3个类型图像,行,区域的对象。

小波系数的幅度在10MHz至100MHz的频率范围内大。使用设置为这些值的频率限制创建一个新的过滤器组。生成缩放图。

fb2 = cwtfilterbank (“SignalLength”,numel(神户),'采样频率',1,......“FrequencyLimits”,[1E-2 1E-1]);类(科比,'ilterbank'fb2)标题(“违约(60)莫尔斯”

图中包含一个轴对象。轴对象的标题默认(3,60)莫尔斯包含3个对象类型的图像,线,区域。

默认情况下,cwtfilterbank使用(3,60)莫尔斯小波。用相同频率限制的分析Morlet小波创建一个滤波器组。生成一个尺度图,并与(3,60)莫尔斯小波生成的尺度图进行比较。

fbMorlet = cwtfilterbank (“SignalLength”,numel(神户),'采样频率',1,......“FrequencyLimits”(1)依照1 e 1),......“小波”“爱”);类(科比,'ilterbank'fbMorlet)标题(“分析Morlet”

图中包含一个轴对象。以解析Morlet为标题的轴对象包含图像、线、面积3个对象。

Morlet小波在频率上不像(3,60)Morse小波那样具有很好的局部性。然而,通过改变时间-带宽乘积,可以创建具有类似于Morlet小波性质的Morse小波。

使用莫斯特小波创建一个过滤器银行,时间带宽值30[2],频率限制如上所述。生成地震数据的缩放图。注意频率涂抹几乎与Morlet结果相同。

fbMorse = cwtfilterbank (“SignalLength”,numel(神户),'采样频率',1,......“FrequencyLimits”(1)依照1 e 1),......'timebandwidth', 30);类(科比,'ilterbank'fbMorse)标题(“莫尔斯(3、30)”

图中包含一个轴对象。具有标题(3,30)摩尔斯的轴对象包含3个类型图像,线,区域的对象。

现在检查与之相关的小波fbMorletfbMorse滤波器。从两个滤波器组中,得到小波中心频率、滤波器频率响应和时域小波。确认中心频率几乎相同。

cfMorlet = centerFrequencies (fbMorlet);[frMorlet, fMorlet] = freqz (fbMorlet);[wvMorlet, tMorlet] =小波(fbMorlet);cfMorse = centerFrequencies (fbMorse);[frMorse, fMorse] = freqz (fbMorse);[wvMorse, tMorse] =小波(fbMorse);disp ([“中心频率数”:num2str(长度(cfMorlet))));
中心频率数:34
disp (['最大差异:'num2str (max (abs (cfMorlet-cfMorse)))));
最大的区别:2.7756 e-17

每个过滤器组包含相同数量的小波。选择中央频率,并绘制来自每个滤波器组的相关滤波器的频率响应。确认响应几乎相同。

wv = 13;图绘图(Fmorlet,Frmorlet(wv,:));抓住情节(fMorse frMorse(西弗吉尼亚州,:));网格标题(的频率响应)包含(“频率”) ylabel (“振幅”) 传奇('Morlet'“莫尔斯(3、30)”

图中包含一个轴对象。标题为“频率响应”的轴对象包含两个类型为line的对象。这些物体代表Morlet,(3,30)莫尔斯。

绘制与同一中心频率相关的时域小波。确认它们几乎是相同的。

figure subplot(2,1,1) plot(tMorlet,real(wvMorlet(wv,:))) hold绘图(TMorse,Real(WVMorse(WV,:)))网格标题(“真实”的) 传奇('Morlet'“莫尔斯(3、30)”) xlim(100年[-100])次要情节(2,1,2)情节(tMorlet,图像放大(wvMorlet(西弗吉尼亚州,:)))情节(tMorse图像放大(wvMorse(西弗吉尼亚州,:)))网格标题(“虚”) 传奇('Morlet'“莫尔斯(3、30)”) xlim(100年[-100])

图中包含2个轴对象。轴对象1具有标题Real包含2个类型的2个对象。这些物体代表Morlet,(3,30)莫尔斯。带有标题的轴对象2包含2个类型的2个对象。这些物体代表Morlet,(3,30)莫尔斯。

此示例显示增加时间带宽产品 P. 2 产生一个在包络下有更多振荡的小波。增加 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))网格抓住图(t,real(m60)) xlim([- 3030]) legend(“abs (m60)”“真实的(m60)”图像放大(m60)”)标题(“TimeBandwidth = 60 ')子图(2,1,2)图(t,abs(m10))网格抓住图(t,real(m10))图(t,imag(m10)) xlim([-30 30])“abs (m10)”'真的(m10)'“图像放大(m10)”)标题(“TimeBandwidth = 10”

图中包含2个轴对象。轴对象1具有标题带时间带宽= 60包含3个类型的线。这些对象表示ABS(M60),Real(M60),Imm(M60)。具有标题TimeBandWidth = 10的轴对象2包含3个类型的线。这些对象表示ABS(M10),Real(M10),Imm(M10)。

对齐峰值m60m10级频率响应。验证频率响应m60小波比频率响应更窄m10小波。

CF60 = CenterFrequence(FB60);CF10 =中心频率(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))。'])网格传奇(“时间带宽= 60 '“时间带宽= 10”)标题(级频率响应的

图中包含一个轴对象。具有标题幅度频率响应的轴对象包含2个类型的类型。这些对象表示时间带宽= 60,Time-BandWidth = 10。

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

载入1995年神户地震记录的地震仪数据。这些数据是1995年1月16日在澳大利亚霍巴特的塔斯马尼亚大学(Tasmania University, Hobart, Australia)记录的地震仪(垂直加速度,纳米/平方秒)测量数据,从20:56:51 (GMT)开始,以1秒为间隔持续51分钟。创建可应用于数据的CWT筛选器组。

负载科比fb = cwtfilterbank (“SignalLength”,numel(神户),'采样频率'1);

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

num = 250;抽搐;为了k = 1:num cfs = cwt(神户);结束toc
运行时间为6.551628秒。

现在使用WT.过滤器组的对象功能拍摄数据的CWT。使用过滤器银行确认更快。

抽搐;为了K =1:num CFS = wt(fb,科比);结束toc
经过时间为3.782376秒。

这个例子展示了如何在图形子图中绘制CWT标量图。

加载语音样本。数据采样频率为7418 Hz。绘制默认的CWT标量图。

负载mtlb类(mtlb Fs)

图中包含一个轴对象。具有标题幅度标题标题尺度标题的轴对象包含3个类型图像,行,区域的对象。

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

[CFS,FRQ] = CWT(MTLB,FS);

CWT.功能设置标量程中的时间和频率轴。创建表示样本时间的向量。

经颅磁刺激=(0:元素个数(mtlb) 1) / Fs;

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

图形子图(2,1,1)绘图(TMS,MTLB)轴标题(“信号量图”)包含(“时间(s)”) ylabel (“振幅”)子图(2,1,2)表面(TMS,FRQ,ABS(CFS))轴阴影包含(“时间(s)”) ylabel (的频率(赫兹)甘氨胆酸)组(,'yscale''日志'

图中包含2个轴对象。标题为信号和标量图的轴对象1包含一个类型为line的对象。axis对象2包含一个类型为surface的对象。

提示

  • 首次使用过滤器组拍摄信号的CWT时,小波滤波器被构造成具有与信号相同的数据类型。当您将相同的滤波器组应用于具有不同数据类型的信号时生成警告消息。更改数据类型具有重新设计或更改滤波器库的精度的成本。有关最佳性能,请使用一致的数据类型。

  • 在执行多个CWT时,例如在循环内部,推荐的工作流程首先创建一个cwtfilterbank对象,然后使用WT.对象功能。此工作流程最小化开销和最大化性能。看在多时间序列上使用CWT滤波器组

兼容性的考虑

全部展开

不推荐以R2018B开始

参考文献

[1] Lilly,J.M.和S. C. Olhede。“广义莫尔斯小波作为分析小波的超家族。”IEEE信号处理汇刊.第60卷,第11期,2012,pp. 6036-6041。

[2] Lilly,J.M.和S. C. Olhede。“分析小波的高阶属性。”IEEE信号处理汇刊.第57卷,第1期,2009年,146-160页。

[3] Lilly,J. M.jLab:用于Matlab的数据分析包1.6.2版本。2016.http://www.jmlilly.net/jmlsoft.html。

Lilly,J.M。“元素分析:基于小波的方法,用于分析嘈杂的时间序列中的时间局限性事件。”英国皇家学会学报A。第473卷:20160776,2017,第1-28页。dx.doi.org/10.1098/rspa.2016.0776。

扩展能力

在R2018A介绍