主要内容

findchangepts

发现信号中的突变

描述

例子

ipt=findchangepts(x返回平均值为x最重要的变化。

  • 如果x是一个向量N元素,那么findchangepts分区x分为两个区域,X(1:IPT-1)x(IPT:n),使每个区域的剩余(平方)误差与其局部平均值之和最小化。

  • 如果x是一个——- - - - - -N矩阵,然后findchangepts分区x分为两个区域,X(1:M,1:IPT-1)x(1:M,ipt:N),返回列索引,该列索引最小化每个区域与其本地的剩余误差之和- 二维意思。

例子

ipt=findchangepts(x名称,值使用名称-值对参数指定其他选项。选项包括要报告的变化点数量和要测量的统计数据,而不是平均值。看见ChangePoint检测了解更多信息。

例子

ipt剩余) = findchangepts (___还返回信号相对于模型化更改的剩余误差,包括以前的任何规范。

例子

findchangepts (___无输出参数打印信号和任何检测到的变化点。请参阅“统计”了解更多信息。

例子

全部收缩

加载包含在8192 Hz上采样的火车哨记录的数据文件。找到10分的信号均匀平方水平最显着变化。

负载火车findchangepts (y,“MaxNumChanges”,10,“统计”“rms”

计算信号的短时功率谱密度。将信号分成128个样本段,并用汉明窗窗口窗口。在邻接段和128个DFT点之间指定120个重叠样本。找到功率谱密度最大变化的10分。

[s f t pxx] =光谱图(y, 128120128 Fs);findchangepts (pow2db (pxx),“MaxNumChanges”,10)

图中包含2个轴。axis 1包含131个类型为line的对象。总残差= 2820745.8453包含类型为image, line的11个对象。

重置随机数发生器以进行可重复的结果。生成一个随机信号,其中:

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

  • 在五个区域中,每一个区域的方差都是恒定的,并且在不同区域之间变化很快。

rng (“默认”)lr=20;mns=[014-5201];nm=长度(mns);vrs=[143];nv=长度(vrs);v=randn(1,lr*nm*nv)/2;f=重塑(repmat(mns,lr*nv,1),1,lr*nm*nv);y=重塑(repmat(vrs,lr*nm,1),1,lr*nm*nv);t=v*y+f;

绘制信号,突出显示其结构的步骤。

子地块(2,2,1)地块(v)名称(“原件”)xlim([0 700])子地块(2,2,2)地块([f;v+f]')标题(“手段”)XLIM([0 700])子图(2,2,3)图([y; v。* y]')标题('variances'xlim([0 700]) subplot(2,2,4) plot(t) title(“最后一次”700) xlim ([0])

图中包含4个轴。标题为Original的轴1包含一个类型为line的对象。包含两个类型为line的对象。带有标题差异的轴3包含两个类型为line的对象。标题为Final的轴4包含一个类型为line的对象。

找出信号平均值变化最显著的五个点。

图findchangepts (t)“MaxNumChanges”5)

图中包含一个轴。变更点标题编号为5的轴总剩余误差=1989.3814包含3个line类型的对象。

找出信号均方根电平变化最显著的五个点。

找到(t,“MaxNumChanges”5,“统计”“rms”

图中包含一个坐标轴。标题为changepoints Number = 5 Total log weighted dispersion = 871.1003的轴包含2个line类型的对象。

找出信号的均值和标准差变化最大的点。

找到(t,“统计”'std'

图中包含一个坐标轴。标题为changepoints Number = 1 Total log weighted dispersion = 1263.4625的轴包含3个line类型的对象。

加载采样的语音信号 F 年代 7 4 1 8 H z .该文件包含一段女性声音的录音,她说的是“MATLAB®”。

负载MTLB.

辨别单词中的元音和辅音通过找出信号的显著变化点。将更改点的数量限制为5个。

numc = 5;[q,r] = findchangepts(mtlb,“统计”“rms”“MaxNumChanges”numc)
q =5×1132 778 1646 2500 3454
r=-4.4055e+03

绘制信号并显示ChangePoints。

findchangepts (mtlb“统计”“rms”“MaxNumChanges”numc)

图中包含一个轴。变更点标题编号=5总对数加权离散度=-4405.482的轴包含2个line类型的对象。

要在每个片段之后播放带有暂停的声音,取消注释以下行。

% soundsc(1:问(1),Fs)% for k = 1:length(q)-1% soundsc (mtlb (q (k): q (k + 1)), Fs)%暂停(1)%结束% soundsc (q(结束):长度(mtlb), Fs)

创建一个由两个振幅变化且呈线性趋势的正弦波组成的信号。

vc=sin(2*pi*(0:201)/17)。*sin(2*pi*(0:201)/19)*...(√0:0.01:1 (1:-0.01:0)^ 2)+ (0:201)/ 401;

找出信号均值变化最显著的点。的“统计”在这种情况下,名称-值对是可选的。请指定最小剩余错误改进值1。

findchangepts(风投,“统计”'意思'“MinThreshold”, 1)

图中包含一个轴。变更点标题号为2的轴总剩余误差为9.3939,包含3个line类型的对象。

找出信号的均方根水平变化最大的点。指定最小残差改进值为6。

findchangepts(风投,“统计”“rms”“MinThreshold”6)

图中包含一个轴。变更点标题编号为4的轴总对数加权离散度=-436.5368包含2个line类型的对象。

找出信号标准差变化最显著的点。指定最小残差改进值为10。

findchangepts(风投,“统计”'std'“MinThreshold”,10)

图中包含一个坐标轴。标题为changepoints Number = 26 Total log weighted dispersion = -1110.8065的轴包含3个line类型的对象。

找出信号的平均值和斜率变化最突然的点。指定最小残差改进值为0.6。

findchangepts(风投,“统计”“线性”“MinThreshold”,0.6)

图中包含一个轴。变更点标题编号=3的轴总剩余误差=7.9824包含3个line类型的对象。

产生具有20个随机对照点的二维,1000样的Bézier曲线。Bézier曲线由:

C t σ. k 0 k t k 1 - t - k P k

哪里 P k 是个 k th 控制点, t 范围从0到1,和 k 是二项式系数。绘制曲线和控制点。

m = 20;P = randn (m, 2);t = linspace (0, 1, 1000) ';波尔= t。^ (0:m - 1) * (1 - t)。^ (m - 1: 1:0);本=伽马(m)。/γ(1:m)。/γ(m: 1:1);crv =本。*波尔* P;情节(crv (: 1), crv (:, 2), P (: 1), P (:, 2),o:'

图中包含一个轴。该轴包含两个类型为line的对象。

将曲线分成三个段,使得每个段中的点处于距片段的最小距离。

findchangepts (crv ',“MaxNumChanges”3)

图中包含2个轴。axis 1包含5个类型为line的对象。带有标题的坐标轴2变更点数= 2总残差= 158.2579包含3个类型为line的对象。

将曲线分配成20个段,最合适的直线。

findchangepts (crv ',“统计”“线性”“MaxNumChanges”19)

图中包含2个轴。axis 1包含5个类型为line的对象。带有标题的轴2变更点数= 19总残差= 0.090782包含21个类型为line的对象。

通过20个随机对照点生成并绘制三维Bézier曲线。

P =兰德(m, 3);crv =本。*波尔* P;plot3 (crv (: 1), crv (:, 2), crv (:, 3), P (: 1), P (:, 2), P (:, 3),o:')xlabel(“x”)ylabel('是'

图中包含一个轴。该轴包含两个类型为line的对象。

从上面想象曲线。

查看([0 0 1])

图中包含一个轴。该轴包含两个类型为line的对象。

将曲线分成三个段,使得每个段中的点处于距片段的最小距离。

findchangepts (crv ',“MaxNumChanges”3)

图中包含2个轴。轴1包含7个类型线的物体。轴2带有变换点的标题数= 2总残差误差= 7.2855包含3个类型的线。

将曲线分配成20个段,最合适的直线。

findchangepts (crv ',“统计”“线性”“MaxNumChanges”19)

图中包含2个轴。轴1包含7个类型线的物体。轴2带标题数转换点= 19总残留误差= 0.0075362包含21个类型的线。

输入参数

全部收缩

输入信号,指定为实向量。

例子:重塑(randn (100 3) + (3 0 3), 1300)是一个随机信号,平均值两个突然变化。

例子:重塑(randn(100 3)。* 20 5] [1, 1300)是随机信号,具有两个突然变化的根均方平方级。

数据类型:仅有一个的|

名称值对参数

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

例子:“MaxNumChanges”、3、“统计”,“rms”、“MinDistance”,20找到三个点,其中均方根水平的变化是最显著的,并且这些点被至少20个样本分开。

返回的最大重大变化次数,指定为逗号分隔对组成“MaxNumChanges”和一个整数标量。找到变化最大的点后,findchangepts逐渐放宽其搜索标准,以包含更多的更改点而不超过指定的最大值。如果任何搜索设置的返回值大于最大值,那么函数将不返回任何值。如果“MaxNumChanges”,则函数返回更改最大的点。你不能指定“MinThreshold”“MaxNumChanges”同时进行。

例子:findchangepts([0 1 0])返回第二个样本的索引。

例子:findchangepts ([0 1 0], ' MaxNumChanges ', 1)返回一个空矩阵。

例子:findchangepts ([0 1 0], ' MaxNumChanges ', 2)返回第二个和第三点的索引。

数据类型:仅有一个的|

检测的变更类型,指定为逗号分隔的对组成“统计”其中一个价值观是:

  • '意思'-检测均值的变化。如果你叫findchangepts在没有输出参数的情况下,函数将绘制信号、变化点以及由连续变化点包围的每个段的平均值。

  • “rms”-检测均方根水平的变化。如果你叫findchangepts没有输出参数,函数绘制信号和变换点。

  • 'std'-检测标准差的变化,使用高斯对数似然。如果你叫findchangepts在没有输出参数的情况下,函数将绘制信号、变化点以及由连续变化点包围的每个段的平均值。

  • “线性”- 检测平均值和斜率的变化。如果你叫findchangepts在没有输出参数的情况下,函数将绘制信号、变化点和最适合由连续变化点包围的信号每个部分的线。

例子:findchangepts([0 1 2 1],'Statistic','mean')返回第二个样本的索引。

例子:findchangepts([0 1 2 1],'Statistic','rms'))返回第三个示例的索引。

更改点之间的最小样本数,指定为由逗号分隔的对组成“心灵距离”和整数标量。如果未指定此数字,则默认值为1表示平均值的更改,2表示其他更改。

例子:findchangepts(sin(2 * pi *(0:10)/ 5),'maxnumchanges',5,'Mindistance',1)返回5个指标。

例子:findchangepts(sin(2 * pi *(0:10)/ 5),'maxnumchanges',5,'Mindistance',3)返回两个指数。

例子:findchangepts(罪(2 *π*(0:10)/ 5),‘MaxNumChanges’,5‘MinDistance’,5)没有返回任何指数。

数据类型:仅有一个的|

每个变更点总剩余误差的最小改进,指定为逗号分隔对,由“MinThreshold”和表示惩罚的实数标量。此选项通过对每个预期变更点应用附加惩罚来限制返回的重大变更的数量。您不能指定“MinThreshold”“MaxNumChanges”同时进行。

例子:findchangepts([0 1 2],“MinThreshold”,0)返回两个指数。

例子:findchangepts ([0 1 2], ' MinThreshold ', 1)返回一个索引。

例子:findchangepts ([0 1 2], ' MinThreshold ', 2)没有返回任何指数。

数据类型:仅有一个的|

输出参数

全部收缩

ChangePoint位置,作为整数索引的向量返回。

信号相对于模型变化的残余误差,以向量的形式返回。

更多关于

全部收缩

ChangePoint检测

一个变换点是一个样本或时间瞬间,信号的一些统计属性突然变化。有问题的财产可以是信号的平均值,其方差或光谱特性等。

要找到信号转换点,findchangepts采用参数化全局方法。函数:

  1. 选择一个点,将信号分成两部分。

  2. 计算每个部分所需统计属性的经验估计。

  3. 在一个区域内的每个点上,测量有多少财产偏离了经验估计。添加所有点的偏差。

  4. 将偏差逐段相加,得到总残差。

  5. 改变分割点的位置,直到总残差达到最小值。

The procedure is clearest when the chosen statistic is the mean.在这种情况下,findchangepts最大限度地减少每个截面“最佳”水平面的总剩余误差。发出信号x1x2,......,xN,以及子序列均值和方差

的意思是 x x n 1 n - + 1 σ. r n x r var x x n 1 n - + 1 σ. r n x r - 的意思是 x x n 2 年代 x x | n n - + 1

在哪里平方和

年代 x y | n σ. r n x r - 的意思是 x x n y r - 的意思是 y y n

findchangepts发现k以致

J σ. 1 k - 1 x - 的意思是 x 1 x k - 1 2 + σ. k N x - 的意思是 x k x N 2 k - 1 var x 1 x k - 1 + N - k + 1 var x k x N

是最小的。这个结果可以推广到其他统计数据中去。findchangepts发现k以致

J k σ. 1 k - 1 Δ x χ x 1 x k - 1 + σ. k N Δ x χ x k x N

鉴于经验估算部分是最小的χ和偏差测量δ。

最小化残差等于最大化对数似然值。给出一个有均值的正态分布μ和方差σ2,的对数似然N独立观察

日志 π 1 N 1 2 π σ 2 e - x - μ 2 / 2 σ 2 - N 2 日志 2 π + 日志 σ 2 - 1 2 σ 2 σ. 1 N x - μ 2

  • 如果“统计”被指定为'意思',方差是固定的,并且功能使用

    σ. n Δ x χ x x n | σ. n x - 的意思是 x x n 2 n - + 1 var x x n

    如前所述。

  • 如果“统计”被指定为'std',平均值是固定的,函数使用

    σ. n Δ x χ x x n n - + 1 日志 σ. n σ 2 x x n n - + 1 日志 1 n - + 1 σ. n x - 的意思是 x x n 2 n - + 1 日志 var x x n

  • 如果“统计”被指定为“rms”时,总偏差与时相同'std'但是平均设定为零:

    σ. n Δ x χ x x n n - + 1 日志 1 n - + 1 σ. r n x r 2

  • 如果“统计”被指定为“线性”,该函数用作总偏差,信号值与最小二乘线的预测之间的平方差的总和通过值。这个数量也被称为误差平方和上席.最适合的直线通过xx+1,......,xn

    x t 年代 x t | n 年代 t t | n t - 的意思是 t t n + 的意思是 x x n

    苏格兰和南方能源公司

    σ. n Δ x χ x x n σ. n x - x t 2 年代 x x | n - 年代 x t 2 | n 年代 t t | n n - + 1 var x x n - σ. n x - 的意思是 x x n - 的意思是 + 1 n 2 n - + 1 var + 1 n

感兴趣的信号通常有多个变化点。当变化点的数量已知时,概括该过程很简单。当数量未知时,必须在剩余误差中添加惩罚项,因为添加变化点总是会减少剩余误差并导致过度拟合。在极端情况下,每个点b将其转化为一个变化点,剩余误差消失。findchangepts使用随变更点数量线性增长的惩罚项。如果有K更改点被发现,然后函数最小化

J K σ. r 0 K - 1 σ. k r k r + 1 - 1 Δ x χ x k r x k r + 1 - 1 + β K

哪里k0kK分别为信号的第一个样本和最后一个样本。

  • 比例常数,表示为β并在“MinThreshold”,对应于为每个更改点添加的固定惩罚。findchangepts如果剩余错误的减少不符合阈值,则拒绝添加其他Cranslpoints。放“MinThreshold”设置为零以返回所有可能的更改。

  • 如果您不知道要使用什么阈值,或者对信号中的变点数量有一个粗略的概念,请指定“MaxNumChanges”反而。此选项逐渐增加阈值,直到函数发现比指定值更少。

为了实现最小化,findchangepts采用基于动态规划的详尽算法,提前放弃。

参考文献

[1] kilick, Rebecca, Paul Fearnhead和Idris A. Eckley。"用线性计算成本对变化点进行最优检测"美国统计协会杂志2012年第107卷第500期,第1590-1598页。

[2] MARC Lavielle。“使用惩罚对比来改变点问题。”信号处理.卷。85,2005年8月,第1501-1510页。

另请参阅

介绍了R2016a