Вычтите смещение или тренд от сигналов временного интервала, содержавшихся в объектах iddata
detrend
вычитает смещения или линейные тренды от данных ввода - вывода временного интервала, представленных в объектах iddata
. detrend
или вычисляет данные о тренде, чтобы вычесть или вычитает тренд, который вы задаете.
Для более общей функции удаления тренда, которая не требует объектов iddata
, смотрите detrend
.
data_d = detrend(data)
data_d = detrend(data,Type)
[data_d,T_r] = detrend(___)
data_d = detrend(data,1,brkpt)
вычисляет и вычитает кусочно-линейные тренды для данных с сегментированными трендами, с помощью точек останова, которые вы задаете с data_d
= detrend(data
,1,brkpt
)brkpt
.
Вторым аргументом, который соответствует Type
, должен быть 1
.
С этим синтаксисом вы не можете получить получившуюся кусочно-линейную информацию о тренде как вывод.
Удалите смещения из установившихся сигналов в объекте iddata
при помощи detrend
, чтобы вычислить и вычесть средние значения ввода и вывода.
Загрузите данные временных рядов ввода и вывода y2
и u2
. Создайте объект iddata
data2
, using the
данные и шаг расчета 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 = 3x1 cell array
{1x2 double}
{[ 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-формы.
данные
Данные ввода - вывода временного интервала iddata
Заданный как объект iddata
, содержащий один или несколько наборов сигналов временного интервала. Объект iddata
может содержать SISO, MIMO или данные о мультиэксперименте. Наборы сигнала могут содержать или входные и выходные данные или выходные данные только.
Ввод
Тип тренда, который будет вычтенTrendInfo
Заданный как один из:
0 — Вычислите и вычтите среднее значение
1 — Вычисляют и вычитают линейный тренд (подгонка наименьших квадратов)
Объект TrendInfo
— вычитает тренд, который вы задаете в объекте TrendInfo
. Используйте getTrend
, чтобы создать объект TrendInfo
. Для примера смотрите, Удаляют Заданные Смещения из Сигналов.
brkpt
— Местоположения момента времени отклоняющихся разрывовМестоположения момента времени отклоняющихся разрывов (точки останова), заданные как:
Целочисленный вектор - строка — Для наборов данных SISO и MIMO одно эксперимента. Выполнение так применяет один набор точек останова ко всем сигналам ввода и вывода. Для примера смотрите, Удаляют Сегментированные Линейные Тренды из Сигналов при помощи Точек останова.
Массив ячеек, содержащий индивидуально измеренные целочисленные векторы - строки — Для наборов данных нескольких-экспериментов. Выполнение так применяет уникальный набор точек останова к выводу и входным сигналам для каждого эксперимента. Для примера смотрите, Детрендируют Сигналы Мультиэксперимента с помощью Наборов Нескольких-точек-останова.
data_d
— Детрендированные сигналыiddata
Детрендированные сигналы, возвращенные как объект iddata
. Размерности содержимого совпадают с размерностями содержимого data
.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.