主要内容

findsignal

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

描述

例子

istart, istop,经销) = findsignal (数据,信号返回数据数组段的开始和停止索引,数据,它与搜索数组最匹配,信号.最佳匹配段是这样的经销,即线段与搜索数组之间的平方欧几里得距离最小。如果数据信号矩阵,那么findsignal的区域的开始列和结束列数据最能匹配信号.在这种情况下,数据信号必须有相同的行数。

例子

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

例子

findsignal (___没有输出参数的图数据并突出任何已确定的实例信号

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

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

  • 如果数组是实矩阵,则函数使用显示亮度图像来显示信号在一个次要情节和数据另一副图上高亮显示的区域。

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

例子

全部折叠

生成一个数据集,由一个5hz的高斯脉冲组成,带宽为50%,以1 kHz的速率采样半秒。

fs = 1 e3;t = 0:1 / fs: 0.5;data = gauspuls (0.5 t) 5);

创建一个包含一个半周期的10hz正弦信号。绘制数据集和信号。

ts = 0:1 / fs: 0.15;信号= cos(2 *π* 10 * ts);次要情节(2,1,1)情节(t)数据)标题(“数据”)子图(2,1,2)图(ts,信号)标题(“信号”

图中包含2个轴对象。带有标题Data的轴对象1包含一个类型为line的对象。标题为Signal的轴对象2包含一个类型为line的对象。

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

图findsignal(数据、信号)

图中包含2个轴对象。带有标题信号的轴对象1包含一个类型为line的对象。轴对象2与标题信号匹配发现:1包含2个类型为line的对象。这些对象表示数据、信号。

向数据集添加两个明显的外围部分。找出在绝对距离最小的意义上最接近信号的线段。

dt =数据;dt (t > 0.31科技< 0.32)= 2.1;dt (t > 0.32科技< 0.33)= -2.1;findsignal (dt,信号,“指标”,“绝对”

图中包含2个轴对象。带有标题信号的轴对象1包含一个类型为line的对象。轴对象2与标题信号匹配发现:1包含2个类型为line的对象。这些对象表示数据、信号。

x如果拉伸导致最近的数据段和信号之间的绝对距离更小,则-坐标轴拉伸。

findsignal (dt,信号,“TimeAlignment”,“dtw”,“指标”,“绝对”

图中包含2个轴对象。带有标题信号的轴对象1包含一个类型为line的对象。轴对象2与标题信号匹配发现:1包含2个类型为line的对象。这些对象表示数据、信号。

向数据集添加另外两个外围部分。

dt (t > 0.1科技< 0.11)= 2.1;dt (t > 0.11科技< 0.12)= -2.1;findsignal (dt,信号,“TimeAlignment”,“dtw”,“指标”,“绝对”

图中包含2个轴对象。带有标题信号的轴对象1包含一个类型为line的对象。轴对象2与标题信号匹配发现:1包含2个类型为line的对象。这些对象表示数据、信号。

找出离信号最近的两个数据段。

findsignal (dt,信号,“TimeAlignment”,“dtw”,“指标”,“绝对”,...“MaxNumSegments”, 2)

图中包含2个轴对象。带有标题信号的轴对象1包含一个类型为line的对象。找到带有标题信号的轴对象2:2包含2个类型为line的对象。这些对象表示数据、信号。

回到找到一个片段。选择“功能”随着x设在拉伸标准。选择编辑距离公差为3。非匹配样品之间的编辑距离独立于实际的分离,使“功能”健壮的异常值。

findsignal (dt,信号,“TimeAlignment”,“功能”,“EDRTolerance”,3,...“指标”,“绝对”

图中包含2个轴对象。带有标题信号的轴对象1包含一个类型为line的对象。轴对象2与标题信号匹配发现:1包含2个类型为line的对象。这些对象表示数据、信号。

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

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

  • 减去窗口内数据的均值,然后除以当地的标准偏差。

找出与归一化信号有最小绝对距离的归一化数据段。显示数据和信号的非规范化和规范化版本。

findsignal (dt,信号,“TimeAlignment”,“功能”,“EDRTolerance”,3,...“归一化”,“zscore”,“NormalizationLength”21岁,...“指标”,“绝对”,“注释”,“所有”

图中包含4个轴对象。标题为Signal的轴对象1包含一个类型为line的对象。标题为归一化信号的轴对象2包含一个类型为line的对象。带有标题数据的轴对象3包含2个类型为line的对象。这些对象表示数据、信号。标题为归一化数据的轴对象4包含2个类型为line的对象。这些对象表示数据、信号。

生成一个随机的数据数组:

  • 平均值在七个区域中都是不变的,而在各个区域之间则会突然变化。

  • 在五个区域中,每个区域的标准差都是不变的,而在各个区域之间,标准差会突然发生变化。

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]”)标题(“手段”700) xlim([0])文本(lr * nv *纳米* ((0:1 / nm: 1 - 1 /海里)+ 1 /(2 *海里)),7 *(1海里),num2str (mns),...“HorizontalAlignment”,“中心”[y;v.*y]') title([y;v.*y]')“性病”700) xlim([0])文本(lr * nv *纳米* ((0:1 / nv: 1 - 1 / nv) + 1 / (2 * nv)), 7 * (nv), num2str(工具),...“HorizontalAlignment”,“中心”)子地块(2,2,4)“最后一次”700) xlim ([0])

图中包含4个轴对象。标题为Original的轴对象1包含一个类型为line的对象。带有标题的轴对象2包含9个类型为line, text的对象。带有标题STD的axis对象3包含7个类型为line, text的对象。标题为Final的轴对象4包含一个类型为line的对象。

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

sg = randn(1、2 * lr) / 2;findsignal (t, sg)

图中包含2个轴对象。带有标题信号的轴对象1包含一个类型为line的对象。轴对象2与标题信号匹配发现:1包含2个类型为line的对象。这些对象表示数据、信号。

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

sg = randn(1、2 * lr) * 2;findsignal (t, sg)

图中包含2个轴对象。带有标题信号的轴对象1包含一个类型为line的对象。轴对象2与标题信号匹配发现:1包含2个类型为line的对象。这些对象表示数据、信号。

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

sg = randn(1、2 * lr) * 2 + 2;findsignal (t, sg)

图中包含2个轴对象。带有标题信号的轴对象1包含一个类型为line的对象。轴对象2与标题信号匹配发现:1包含2个类型为line的对象。这些对象表示数据、信号。

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

sg = randn(1、2 * lr) * 3 - 4;findsignal (t, sg)

图中包含2个轴对象。带有标题信号的轴对象1包含一个类型为line的对象。轴对象2与标题信号匹配发现:1包含2个类型为line的对象。这些对象表示数据、信号。

重复计算,但这次从信号和数据中减去平均值。

findsignal (t, sg,“归一化”,“zscore”,“注释”,“所有”

图中包含4个轴对象。标题为Signal的轴对象1包含一个类型为line的对象。标题为归一化信号的轴对象2包含一个类型为line的对象。带有标题数据的轴对象3包含2个类型为line的对象。这些对象表示数据、信号。标题为归一化数据的轴对象4包含2个类型为line的对象。这些对象表示数据、信号。

设计一种类似于早期计算机输出的字体。用它来写单词MATLAB®。

rng默认的装备= @ (x) dec2bin (x ') -48;M = chr([34 34 54 42 34 34 34 34]);A = chr([08 20 34 34 62 34 34]);T = chr([62 08 08 08 08 08 08 08 08 08 08 08]);L = chr([32 32 32 32 32 32 62]);B = chr([60 34 34 60 34 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]) spy(MATLAB) xlabel() ylabel (“原始”subplot(4,1, Kj,)“XLim”, 60[0])间谍([c (M) c (A) c (T) (L) c c (A) (B)))包含() ylabel (“腐败”结束

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

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

= [c(M) c(A) c(T) c(L) c(A) c(B)];胡志明市= c (A);(是,印第安纳州,dst) = findsignal (corr胡志明市);CLF subplot(2,1,1) spy(sgn) subplot(2,1,2) spy(corr) CHK = 0 (size(corr));嗯(:,是:印第安纳)= corr(:,是:印第安纳);持有间谍(嗯,‘* k”)举行

图中包含2个轴对象。axis对象1包含一个类型为line的对象。axis对象2包含2个类型为line的对象。

dst
dst = 11

允许水平轴拉伸。最近的段是搜索数组和a的第一个实例的交集段与数组之间的距离为零。

(是,印第安纳州,dst) = findsignal (corr、胡志明市、“TimeAlignment”,“dtw”);Subplot (2,1,1) spy(sgn) Subplot (2,1,2) spy(corr) CHK = 0 (size(corr));嗯(:,是:印第安纳)= corr(:,是:印第安纳);持有间谍(嗯,‘* k”)举行

图中包含2个轴对象。axis对象1包含一个类型为line的对象。axis对象2包含2个类型为line的对象。

dst
dst = 0

的内置功能重复计算findsignal.除以局部均值使数据和信号归一化。使用对称的Kullback-Leibler度量。

findsignal (corr、胡志明市、“TimeAlignment”,“dtw”,...“归一化”,“权力”,“指标”,“symmkl”,“注释”,“所有”

图中包含4个轴对象。标题为Signal的轴对象1包含一个类型为image的对象。标题为归一化信号的轴对象2包含一个类型为图像的对象。带有标题数据的轴对象3包含3个类型为image, patch的对象。轴对象4标题归一化数据包含3个类型为图像,补丁的对象。

输入参数

全部折叠

指定为向量或矩阵的数据数组。

数据类型:|
复数的支持:金宝app是的

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

数据类型:|
复数的支持:金宝app是的

名称-值参数

指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“MaxNumSegments”2“度量”,“方”,“正常化”,“中心”、“NormalizationLength”,11找到数据数组中与搜索信号有最小平方欧几里得距离的两段。数据和信号都是通过减去滑动窗口的均值来归一化的。窗口在每个点的任意一侧都有5个样本,总长度为5 + 5 + 1 = 11个样本。

归一化统计,指定为逗号分隔的对,由“归一化”其中一个价值观是:

  • “没有”-不要正常化。

  • “中心”-减去局部均值。

  • “权力”-除以当地平均值。

  • “zscore”-减去本地均值,再除以本地标准差。

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

数据类型:|

最大段距离,指定为由逗号分隔的对组成“MaxDistance”一个正的实标量。如果您指定“MaxDistance”,然后findsignal的所有段的开始和停止索引数据的距离信号局部极小值和小于“MaxDistance”

数据类型:|

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

数据类型:|

时间对齐技术,指定为逗号分隔对组成“TimeAlignment”其中一个价值观是:

  • “固定”-不要拉伸或重复样品,以尽量缩短距离。

  • “dtw”-试图通过拉伸时间轴和重复数据或信号中的采样来减少距离。看到dtw为更多的信息。

  • “功能”-尽量减少编辑次数,使数据段的每个剩余样本与其对应的信号之间的距离在给定的公差内。编辑包括从数据、信号或两者中删除一个样本。参数指定公差“EDRTolerance”论点。当任何输入数组都有异常值时,请使用此选项。看到功能为更多的信息。

编辑距离公差,指定为逗号分隔对组成“EDRTolerance”一个实标量。时,使用此参数查找信号“TimeAlignment”名称-值对参数设置为“功能”

数据类型:|

距离度量,指定为逗号分隔对,由“指标”其中一个“方”,“绝对”,“欧几里得”,或“symmkl”.如果XY都是K维信号,然后度规规定dX,Y)之间的距离th的样本Xnth的样本Y.看到动态时间扭曲有关dX,Y).

  • “方”-欧几里得度量的平方,由差的平方和组成:

    d n X , Y k 1 K x k , y k , n x k , y k , n

  • “欧几里得”-差的平方和,也称为欧几里得或2度量:

    d n X , Y k 1 K x k , y k , n x k , y k , n

  • “绝对”-绝对差异之和,又称曼哈顿、城市街区、出租车或1度量:

    d n X , Y k 1 K | x k , y k , n | k 1 K x k , y k , n x k , y k , n

  • “symmkl”-对称Kullback-Leibler度量。这个度量仅对实数和正数有效XY

    d n X , Y k 1 K x k , y k , n 日志 x k , 日志 y k , n

绘图样式,指定为逗号分隔对,由“注释”其中一个价值观是:

  • “数据”绘制数据并突出显示与信号最匹配的区域。

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

  • “所有”在单独的子图中绘制信号、数据、归一化信号和归一化数据。

如果调用,此参数将被忽略findsignal输出参数。

输出参数

全部折叠

段开始和结束索引,以整数标量或向量的形式返回。

以标量或矢量形式返回的最小数据信号距离。

扩展功能

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

介绍了R2016b