主要内容

cwtfilterbank

连续小波变换滤波器组

描述

cwtfilterbank创建连续小波变换(CWT)滤波器库。过滤器银行中使用的默认小波是分析摩尔斯(3,60)小波。您可以改变MORSE小波的时间带宽和对称参数,以满足您的需求的莫尔斯小波。您还可以使用分析Morlet(Gabor)小波或凸块小波。在以时间频率分析多个信号时,为了提高计算效率,您可以将过滤器重新编译一次,然后将滤波器组传递为输入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.SignalLength2000年,你必须创建第二个滤波器fb2使用2001个样本处理信号。你不能分配不同的SignalLengthFB.

特性

全部展开

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

例子:'signallength',1700

数据类型:

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

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

对于Morse小波,您还可以使用以下方式参数化小波TimeBandwidth或者小波分析器特性。

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

用于CWT的每个八度音程的声音数量指定为偶数整数,从4到48中指定为偶数整数。使用指定的每个octave数量的声音数是离散的。小波频率和时间的能量扩展自动确定最小和最大尺度。

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

例子:'voicesperoctave',20

数据类型:单身的|

赫兹的采样频率指定为正标量。如果未指定,则频率处于循环/样本,奈奎斯特频率为½。要在句点中指定尺度,请使用SamplingPeriod.PeriodLimits特性。

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

例子:'抽样频道',5

数据类型:单身的|

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

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

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

例子:'SamplingFrequency',20, 'FrequencyLimits',[1 5]

数据类型:

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

例子:'SamplingPeriod',秒(0.5)

数据类型:期间

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

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

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

例子:“SamplingPeriod”,秒(0.1),“句点小层次”,[秒(0.2)秒(1)]

数据类型:期间

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

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

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

在符号中莫尔斯小波TimeBandwidthP.2

例子:“TimeBandwidth”,20

数据类型:

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

当γ等于3,莫尔斯小波是在频域中完全对称。偏度等于伽玛大于3结果在正偏态的0值,而伽玛值小于3结果在负偏度。小波分析器如果是小波属性设置为'莫尔斯'

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

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

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

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

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

对象功能

WT. 带滤波器组的连续小波变换
弗里克 CWT过滤器银行频率响应
timespectum. 时间平均小波谱
scalespectum 尺度平均小波谱
小波 CWT滤波器组时域小波
CWT过滤器银行秤
Wavelet金宝appsupport. 支持CWT滤波器组时间金宝app
QFactor. CWT过滤器银行质量因素
Powerbw. CWT过滤器银行3 DB带宽
centerFrequencies CWT滤波器组带通中心频率
centerPeriods CWT过滤器银行带通中心周期

例子

全部收缩

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

fb = cwtfilterbank
FB = CWTFilterBank具有属性:VOISEPEROCTAVE:10小波:'MORSE'采样频率:1 SAMPLINGPERIOD:[] SEERDISHINITS:[] SUNDALLEND:1024频率:[] TIMEBANDWIDTH:60 WaveletParameters:[]边界:'反射'

绘制幅度频率响应。

Freqz(FB)

图中包含一个坐标轴。标题为CWT Filter Bank的轴包含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)标题('信号'

图中包含一个坐标轴。具有标题信号的轴包含类型线的对象。

创建的信号CWT滤波器组。积于滤波器组的小波的频率响应。

fb = cwtfilterbank ('SignalLength',numel(t),'采样频率',fs);Freqz(FB)标题(“频率响应-莫尔斯(3,60)小波”

图中包含一个坐标轴。具有标题频率响应的轴 -  MORSE(3,60)小波包含71个类型线的物体。

解析莫尔斯(3,60)小波是默认的小波滤波器组。小波具有时间 - 带宽积等于60创建第二滤波器组相同于第一滤波器组,而是使用解析莫尔斯(3,5)小波。积于第二滤波器组的小波的频率响应。

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

图中包含一个坐标轴。具有标题频率响应的轴 -  MORSE(3,5)小波包含96个类型的线路。

观察到的频率响应比在第一滤波器组宽。小波频率比的莫尔斯(3,5)小波更好局部莫尔斯(3,60)。每个滤波器组应用到信号并绘制所产生的尺度图。观察小波具有更好的频率分辨率比莫尔斯(3,5)小波莫尔斯(3,60)。

类图(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(“振幅”)标题('信号'

图中包含一个坐标轴。具有标题信号的轴包含类型线的对象。

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

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

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

CWT.和滤波器组绘制信号的缩放图。

类图(x,'ilterbank'fb)

图中包含一个坐标轴。标题为“大小标量图”的轴包含图像、线、面积3个对象。

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

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

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

装载1995年神户地震期间记录的地震仪数据。数据是在塔斯马尼亚大学,澳大利亚霍巴特,1995年1月16日开始于1995年1月16日(GMT)开始进行地震仪(垂直加速,NM / SQ.SEC)测量,并以1秒钟的间隔继续51分钟。创建具有可以应用于数据的默认设置的CWT过滤器。使用过滤器组生成标量程表。

加载科比fb = cwtfilterbank ('SignalLength',numel(神户),'采样频率',1);CWT(科比,'ilterbank'fb)

图中包含一个坐标轴。标题为“大小标量图”的轴包含图像、线、面积3个对象。

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

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

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

默认情况下,cwtfilterbank使用(3,60)摩尔斯小波。使用具有相同频率限制的分析Morlet小波创建滤波器组。生成标量程表并与(3,60)莫尔斯小波生成的缩放图进行比较。

fbMorlet = cwtfilterbank('SignalLength',numel(神户),'采样频率',1,......“FrequencyLimits”,[1E-2 1E-1],......“小波”“爱”);CWT(科比,'ilterbank',fbMorlet)标题('分析Morlet'

图中包含一个坐标轴。带有标题分析Morlet的轴包含3个类型图像,线,区域。

Morlet小波在频率上不是良好的局部化,作为(3,60)莫尔斯小波。但是,通过改变时间带宽产品,您可以使用与Morlet小波类似的属性创建莫尔斯小波。

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

fbmorse = cwtfilterbank('SignalLength',numel(神户),'采样频率',1,......“FrequencyLimits”,[1E-2 1E-1],......'timebandwidth',30);CWT(科比,'ilterbank',fbmorse)标题(“莫尔斯(3、30)”

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

现在检查与之相关的小波FBMORLET.FBMorse.滤波器组。来自两个滤波器组,获得小波的中心频率,滤波器的频率响应,以及时域小波。确认中心频率几乎相同。

cfmorlet = CenterFrequencies(FBMORLET);[frmorlet,fmorlet] = freqz(fbmorlet);[WVMORLET,TMORLET] =小波(FBMORLET);cfmorse =中心频繁(FBMorse);[fmorse,fmorse] = freqz(fbmorse);[wvmorse,tmorse] =小波(FBMORSE);DISP(['中心频率数量:',num2str(长度(cfmorlet))]);
中心频率数量:34
DISP(['最大差异:',num2str(MAX(ABS(cfMorlet-cfMorse)))]);
最大差异:2.7756E-17

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

wv = 13;图绘图(Fmorlet,Frmorlet(wv,:));抓住图(fMorse,frMorse(WV,:));网格标题('频率响应')Xlabel('频率')ylabel(“振幅”) 传奇('的Morlet'“莫尔斯(3、30)”

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

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

图形子图(2,1,1)绘图(Tmorlet,Real(WVMORLET(WV,:)))保持绘图(TMorse,Real(WVMorse(WV,:)))网格标题('真实的') 传奇('的Morlet'“莫尔斯(3、30)”)XLIM([ -  100 100])副区(2,1,2)情节(tMorlet,IMAG(wvMorlet(WV,:)))保持图(tMorse,IMAG(wvMorse(WV,:)))网格标题(“虚”) 传奇('的Morlet'“莫尔斯(3、30)”)XLIM([ -  100 100])

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

此示例显示增加时间带宽产品 P. 2 Morse小波在其信封下产生了更多振荡的小波。越来越多 P. 2 在频率中缩小小波。

创建两个过滤器银行。一个过滤器银行有默认值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))网格抓住绘图(t,实用(m60))绘图(t,imag(m60))xlim([ -  30 30])图例('ABS(M60)''真的(M60)''imag(m60)')标题('timebandwidth = 60')子图(2,1,2)图(t,abs(m10))网格抓住绘图(t,实用(m10))图(t,imag(m10))xlim([ -  30 30])图例(“abs (m10)”'真的(M10)'“图像放大(m10)”)标题(“TimeBandwidth = 10”

图包含2个轴。具有标题TimeBandWidth = 60的轴1包含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))。'])网格传奇('Time-Bandwidth = 60'“时间带宽= 10”)标题('幅度频率响应'

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

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

装载1995年神户地震期间记录的地震仪数据。数据是在塔斯马尼亚大学,澳大利亚霍巴特,1995年1月16日开始于1995年1月16日(GMT)开始进行地震仪(垂直加速,NM / SQ.SEC)测量,并以1秒钟的间隔继续51分钟。创建可以应用于数据的CWT过滤器库。

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

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

NUM = 250;tic;为了k = 1:num cfs = cwt(神户);结尾TOC.
经过时间为6.551628秒。

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

tic;为了k = 1:num cfs = wt(fb,神户);结尾TOC.
经过时间为3.782376秒。

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

加载语音样本。数据以7418 Hz采样。绘制默认的CWT标量程表。

加载MTLB.CWT(MTLB,FS)

图中包含一个坐标轴。标题为“大小标量图”的轴包含图像、线、面积3个对象。

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

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

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

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

在一个新的数字中,在较低子图中绘制上部子图中的原始信号和缩放图。绘制对数标度的频率。

图形子图(2,1,1)绘图(TMS,MTLB)轴标题(“信号量图”)Xlabel('时间'')ylabel(“振幅”)子图(2,1,2)表面(TMS,FRQ,ABS(CFS))轴阴影包含('时间'')ylabel('频率(Hz)')设置(GCA,'yscale''日志'

图包含2个轴。具有标题信号和缩放图的轴1包含类型线的对象。轴2包含类型表面的物体。

提示

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

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

兼容性考虑因素

全部展开

不推荐在R2018b开始

参考文献

[1] Lilly,J.M.和S. C. Olhede。“广义莫尔斯小波作为分析小波的超家族。”IEEE信号处理汇刊.卷。60,2012年第11,2012,第11,203-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,pp。1-28。dx.doi.org/10.1098/rspa.2016.0776。

扩展能力

在R2018A介绍