Вычитайте смещение или тренд из сигналов временной области, содержащихся в 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
The OutputOffset
и OutputSlope
свойства обеспечивают параметры линии, которая detrend
удален. Можно восстановить эту линию, а затем наложить ее на график данных перед и после. The 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
т.
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
и постройте график результата, используя ту же шкалу, что и исходный график .
datmult_d = detrend(datmult,1,bpcell); figure plot(datmult_d) axis([0,inf,-15,30]) legend
Экспериментальные данные теперь лучше выровнены и не дрейфуют значительно от нулевого среднего.
Примените различные типы тренда к входным и выходным сигналам, содержащимся в 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
для создания TrendInfo
объект. Например, см. «пример заданных смещений из сигналов».
brkpt
- Timepoint местоположения трендовых разрывовTimepoint местоположения трендовых разрывов (точек останова), заданные как:
Целочисленный вектор-строка - Для одноэкспериментальных наборов данных SISO и MIMO. Это применяет один набор точек прерывания ко всем входным и выходным сигналам. Например, см. «пример сегментированных линейных трендов из сигналов» с помощью Breakpoints.
Массив ячеек, содержащий целочисленные векторы-строки индивидуального размера - Для нескольких экспериментов с наборами данных. Это применяет уникальный набор точек останова к выходу и входным сигналам для каждого эксперимента. Для получения примера смотрите Детрендирование Мультиэкспериментальных Сигналов с использованием Нескольких Наборов Точек Прерывания.
data_d
- Детрендированные сигналыiddata
объектДетрендированные сигналы, возвращенные как iddata
объект. Размерности содержимого совпадают с размерностями содержимого data
.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.