主要内容

cwtfilterbank

连续小波变换滤波器组

描述

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

创造

描述

例子

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

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

神奇动物可以作为输入cwt

例子

神奇动物=cwtfilterbank(名称,值创建CWT滤波器组神奇动物具有一个或多个指定的属性名称,值成对参数。属性可以按任意顺序指定为Name1, Value1,…,的家.将每个属性名用引号括起来。

请注意

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

性质

全部展开

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

例子:“SignalLength”,1700年

数据类型:双重的

分析滤波器组中使用的小波,具体为“莫尔斯”“爱”“碰撞”.这些弦分别指定解析Morse, Morlet (Gabor)和bump小波。默认的小波是解析莫尔斯(3,60)小波。

默认情况下,对于Morse小波,频率响应衰减到Nyquist处峰值幅值的50%。对于Morlet和bump小波,频率响应衰减到峰值幅值的10%。您可以通过设置滤波器组来更改衰减百分比FrequencyLimits财产。看到cwtfreqbounds

对于莫尔斯小波,你也可以参数化小波使用时间带宽WaveletParameters财产。

例子:“小波”,“凹凸”

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

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

例子:“VoicesPerOctave”,20

数据类型:仅有一个的|双重的

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

不能同时指定SamplingFrequencySamplingPeriod财产。

例子:“SamplingFrequency”,5

数据类型:仅有一个的|双重的

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

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

如果在滤波器组中使用采样周期,则不能指定FrequencyLimits财产。

例子:“采样频率”,20,“频率极限,[15]

数据类型:双重的

采样周期,指定为标量持续时间。不能同时指定SamplingFrequencySamplingPeriod财产。

例子:“采样周期”,秒(0.5)

数据类型:持续时间

小波滤波器组的周期限制,指定为二元持续时间严格递增项为正的数组。第一个元素PeriodLimits指定最大峰值通带频率,并且必须大于或等于峰值通带频率的两倍SamplingPeriod.最小周期与最大周期之比的以2为底的对数必须小于或等于-1/内华达州哪里内华达州是每个八度的声音数。最大周期不能超过信号长度除以小波的两个时间标准差与小波峰值频率的乘积。

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

如果在滤波器组中使用采样频率,则不能指定PeriodLimits财产。

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

数据类型:持续时间

莫尔斯小波的时间-带宽乘积,指定为一个正标量。该属性仅在子波属性是“莫尔斯”。此属性指定对称参数(gamma)固定为3的Morse小波的时间带宽积。时间带宽是严格大于3且小于或等于120的正数。

时间-带宽乘积越大,小波在时间上越分散,在频率上越窄。得到了莫尔斯小波在时间上的近似标准差√TimeBandwidth / 2).频率的标准偏差约为1/2*sqrt(2/时间带宽).看到广义Morse和解析Morlet小波

时间带宽WaveletParameters属性不能同时指定。

莫尔斯小波时间带宽P2

例子:“TimeBandwidth”,20

数据类型:双重的

莫尔斯小波参数,指定为两个元素向量。第一个元素是对称参数(gamma),它必须大于或等于1。第二个元素是时间带宽积,它必须严格大于gamma。时间带宽积与gamma的比率不能超过40。

当gamma等于3时,莫尔斯小波在频域中完全对称。偏斜度等于0。gamma值大于3会导致正偏斜度,而gamma值小于3会导致负偏斜度。WaveletParameters只有在子波属性设置为“莫尔斯”

有关详细信息,请参阅莫尔斯小波

WaveletParameters时间带宽属性不能同时指定。

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

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

例子:“边界”,“周期性”

对象的功能

wt 带滤波器组的连续小波变换
freqz CWT滤波器组频率响应
timeSpectrum 上小波频谱
scaleSpectrum 尺度平均小波谱
小波 CWT滤波器组时域小波
规模 CWT滤波器组尺度
wavelet万博1manbetxsupport 支持CWT滤波器组时间万博1manbetx
qfactor CWT滤波器组质量因子
powerbw CWT滤波器组3 dB带宽
中心频率 CWT滤波器组带通中心频率
中心时段 CWT滤波器组带通中心周期

例子

全部折叠

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

fb = cwtfilterbank
fb=cwtfilterbank,属性:VoicesPerOctave:10小波:“莫尔斯”采样频率:1采样周期:[]周期限制:[]信号长度:1024频率限制:[]时间带宽:60小波参数:[]边界:“反射”

绘制幅频响应图。

频率(fb)

创建两个正弦波,频率分别为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)标题(“信号”

为信号创建CWT滤波器组。绘制滤波器组中小波的频率响应。

fb=cwtfilterbank(“信号长度”元素个数(t),“采样频率”Fs);freqz(神奇动物)标题(“频率响应-莫尔斯(3,60)小波”

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

fb3x5=cwtfilterbank(“信号长度”元素个数(t),“采样频率”Fs,...“TimeBandwidth”5);图freqz (fb3x5)标题(“频率响应-莫尔斯(3,5)小波”

观察频率响应比第一个滤波器组更宽。莫尔斯(3,60)小波比莫尔斯(3,5)小波在频率上更局部化。将每个滤波器组应用于信号并绘制结果的比例图。观察莫尔斯(3,60)小波比莫尔斯(3,5)小波具有更好的频率分辨率。

类图(x,“过滤器银行”、fb)标题(“震级标度图-莫尔斯(3,60)”

类图(x,“过滤器银行”,fb3x5)标题(“震级标度图-莫尔斯(3,5)”

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

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

frq1=32;amp1=1;frq2=64;amp2=2;Fs=1e3;t=0:1/Fs:1;x=amp1*sin(2*pi*frq1*t)。*(t>=0.1&t<0.3)+amp2*sin(2*pi*frq2*t)。*(t>0.6&t<0.9);绘制(t,x)网格在…上包含('时间(秒)')伊拉贝尔(“振幅”)标题(“信号”

创建可应用于信号的CWT滤波器组。由于信号分量频率已知,因此将滤波器组的频率限制设置为包括已知频率的窄范围。要确认范围,请绘制滤波器组的幅频响应。

fb=cwtfilterbank(“信号长度”元素个数(x),“采样频率”Fs,...“频率限制”[100]);图freqz (fb)

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

类图(x,“过滤器银行”,fb)

执行此脚本并使用数据光标确认小波系数的振幅基本上等于正弦分量的振幅。

这个例子展示了如何改变广义Morse小波的时间带宽参数来逼近解析Morlet小波。

广义Morse小波是一类精确解析小波。莫尔斯小波有两个参数,对称性和时间带宽积。您可以改变这些参数以获得具有不同属性和行为的分析小波。有关更多信息,请参阅莫尔斯小波以及其中的参考资料。

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

负载科比fb=cwtfilterbank(“信号长度”,努梅尔(神户),“采样频率”1);类(科比,“过滤器银行”,fb)

在10 ~ 100 mHz的频率范围内,小波系数的幅度较大。创建一个新的滤波器组,将频率限制设置为这些值。生成量图。

fb2 = cwtfilterbank (“信号长度”,努梅尔(神户),“采样频率”1....“频率限制”,[1e-2 1e-1]);cwt(神户、,“过滤器银行”,fb2)标题('默认(3,60)摩尔斯'

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

fbMorlet=cwtfilterbank(“信号长度”,努梅尔(神户),“采样频率”1....“频率限制”(1)依照1 e 1),...“小波”“爱”);cwt(神户、,“过滤器银行”fbMorlet)标题(“分析Morlet”

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

使用时间带宽值为30的Morse小波创建滤波器组[2],频率限制如上所述。生成地震仪数据的比例图。注意,频率中存在与Morlet结果几乎相同的涂抹。

fbMorse = cwtfilterbank (“信号长度”,努梅尔(神户),“采样频率”1....“频率限制”(1)依照1 e 1),...“TimeBandwidth”中环湾仔绕道(神户),,“过滤器银行”fbMorse)标题("(3,30)莫尔斯"

现在检查与之相关的小波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.7756e-17

每个滤波器组包含相同数目的小波。选择一个中心频率,并从每个滤波器组绘制相关滤波器的频率响应图。确认回答几乎相同。

西弗吉尼亚州= 13;图绘制(fMorlet frMorlet(西弗吉尼亚州,:));持有在…上绘图(fMorse,frMorse(wv,:);网格在…上头衔(的频率响应)xlabel(“频率”)伊拉贝尔(“振幅”)传奇(“莫雷特”"(3,30)莫尔斯"

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

figure subplot(2,1,1) plot(tMorlet,real(wvMorlet(wv,:))) hold在…上绘图(tMorse,real(wvMorse,wv,:))网格在…上头衔(“真实”的)传奇(“莫雷特”"(3,30)莫尔斯") xlim(100年[-100])次要情节(2,1,2)情节(tMorlet,图像放大(wvMorlet(西弗吉尼亚州,:)))在…上绘图(tMorse,imag(wvMorse,wv,:))网格在…上头衔(“想象的”)传奇(“莫雷特”"(3,30)莫尔斯") xlim(100年[-100])

此示例显示,增加时间-带宽乘积 P 2 产生一个在包络下有更多振荡的小波。增加 P 2 在频率上缩小小波。

创建两个过滤器组。其中一个过滤器组具有默认值时间带宽60的价值。第二组滤波器有一个时间带宽10的价值。的SignalLength两个过滤器组的样本数均为4096个。

sigLen = 4096;fb60 = cwtfilterbank (“信号长度”,sigLen);fb10=cwtfilterbank(“信号长度”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)”)标题(“时间带宽=60”)子图(2,1,2)图(t,abs(m10))网格在…上持有在…上图(t,real(m10))图(t,imag(m10)) xlim([-30 30])“abs (m10)”'真实(m10)'‘imag(m10)’)标题(“TimeBandwidth = 10”

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

cf60=中心频率(fb60);cf10=中心频率(fb10);m60cFreq=cf60(idx60);m10cFreq=cf10(idx10);频移=2*pi*(m60cFreq-m10cFreq);x10=m10.*exp(1j*freqShift*(-sigLen/2:sigLen/2-1));图表([abs(fft(m60)).“abs(fft(x10))”)网格在…上传奇(“时间带宽= 60 '“时间带宽= 10”)标题(“幅频响应”

此示例显示了在获取多个时间序列的CWT时,使用CWT滤波器组如何提高计算效率。

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

负载科比fb=cwtfilterbank(“信号长度”,努梅尔(神户),“采样频率”1);

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

num=250;tic;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)

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

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

cwt函数设置比例图中的时间轴和频率轴。创建表示采样时间的向量。

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

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

图子批次(2,1,1)图(tms,mtlb)轴头衔(“信号和比例图”)xlabel(“时间(s)”)伊拉贝尔(“振幅”)子图(2,1,2)面(tms,frq,abs(cfs))轴阴影平的包含(“时间(s)”)伊拉贝尔(的频率(赫兹)甘氨胆酸)组(,“yscale”“日志”

提示

  • 第一次使用滤波器组获取信号的CWT时,小波滤波器被构造为具有与信号相同的数据类型。当您对具有不同数据类型的信号应用相同的滤波器组时,将生成警告消息。更改数据类型会带来重新设计或更改过滤器组精度的成本。为了获得最佳性能,请使用一致的数据类型。

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

兼容性考虑

全部展开

不建议在R2018b中启动

参考文献

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

[2] 莉莉、J.M.和S.C.奥尔赫德。“解析小波的高阶性质。”IEEE信号处理汇刊第57卷,2009年第1期,第146-160页。

莉莉,j。M。jLab:用于Matlab的数据分析包,版本1.6.2.2016。http://www.jmlilly.net/jmlsoft.html.

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

扩展能力

介绍了R2018a