主要内容

findsignal.

使用相似性搜索查找信号位置

描述

例子

[istart, istopdist] = findsignal(数据信号返回数据阵列段的启动和停止索引,数据,最佳匹配搜索阵列,信号。最好匹配的部分是这样的dist,分段和搜索阵列之间的平方欧几里德距离最小。如果数据信号是矩阵,然后是findsignal.查找该区域的开始和结束列数据最能匹配信号。在这种情况下,数据信号必须具有相同数量的行。

例子

[istart, istopdist] = findsignal(数据信号名称,价值使用名称-值对参数指定其他选项。选项包括要应用的规格化、要报告的段数和要使用的距离度量。

例子

findsignal(___没有输出参数图数据并突出显示任何已识别的实例信号

  • 如果数组是实向量,则显示函数数据作为样本号的函数。

  • 如果数组是复向量,则显示函数数据在Argand图上。

  • 如果阵列是真实矩阵,则功能使用imagesc.来显示信号在子图上数据在另一个子图上突出显示的区域。

  • 如果数组是复杂矩阵,该函数将其实部和虚部绘制在每个图像的上半部分和下半部分。

例子

全部收缩

生成由具有50%带宽的5 Hz高斯脉冲组成的数据集,以1kHz的速率对半秒进行采样。

FS = 1E3;t = 0:1 / FS:0.5;数据= Gauspuls(T,5,0.5);

创建由10 Hz正弦曲线的一个半周期组成的信号。绘制数据集和信号。

TS = 0:1 / FS:0.15;信号= COS(2 * PI * 10 * TS);子图(2,1,1)绘图(T,数据)标题('数据'(2,1,2) plot(ts,signal)标题“信号”

图包含2个轴。具有标题数据的轴1包含类型线的对象。带标题信号的轴2包含类型线的对象。

找到与信号具有最小平方欧几里德距离的数据的段。绘制数据并突出显示该段。

FindSignal(数据,信号)

图包含2个轴。带标题信号的轴1包含类型线的对象。找到标题信号匹配的轴2:1包含2个类型的线。这些对象代表数据,信号。

向数据集添加两个明显离群的部分。在有最小绝对距离的情况下,找出最接近信号的线段。

dt =数据;dt (t > 0.31科技< 0.32)= 2.1;dt (t > 0.32科技< 0.33)= -2.1;finciSignal(DT,信号,'公制''绝对'

图包含2个轴。带标题信号的轴1包含类型线的对象。找到标题信号匹配的轴2:1包含2个类型的线。这些对象代表数据,信号。

让我们X-轴拉伸,如果拉伸结果在最近的数据段和信号之间的一个较小的绝对距离。

finciSignal(DT,信号,'timealignment''dtw''公制''绝对'

图包含2个轴。带标题信号的轴1包含类型线的对象。找到标题信号匹配的轴2:1包含2个类型的线。这些对象代表数据,信号。

向数据集添加两个偏远的部分。

DT(T> 0.1&T <0.11)= 2.1;DT(T> 0.11&T <0.12)= -2.1;finciSignal(DT,信号,'timealignment''dtw''公制''绝对'

图包含2个轴。带标题信号的轴1包含类型线的对象。找到标题信号匹配的轴2:1包含2个类型的线。这些对象代表数据,信号。

找到最接近信号的两个数据段。

finciSignal(DT,信号,'timealignment''dtw''公制''绝对'......“MaxNumSegments”, 2)

图包含2个轴。带标题信号的轴1包含类型线的对象。找到标题信号匹配的轴2:2包含2个类型的2个物体。这些对象表示数据,信号。

回到找到一个细分市场。选择'EDR'作为X-axis拉伸标准。选择编辑距离公差为3.非匹配样本之间的编辑距离与实际的分离无关,制作'EDR'健壮的异常值。

finciSignal(DT,信号,'timealignment''EDR'“EDRTolerance”3,......'公制''绝对'

图包含2个轴。带标题信号的轴1包含类型线的对象。找到标题信号匹配的轴2:1包含2个类型的线。这些对象代表数据,信号。

重复计算,但现在归一化数据和信号。

  • 定义一个移动窗口,其中10个样本到每个数据的任一侧和信号点。

  • 减去窗口中数据的平均值,并通过本地标准偏差除以。

找到具有与归一化信号具有最小绝对距离的归一化数据段。显示数据和信号的无通知和标准化版本。

finciSignal(DT,信号,'timealignment''EDR'“EDRTolerance”3,......“归一化”'zscore'“NormalizationLength”,21,......'公制''绝对''注释''全部'

图中包含4个轴。带标题信号的轴1包含类型线的对象。具有标题归一化信号的轴2包含类型线的对象。带标题数据的轴3包含2个类型的类型。这些对象代表数据,信号。具有标题归一化数据的轴4包含2个类型的类型。这些对象代表数据,信号。

生成一个随机数据阵列,其中:

  • 七个区域中的每一个中的平均值是恒定的,并且从区域到区域突然变化。

  • 标准偏差在五个区域中的每一个中是恒定的,并且从区域到区域突然变化。

lr = 20;MNS = [0 1 4 -5 2 0 1];纳米长度= (mns);VRS = [1 4 6 1 3]/2;nv =长度(工具);v = randn (lr *纳米* nv);f =重塑(repmat (mns、lr * nv 1), 1, lr *纳米* nv);y =重塑(repmat(工具与lr * nm, 1), 1, lr *纳米* nv);t = v * y + f;

绘制数据,突出施工的步骤。显示每个区域的平均值和标准偏差。

子图(2,2,1)绘制(v)标题(“原始”700) xlim([0])次要情节(2 2 2)情节([f; v + f]”)标题(“手段”)XLIM([0 700])文本(LR * NV * NM *((0:1 / nm:1-1 / nm)+ 1 /(2 * nm)), -  7 * ofon(1,nm),num2str(mns'),......'水平对齐'“中心”plot([y;v.*y]')标题'std'700) xlim([0])文本(lr * nv *纳米* ((0:1 / nv: 1 - 1 / nv) + 1 / (2 * nv)), 7 * (nv), num2str(工具),......'水平对齐'“中心”)子图(2,2,4)绘图(t)标题('最终的')XLIM([0 700])

图中包含4个轴。带标题原稿的轴1包含类型线的对象。带标题的轴2包含9个类型的线条,文本。带有标题STD的轴3包含7个类型的线条,文本。带有标题最终的轴4包含类型线的对象。

创建一个均值为0,标准差为1/2的随机信号。查找并显示与信号最匹配的数据数组段。

SG = RANDN(1,2 * LR)/ 2;findsignal(t,sg)

图包含2个轴。带标题信号的轴1包含类型线的对象。找到标题信号匹配的轴2:1包含2个类型的线。这些对象代表数据,信号。

创建具有零的平均值的随机信号和标准偏差为2.查找并显示最佳匹配信号的数据阵列的段。

SG = RANDN(1,2 * LR)* 2;findsignal(t,sg)

图包含2个轴。带标题信号的轴1包含类型线的对象。找到标题信号匹配的轴2:1包含2个类型的线。这些对象代表数据,信号。

创建具有2的平均值的随机信号,标准偏差为2.找到并显示最佳匹配信号的数据阵列的段。

SG = RANDN(1,2 * LR)* 2 + 2;findsignal(t,sg)

图包含2个轴。带标题信号的轴1包含类型线的对象。找到标题信号匹配的轴2:1包含2个类型的线。这些对象代表数据,信号。

创建一个均值为-4,标准差为3的随机信号。查找并显示与信号最匹配的数据数组段。

SG = RANDN(1,2 * LR)* 3-4;findsignal(t,sg)

图包含2个轴。带标题信号的轴1包含类型线的对象。找到标题信号匹配的轴2:1包含2个类型的线。这些对象代表数据,信号。

重复计算,但此时间从信号和数据中减去平均值。

findsignal(t,sg,“归一化”'zscore''注释''全部'

图中包含4个轴。带标题信号的轴1包含类型线的对象。具有标题归一化信号的轴2包含类型线的对象。带标题数据的轴3包含2个类型的类型。这些对象代表数据,信号。具有标题归一化数据的轴4包含2个类型的类型。这些对象代表数据,信号。

设计类似于早期计算机的输出的字体。使用它来写下matlab®。

RNG.默认CHR = @(x)DEC2BIN(X') -  48;m = chr([34 34 54 42 34 34 34]);a = chr([08 20 34 34 62 34 34]);T = CHR([62 08 08 08 08 08 08]);L = CHR([32 32 32 32 32 62]);B = CHR([60 34 34 60 34 60]);matlab = [m a t l a b];

通过重复字母的随机列并改变间距来损坏单词。显示原始单词和三个损坏的版本。

C = @(x)x(:,sort([1:6 randi(6,1,2)]));次要情节(4,1,1,'xlim',[0 60])间谍(MATLAB)XLABEL('')ylabel(“原始”为了kj = 2:4子图(4,1,KJ,'xlim', 60[0])间谍([c (M) c (A) c (T) (L) c c (A) (B)))包含('')ylabel(“腐败”结尾

图中包含4个轴。坐标轴1包含一个类型为line的对象。轴2包含一个类型为line的对象。坐标轴3包含一个类型为line的对象。轴4包含一个类型为line的对象。

再生成一个错误的单词。寻找嘈杂版本的字母“a”显示搜索数组与最近的数据段之间的距离。由于水平轴是刚性的,所以线段会溢出到T形。

腐蚀= [c(m)c(a)c(t)c(t)c(l)c(a)c(b)];sgn = c(a);[IST,IND,DST] = FindSignal(Cor,SGN);CLF子图(2,1,1)间谍(SGN)子图(2,1,2)间谍(COR)CHK =零(尺寸(COR));CHK(:,IST:IND)= COR(:,IST:IND);抓住间谍(嗯,'* k') 抓住离开

图包含2个轴。坐标轴1包含一个类型为line的对象。轴2包含2个类型的2个物体。

DST.
DST = 11.

允许水平轴伸展。最接近的段是搜索阵列和第一个“A”的第一个实例。段和阵列之间的距离为零。

[IST,IND,DST] = FindSignal(Cor,SGN,'timealignment''dtw');子图(2,1,1)SPY(SGN)子图(2,1,2)间谍(COR)CHK =零(尺寸(粗));CHK(:,IST:IND)= COR(:,IST:IND);抓住间谍(嗯,'* k') 抓住离开

图包含2个轴。坐标轴1包含一个类型为line的对象。轴2包含2个类型的2个物体。

DST.
DST = 0.

使用内置功能重复计算findsignal.。除以当地的均值来归一化数据和信号。使用对称kullback-Leibler度量标准。

findsignal (corr、胡志明市、'timealignment''dtw'......“归一化”'力量''公制''symmkl''注释''全部'

图中包含4个轴。带标题信号的轴1包含类型图像的对象。具有标题归一化信号的轴2包含类型图像的对象。带标题数据的轴3包含3个类型图像的对象,修补程序。具有标题归一化数据的轴4包含3个类型图像的对象,修补程序。

输入参数

全部收缩

数据数组,指定为矢量或矩阵。

数据类型:单身的|
复数支持:万博1manbetx是的

搜索数组,指定为向量或矩阵。

数据类型:单身的|
复数支持:万博1manbetx是的

名称值对参数

指定可选的逗号分离对名称,价值参数。的名字是参数名称和价值是相应的价值。的名字必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:'MaxNumSegments',2,'公制','平方','归一化','中心','ranalizationLength',11找出数据数组中与搜索信号的平方欧氏距离最小的两段。数据和信号都通过减去滑动窗口的平均值来归一化。窗口中每个点的两边各有5个样本,总长度为5 + 5 + 1 = 11个样本。

标准化统计数据,指定为逗号分隔对组成“归一化”和其中一个值:

  • '没有任何'- 不要正常化。

  • “中心”- 减去本地均值。

  • '力量'- 划分当地的意思。

  • 'zscore'- 通过当地标准偏差减去局部均值并除以。

标准化长度,指定为逗号分隔对“NormalizationLength”和一个整数标量。该值表示在数据和信号中归一化每个样本的最小样本数。如果信号是矩阵,那么“NormalizationLength”表示许多列。

数据类型:单身的|

最大段距离,指定为逗号分隔的对,由'maxdistance'和一个积极的标量。如果您指定'maxdistance', 然后findsignal.返回所有段的启动和停止索引数据的距离信号是局部极小值还是小于'maxdistance'

数据类型:单身的|

返回的最大段数,指定为逗号分隔的对组成“MaxNumSegments”和一个正整数标量。如果您指定“MaxNumSegments”, 然后findsignal.定位了数据谁到信号的距离是局部极小值并返回到“MaxNumSegments”距离最小的段。

数据类型:单身的|

时间对准技术,指定为逗号分隔对组成'timealignment'和其中一个值:

  • '固定的'-不要拉伸或重复样品,以减少距离。

  • 'dtw'- 尝试通过拉伸时间轴并在数据或信号中重复样品来减小距离。看DTW.为更多的信息。

  • 'EDR'- 最小化编辑的数量,使得数据段的每个剩余样本与其信号对应物之间的距离位于给定的公差范围内。编辑包括从数据,信号或两者中删除样本。使用该提供公差“EDRTolerance”争论。当任何输入阵列具有异常值时,请使用此选项。看edr.为更多的信息。

编辑距离公差,指定为逗号分隔对“EDRTolerance”一个实数。时使用此参数查找信号'timealignment'名称 - 值对参数设置为'EDR'

数据类型:单身的|

距离度量,指定为逗号分隔对组成'公制'一之一'squared''绝对''euclidean', 或者'symmkl'。如果Xy都是K.维信号,然后公制规定D.mXy),之间的距离m样本XN样本y。看动态时间翘曲有关D.mXy)。

  • 'squared'-欧几里得度规的平方,由差的平方和组成:

    D. m N X y = σ. K. = 1 K. X K. m - y K. N * X K. m - y K. N

  • 'euclidean'- 平方差异的根和,也称为欧几里德或2度量标准:

    D. m N X y = σ. K. = 1 K. X K. m - y K. N * X K. m - y K. N

  • '绝对'-绝对差异的总和,也被称为曼哈顿,城市街区,出租车,或1度量标准:

    D. m N X y = σ. K. = 1 K. | X K. m - y K. N | = σ. K. = 1 K. X K. m - y K. N * X K. m - y K. N

  • 'symmkl'-对称Kullback-Leibler度量。这个指标只对真实的和正的有效Xy

    D. m N X y = σ. K. = 1 K. X K. m - y K. N 日志 X K. m - 日志 y K. N

绘图样式,指定为逗号分隔对组成'注释'和其中一个值:

  • '数据'绘制数据并突出显示最佳匹配信号的区域。

  • '信号'在单独的子图中绘制信号。

  • '全部'在单独的子尺中绘制信号,数据,归一化信号和归一化数据。

如果调用,这个参数将被忽略findsignal.具有输出参数。

输出参数

全部收缩

段开始和结束指数,返回为整数标量或向量。

最小数据信号距离,作为标量或向量返回。

扩展功能

C / c++代码生成
使用MATLAB®Coder™生成C和C ++代码。

介绍在R2016B.