Вычтите смещение или тренд от сигналов временной области, содержавшихся в iddata
объекты
detrend
вычитает смещения или линейные тренды из данных ввода - вывода временного интервала, представленных в iddata
объекты. detrend
или вычисляет данные о тренде, чтобы вычесть или вычитает тренд, который вы задаете.
Для более общей функции удаления тренда, которая не требует iddata
объекты, смотрите detrend
.
вычисляет и вычитает кусочно-линейные тренды для данных с сегментированными трендами, с помощью точек останова, которые вы задаете с data_d
= detrend(data
,1,brkpt
)brkpt
.
Второй аргумент, который соответствует Type
, должен быть 1
.
С этим синтаксисом вы не можете получить получившуюся кусочно-линейную информацию о тренде как выход.
Удалите смещения из установившихся сигналов в iddata
объект при помощи detrend
вычислить и вычесть средние значения ввода и вывода.
Загрузите данные временных рядов ввода и вывода y2
и u2
. Создайте iddata
объект data2
, использование
данные и шаг расчета 0,08 секунд.
load dryer2 y2 u2 data2 = iddata(y2,u2,0.08);
Используйте detrend
и вычислить средние значения и вычесть их из сигналов ввода и вывода. Используйте входной параметр Tr
хранить вычисленную информацию тренда. Отобразите на графике исходные данные и детрендированные данные вместе.
[data2_d,Tr] = detrend(data2); plot(data2,data2_d) legend('Original Data','Detrended Data')
Детрендированные данные переключили приблизительно 5 модулями. Смотрите Tr
получить точные средние значения что detrend
вычисленный и вычтенный. Эти значения возвращены в InputOffset
и OutputOffset
свойства.
Tr
Trend specifications for data "data2" with 1 input(s), 1 output(s), 1 experiment(s): DataName: 'data2' InputOffset: 5.0000 OutputOffset: 4.8901 InputSlope: 0 OutputSlope: 0
Среднее значение исходного входа выше, чем среднее значение исходного выхода.
Удалите линейный тренд из сигнала в iddata
объект и наложение линия тренда на до и после графика данных.
Загрузите и постройте данные сигнала из файла lintrend2
. В данном примере только выходные данные обеспечиваются в iddata
объект dataL
.
load lintrend2 dataL plot(dataL,'b')
График показывает ясный линейный тренд в данных. Используйте detrend
линейная опция (Type
= 1) вычитать тренд из данных. detrend
соответствует данным и определяет линейный тренд, чтобы вычесть. Включайте TrendInfo
объект Tr
как выходной аргумент, таким образом, вы видите что detrend
вычитает.
[dataL_d,Tr] = detrend(dataL,1);
Отобразите детрендированные данные на графике против исходных данных.
hold on plot(dataL_d,'g') legend('Original','Detrended','Location','northwest')
Линейный тренд был удален. Смотрите Tr
получить больше информации об удаленном тренде.
Tr
Trend specifications for data "dataL" with 0 input(s), 1 output(s), 1 experiment(s): DataName: 'dataL' InputOffset: [1x0 double] OutputOffset: 0.8888 InputSlope: [1x0 double] OutputSlope: 19.3830
OutputOffset
и OutputSlope
свойства обеспечивают параметры линии что detrend
удаленный. Можно восстановить эту линию, и затем наложить ее на до и после графика данных. SamplingInstants
свойство DataL
предоставляет моментам времени, сопоставленным данные.
m = Tr.OutputSlope
m = 19.3830
b = Tr.OutputOffset
b = 0.8888
t = dataL.SamplingInstants; TrLn = m*t+b; plot(t,TrLn,'r') legend('Original','Detrended','Trendline','Location','northwest')
Удалите известные смещения из пары сигнала ввода - вывода, содержавшейся в iddata object
.
Detrend
может вычислить и вычесть средние значения для сигналов ввода и вывода, приводящий к нулевому среднему значению детрендировал сигналы. Однако, если вы уже знаете, что у вас есть определенные смещения данных заранее, у вас может быть detrend
вычтите их из своих сигналов вместо этого. Определение смещений также позволяет вам сохранять ненулевую рабочую точку в detrend
результат.
Загрузите данные SISO, содержащие векторы u2
и y2
. В данном примере предположите, что вы знаете, что оба сигнала имеют смещение 4 от ожидаемой рабочей точки 1. Объедините эти векторы в iddata object
, использование шага расчета 0,08 секунд и графика это.
load dryer2 u2 y2 data = iddata(y2,u2,0.08); plot(data)
Известное смещение 4 (от рабочей точки 1) отображается в графиках. Можно создать TrendInfo
возразите, чтобы получить это смещение, с помощью функционального getTrend
.
Создайте TrendInfo
объект, и затем набор его свойства смещения.
T = getTrend(data); T.InputOffset = 4; T.OutputOffset = 4
Trend specifications for data "data" with 1 input(s), 1 output(s), 1 experiment(s): DataName: 'data' InputOffset: 4 OutputOffset: 4 InputSlope: 0 OutputSlope: 0
Используйте detrend
вычитать смещение из данных. Постройте его вместе с исходными данными.
data_d = detrend(data,T); hold on plot(data_d) legend('Original','Detrended')
Смещение 4 было удалено.
Детрендируйте данные с сегментированными кусочно-линейными трендами путем определения точек останова, чтобы разграничить сегменты.
Большая часть detrend
синтаксисы принимают и вычисляют один тренд для каждого из сигналов. Однако в некоторых случаях существуют разрывы в линейных трендах, вызванных тестовыми изменениями конфигурации, условиями окружающей среды или другими влияниями. Когда сигнал отображает такую сегментацию, у вас может быть detrend
работайте с тестовыми сегментами независимо. Для этого задайте точки останова в brkpt
входной параметр. Это индексы к моментам времени в сигнале, в котором линейные тренды изменяют наклон.
Можно знать эти точки останова впереди, на основе изменений, которые вы знаете, произошел во время сбора данных. В качестве альтернативы вы, возможно, должны аппроксимировать их путем осмотра самих данных.
Загрузите данные, смотрите его структуру и содержимое, и постройте их. Эти данные состоят из выходных данных только в iddata
объект dataLb2.
load brkTrend dataLb2 dataLb2
dataLb2 = Time domain data set with 512 samples. Sample time: 0.00390625 seconds Outputs Unit (if specified) y1
plot(dataLb2)
В данном примере данные знали точки останова в индексах [100 300]. Применение шага расчета (свойство Ts
), эти точки останова соответствуют фактическим моментам времени можно следующим образом:
brkpt=[100 300]; brkpt_time = brkpt*dataLb2.Ts
brkpt_time = 1×2
0.3906 1.1719
Детрендируйте данные с помощью brkp
t.
dataLb2_d = detrend(dataLb2,1,brkpt);
Отобразите исходные и детрендированные данные на графике.
plot(dataLb2,dataLb2_d) legend('Original Data','Detrended Data')
Линейные сегменты тренда были удалены.
Примените уникальный набор точек останова к каждому эксперименту, когда вы детрендируете набор данных Multiexperiment.
Эксперименты в наборе данных мультиэксперимента могут содержать уникальные линейные отклоняющиеся разрывы. Можно применить уникальный набор точек останова к каждому эксперименту путем выражения их в массиве ячеек.
Загрузите данные, которые состоят из:
datmult
, мультиэксперимент iddata
объект, содержащий три эксперимента (выводит только),
bp
n векторы, которые обеспечивают известные точки останова для каждого эксперимента в форме индексов к моментам времени
load multiexpdt datmult bp1 bp2 bp3 datmult
datmult = Time domain data set containing 3 experiments. Experiment Samples Sample Time exp1 250 1 exp2 320 1 exp3 350 1 Outputs Unit (if specified) y1
bp1,bp2,bp3
bp1 = 1×2
50 200
bp2 = 100
bp3 = []
Отобразите данные на графике. Среди потоков существуют существенные различия, и они дрейфуют на различных уровнях от нулевого среднего значения.
plot(datmult) legend
Для этого набора экспериментов известно, что существует уникальное отклонение для каждого запуска и уникальные разрывы, обозначенные bp
векторы.
detrend
может включить эти уникальные характеристики если bp
информация предоставляется как массив ячеек.
Создайте массив ячеек.
bpcell = {bp1;bp2;bp3}
bpcell=3×1 cell array
{[ 50 200]}
{[ 100]}
{0x0 double}
Примените detrend
и постройте результат, с помощью той же шкалы в качестве исходного plot.
datmult_d = detrend(datmult,1,bpcell); figure plot(datmult_d) axis([0,inf,-15,30]) legend
Экспериментальные данные теперь лучше выравниваются и не дрейфуют значительно далеко от нулевого среднего значения.
Примените различные типы тренда к сигналам ввода и вывода, содержавшимся в an iddata
объект.
Detrend
принимает, что тот же тип тренда применяется к обоим сигналам ввода и вывода. В некоторых случаях может быть тип тренда, который присутствует только в одном сигнале. Можно выполнить detrend
индивидуально на каждом сигнале путем извлечения сигналов в отдельный iddata
объекты. Примените detrend
к каждому объекту с помощью его отдельного типа тренда сигнала. Затем повторно соберите результаты назад в один детрендированный iddata
объект.
Загрузите, исследуйте и отобразите данные на графике в iodatab
.
load septrend iodatab; iodatab
iodatab = Time domain data set with 1000 samples. Sample time: 0.08 seconds Outputs Unit (if specified) y1 Inputs Unit (if specified) u1
plot(iodatab)
hold on
Оба графика ввода и вывода показывают смещение. Однако выходной график также показывает инвертированный тренд V-формы, который не присутствует во входных данных.
Разделите входные данные и выходные данные в отдельные объекты для удаления тренда, с помощью iddata
общая форма выбора данных (см., что Временной и частотный диапазон Представления Использует Объекты iddata):
data(samples,outputchannels,inputchannels)
idatab = iodatab(:,[],:); odatab = iodatab(:,:,[]);
Удалите смещение из входных данных, с помощью detrend
вычислить и вычесть среднее значение.
idatab_d = detrend(idatab,0);
Удалите смещение и инвертированный-V тренд от выходных данных, с помощью индекса 500 средней точки в качестве точки останова.
odatab_d = detrend(odatab,1,500);
Объедините детрендированные входные и выходные данные в один iddata
объект.
iodatab_d = [odatab_d,idatab_d];
Наложите детрендированные данные по исходным данным.
plot(iodatab_d) legend('original','detrended')
Входные и выходные данные теперь не содержат ни смещения, ни тренда V-формы.
data
— Данные ввода - вывода временного интервалаiddata
объектДанные ввода - вывода временного интервала в виде iddata
объект, содержащий один или несколько наборов сигналов временной области. iddata
объект может содержать SISO, MIMO или данные о мультиэксперименте. Наборы сигнала могут содержать или входные и выходные данные или выходные данные только.
Type
— Тип тренда, который будет вычтенTrendInfo
объектТип тренда, который будет вычтен в виде одного из:
0 — Вычислите и вычтите среднее значение
1 — Вычисляют и вычитают линейный тренд (метод наименьших квадратов)
TrendInfo
объект — вычитает тренд, который вы задаете в TrendInfo
объект. Использование getTrend
создать a TrendInfo
объект. Для примера смотрите, Удаляют Заданные Смещения из Сигналов.
brkpt
— Местоположения момента времени отклоняющихся разрывовМестоположения момента времени отклоняющихся разрывов (точки останова) в виде:
Целочисленный вектор-строка — Для наборов данных SISO and MIMO одно эксперимента. Выполнение так применяет один набор точек останова ко всем сигналам ввода и вывода. Для примера смотрите, Удаляют Сегментированные Линейные Тренды из Сигналов при помощи Точек останова.
Массив ячеек, содержащий индивидуально измеренные целочисленные векторы-строки — Для наборов данных нескольких-экспериментов. Выполнение так применяет уникальный набор точек останова к выходу и входным сигналам для каждого эксперимента. Для примера смотрите, Детрендируют Сигналы Мультиэксперимента с помощью Наборов Нескольких-точек-останова.
data_d
— Детрендированные сигналыiddata
объектДетрендированные сигналы, возвращенные как iddata
объект. Размерности содержимого совпадают с размерностями содержимого data
.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.