消除趋势

减去偏移量或从时域信号趋势包含在iddata对象

描述

消除趋势中表示的时域输入输出数据减去偏移量或线性趋势iddata对象。消除趋势无论是计算趋势数据减去或减去您指定的趋势。

对于更一般的去趋势函数,不需要iddata对象,看到消除趋势

DATA_D=去趋势(数据计算并减去每个时域信号的平均值数据。该iddata对象DATA_D数据各自含有从SISO,MIMO,或数据集multiexperiment输入和输出数据始发。

DATA_D=去趋势(数据类型减去你指定的趋势类型。您可以指定平均值、线性或自定义趋势。

[DATA_DT_r)=去趋势(___也返回减去趋势作为aTrendInfo对象,T_r。你可以获得T_r与任何先前语法输入参数的组合。

DATA_D=去趋势(数据,1brkpt使用定义的断点,计算和减去具有分段趋势的数据的分段线性趋势brkpt

第二个参数,其对应于类型,必须1

使用这种语法,您不能检索结果分段线性趋势信息作为输出。

例子

全部收缩

消除稳态信号中的偏差iddata对象的使用消除趋势计算并减去输入和输出的平均值。

加载输入和输出的时间序列数据y2u2。构建iddata目的DATA2,使用数据和采样时间为0.08秒。

加载dryer2y2u2data2 = iddata (y2, u2, 0.08);

消除趋势计算平均值并从输入和输出信号中减去它们。使用输入参数Tr以存储计算出的趋势信息。将原始数据和非趋势数据绘制在一起。

[data2_d, Tr] =去趋势(data2);情节(data2 data2_d)传说(“原始数据”“非趋势数据”

非趋势数据已移动约5个单位。检查Tr为了得到精确的平均值消除趋势计算并扣除。这些值在返回InputOffsetOutputOffset属性。

Tr
1个输入,1个输出,1个实验数据“data2”的趋势说明:DataName:‘data2’InputOffset: 5.0000 OutputOffset: 4.8901 InputSlope: 0 OutputSlope: 0

原始输入的均值大于原始输出的均值。

从一个信号中去除线性趋势iddata对象,并将趋势线覆盖在前后数据图上。

从文件中加载和绘制信号数据lintrend2。对于本例,只提供输出数据iddata目的DATAL

加载lintrend2DATAL情节(按日计算工资,“b”

图中显示的数据明显的线性趋势。用消除趋势线性选项(类型= 1)从数据中减去趋势。消除趋势拟合数据,并确定线性趋势减去。包括TrendInfo目的Tr作为输出参数,你可以看到消除趋势扣除。

[dataL_d, Tr] =去趋势(按日计算工资,1);

暗算原始数据的去趋势数据。

保持情节(dataL_d‘g’)传说(“原始”“去趋势”“位置”“西北”

线性趋势已被删除。检查Tr以获取有关去除趋势的更多信息。

Tr
数据“dataL”具有0个输入,1个输出,1个实验的趋势说明:DataName:‘dataL’InputOffset: [1x0 double] OutputOffset: 0.8888 InputSlope: [1x0 double] OutputSlope: 19.3830

OutputOffsetOutputSlope属性提供行的参数消除趋势移除。您可以重构这条线,然后将其覆盖在前后数据图上。该SamplingInstants财产按日计算工资提供与数据相关联的时间点。

m = Tr.OutputSlope
米= 19.3830
b = Tr.OutputOffset
b = 0.8888
t = dataL.SamplingInstants;TrLn = m * t + b;情节(t, TrLn'R')传说(“原始”“去趋势”“趋势线”“位置”“西北”

从包含在控件中的输入-输出信号对中去除已知偏移量IDDATA对象

去趋势可以计算和减去输入和输出信号的平均值,产生零均值的非趋势信号。但是,如果您已经预先知道您有特定的数据偏移量,那么您可以消除趋势从你的信号中减去这些。属性中指定偏移量还允许保留非零操作点消除趋势结果。

加载包含向量的SISO数据u2y2。对于本例,假设您知道两个信号与预期工作点1的偏移量为4。将这些向量组合成anIDDATA对象,使用0.08秒的样本时间,并绘制它。

加载dryer2u2y2数据= IDDATA(Y2,u2,0.08);图(数据)

的已知偏移的4(从操作点1)是在图中可见。您可以构建一个TrendInfo对象使用该函数捕获此偏移量getTrend

创建TrendInfo对象,然后设置其偏移性。

T = getTrend(数据);T。InputOffset = 4;T。OutputOffset = 4
1个输入,1个输出,1个实验的数据“data”的趋势说明:DataName:‘data’InputOffset: 4 OutputOffset: 4 InputSlope: 0 OutputSlope: 0

消除趋势减去从数据的偏移。绘制它旁边的原始数据。

DATA_D =消除趋势(数据,T);保持图(DATA_D)传奇(“原始”“去趋势”

的4偏移已被删除。

消除趋势通过指定的断点来分隔段具有分段分段线性趋势的数据。

大部分的消除趋势语法为每个信号假设和计算单一趋势。然而,在某些情况下,由于测试配置变化、环境条件或其他影响,线性趋势会出现不连续。当信号显示这样分割时,可以有消除趋势独立地操作测试片段。属性中指定断点brkpt输入参数。这些是信号中线性趋势改变斜率的时间点的指数。

你可能知道这些断点在前面的基础上,改变你知道数据收集过程中发生的。或者,你可能需要通过检查数据本身接近他们。

加载数据,检查其结构和内容,并绘制它。这个数据仅是在输出数据的iddata目的dataLb2。

加载brkTrenddataLb2dataLb2
dataLb2 =时域数据组具有512个样本。采样时间:0.00390625秒输出单元(如果指定)Y1
情节(dataLb2)

对于这个例子,数据在索引[100 300]处有已知的断点。应用样本时间(属性Ts),这些断点对应于实际时间点如下:

brkpt = (100 - 300);brkpt_time = brkpt * dataLb2.Ts
brkpt_time =1×20.3906 1.1719

采用消除趋势的数据brkpt。

dataLb2_d =消除趋势(dataLb2,1,brkpt);

绘制原始数据和非趋势数据。

图(dataLb2,dataLb2_d)传说(“原始数据”“非趋势数据”

线性趋势段已被删除。

在消除多实验数据集时,对每个实验应用一组唯一的断点。

一个multiexperiment数据集内的实验可以含有独特的线性趋势的不连续性。您可以通过在单元阵列表达他们申请了一套独特的断点到每个实验。

加载数据,包括:

  • datmult,multiexperimentiddata含有三个实验对象(仅输出)

  • BPñ向量,它以时间点索引的形式为每个实验提供已知的断点

加载multiexpdtdatmultbp1bp2bp3datmult
datmult =包含三个实验的时域数据集。实验样本样本时间exp1 250 1 exp2 320 1 exp3 350 1输出单元(如果指定)y1
bp1、bp2 bp3
BP1 =1×250 200
bp2 = 100
bp3 = []

图数据。各流之间存在着显著的差异,其漂移速率与均值为0时不同。

图(datmult)传奇

对于该组实验中,已知的是,存在由指示每次运行独特趋势和独特的不连续性BP向量。

消除趋势能不能结合这些独特的特点,如果BP信息以单元格阵列的形式提供。

构造单元格数组。

bpcell = {BP1; BP2; BP3}
bpcell =3×1单元阵列{1x2双精度}{[100]}{0x0双精度}

应用消除趋势然后用与原始图相同的比例绘制结果

datmult_d =去趋势(datmult 1 bpcell);图(datmult_d)轴([0,inf,-15,30])图例

实验数据现在更好地对齐了,并且没有明显地偏离0的平均值。

控件中包含的输入和输出信号应用不同的趋势类型iddata对象。

去趋势假设相同类型的趋势适用于输入和输出信号。在某些情况下,可能有一种趋势类型只出现在一个信号中。您可以执行消除趋势单独地对通过提取信号到单独的每个信号iddata对象。应用消除趋势到每个对象使用其单独的信号趋势类型。然后将结果重新组合成单一的非趋势iddata对象。

加载、检查和绘制数据iodatab

加载septrendiodatab;iodatab
iodatab = 1000个样本的时域数据集。采样时间:0.08秒输出单元(如果指定)y1输入单元(如果指定)u1
情节(iodatab)

输入和输出曲线图显示偏差。但是,输出曲线图还示出了倒V形的趋势,不存在于所述输入数据。

将输入数据和输出数据分离到单独的对象中,以便消除趋势iddata一般的数据选择表(见使用iddata对象表示时域和频域数据):

数据(样本,outputchannels,inputchannels)

idatab = iodatab(:,[],:);odatab = iodatab(:,:,[]);

从输入数据中去除偏移,使用消除趋势计算并减去均值。

idatab_d =消除趋势(idatab,0);

除去偏置,并从输出数据的倒V趋势,使用中点索引500作为一个断点。

odatab_d =去趋势(odatab, 1500);

将非趋势输入和输出数据合并成单个数据iddata对象。

iodatab_d = [odatab_d,idatab_d];

将非趋势数据覆盖在原始数据上。

情节(iodatab_d)传说(“原始”“去趋势”

输入和输出数据现在既不包含偏置,也不包含v形趋势。

输入参数

全部收缩

指定为一个iddata包含一组或多组时域信号的对象。该iddata对象可以包含SISO,MIMO,或数据multiexperiment。信号集可以仅包含任一输入和输出数据,或输出数据。

指定为:

  • 0 -计算并减去平均值

  • 1 -计算并减去线性趋势(最小二乘拟合)

  • TrendInfo对象—减去您在TrendInfo对象。用getTrend创建一个TrendInfo对象。对于一个示例,请参见从信号中移除指定的偏移量

趋势不连续点(断点)的时间点位置,具体为:

  • 的整数行向量 - 对于单实验SISO和MIMO数据集。这样做应用单个设置断点的所有输入和输出信号的。对于一个示例,请参见使用断点去除信号中的分段线性趋势

  • 含单独大小的整数行向量A单元阵列 - 对于多实验数据集。这样做应用于一组唯一的断点来对于每个实验的输出和输入信号。对于一个示例,请参见使用多断点集来抑制多实验信号

输出参数

全部收缩

非趋势信号,返回为iddata对象。内容的维度与内容的维度相同数据

趋势数据相减数据生产DATA_D,返回为TrendInfo对象。

当你使用brkpt指定多个趋势,你无法检索计算趋势数据。

也可以看看

|||

之前介绍过的R2006a