tsa

Синхронный сигнал среднего значения

Описание

пример

ta = tsa(x,fs,tp) возвращает синхронное среднее значение значения сигнала x, дискретизированный со скоростью fs, от времени импульса, заданного в tp.

ta = tsa(x,t,tp) возвращает синхронное среднее значение x дискретизация в значения времени, хранимые в t.

пример

ta = tsa(xt,tp) возвращает синхронное среднее значение сигнала, сохраненного в MATLAB® timetable xt.

пример

ta = tsa(___,Name,Value) задает дополнительные опции для любого из предыдущих синтаксисов, используя аргументы пары "имя-значение". Для примера можно задать количество импульсов тахометра на вращение вала или принять решение усреднить сигнал в временной интервал или частотный диапазон.

[ta,t,p,rpm] = tsa(___) также возвращается t, вектор шагов расчета, соответствующий ta; а вектор p значений фаз; и rpm, постоянная скорость вращения (в оборотах в минуту), соответствующая ta.

tsa(___) без выходных аргументов строит графики синхронного среднего сигнала и сигналов временной области, соответствующих каждому сегменту сигнала на текущей фигуре.

Примеры

свернуть все

Вычислите синхронное среднее значение зашумленной синусоиды.

Сгенерируйте сигнал, состоящий из синусоиды, встроенной в белый Гауссов шум. Дискретизация сигнала производится на частоте 500 Гц в течение 20 секунд. Задайте синусоидальную частоту 10 Гц и отклонение шума 0,01. Постройте график одного периода сигнала.

fs = 500;
t = 0:1/fs:20-1/fs;

f0 = 10;
y = sin(2*pi*f0*t) + randn(size(t))/10;

plot(t,y)
xlim([0 1/f0])

Figure contains an axes. The axes contains an object of type line.

Вычислите синхронное среднее значение сигнала. Для сигнала синхронизации используйте набор импульсов с тем же периодом, что и синусоида. Использование tsa без выходных аргументов для отображения результата.

tPulse = 0:1/f0:max(t);

tsa(y,fs,tPulse)

Figure contains an axes. The axes with title Time-Synchronous Average Signal contains 200 objects of type line.

Сгенерируйте сигнал, который состоит из экспоненциально демпфированного квадратичного щебета. Дискретизация сигнала производится на частоте 1 кГц в течение 2 секунд. Щебет имеет начальную частоту 2 Гц, которая увеличивается до 28 Гц после первой секунды. Демпфирование имеет характерное время 1/2 секунды. Постройте график сигнала.

fs = 1e3;
t = 0:1/fs:2;

x = exp(-2*t').*chirp(t',2,1,28,'quadratic');

plot(t,x)

Figure contains an axes. The axes contains an object of type line.

Создайте массив длительности с помощью временного вектора. Создайте расписание с массивом длительности и сигналом. Определите время импульса, используя местоположения peaks сигнала. Отображение синхронного среднего значения.

ts = seconds(t)';
tx = timetable(ts,x);

[~,lc] = findpeaks(x,t);
tsa(tx,lc)

Figure contains an axes. The axes with title Time-Synchronous Average Signal contains 73 objects of type line.

Вычислите синхронное среднее значение. Просмотрите типы выходных аргументов. Эти шаги расчета хранятся в массиве длительности.

[xta,xt,xp,xrpm] = tsa(tx,lc);
whos x*
  Name         Size            Bytes  Class        Attributes

  x         2001x1             16008  double                 
  xp           9x1              1135  timetable              
  xrpm         1x1                 8  double                 
  xt           9x1                74  duration               
  xta          9x1              1133  timetable              

Преобразуйте массив длительности в datetime вектор. Составьте расписание с помощью datetime вектор и сигнал. Вычислите синхронное среднее значение, но теперь среднее значение для наборов 15 оборотов.

Просмотрите типы выходных аргументов. Шаги расчета снова сохраняются в массиве длительности, даже если входное расписание использовало datetime вектор.

dtb = datetime(datevec(ts));
dtt = timetable(dtb,x);

nr = 15;
tsa(dtt,lc,'NumRotations',nr)

Figure contains an axes. The axes with title Time-Synchronous Average Signal contains 5 objects of type line.

[dta,dt,dp,drpm] = tsa(dtt,lc,'NumRotations',nr);
whos d*
  Name         Size            Bytes  Class        Attributes

  dp         135x1              3151  timetable              
  drpm         1x1                 8  double                 
  dt         135x1              1082  duration               
  dta        135x1              3149  timetable              
  dtb       2001x1             32016  datetime               
  dtt       2001x1             49001  timetable              

Вычислите синхронное среднее положение блейда вентилятора, когда оно замедляется после выключения.

Вращающийся при 2400 об/мин настольный вентилятор отключается. Сопротивление воздуха (с незначительным вкладом от трения подшипника) заставляет ротор вентилятора остановиться приблизительно за 5 секунд. Высокоскоростная камера измеряет координату X одного из блейдов вентилятора со скоростью 1 кГц.

fs = 1000;
t = 0:1/fs:5-1/fs;

rpm0 = 2400;

Идеализируйте блейд вентилятора как точечную массу, окружающую центр ротора в радиусе 10 см. Блейд испытывает силу сопротивления, пропорциональную скорости, что приводит к следующему выражению для угла фазы:

ϕ=2πf0T(1-e-t/T),

где f0 является начальной частотой и T=0.75 второе - время затухания.

a = 0.1;
f0 = rpm0/60;
T = 0.75;

phi = 2*pi*f0*T*(1-exp(-t/T));

Вычислите и постройте графики координат X и Y. Добавьте белый Гауссов шум.

x = a*cos(phi) + randn(size(phi))/200;
y = a*sin(phi) + randn(size(phi))/200;

plot(t,x,t,y)

Figure contains an axes. The axes contains 2 objects of type line.

Определите сигнал синхронизации. Используйте tachorpm функция для поиска времени импульса. Ограничьте поиск временем до 2,5 секунд. Постройте график скорости вращения, чтобы увидеть ее экспоненциальный распад.

[rpm,~,tp] = tachorpm(x(t<2.5),fs);
tachorpm(x(t<2.5),fs)

Figure contains 2 axes. Axes 1 with title Tachometer Signal contains 4 objects of type line. These objects represent Detected pulses, State levels. Axes 2 with title RPM Signal contains 2 objects of type line. These objects represent RPM signal, RPM at pulses.

Вычислите и постройте график синхронного среднего сигнала, который соответствует периоду синусоиды. Выполните среднее в частотный диапазон.

clf
tsa(x,fs,tp,'Method','fft')

Figure contains an axes. The axes with title Time-Synchronous Average Signal contains 29 objects of type line.

Входные параметры

свернуть все

Входной сигнал, заданный как вектор.

Пример: cos(pi/4*(0:159))+randn(1,160) является одноканальным, векторным сигналом.

Типы данных: single | double

Частота дискретизации, заданная как положительная скалярная величина.

Типы данных: single | double

Время импульса, заданное как скаляр или вектор.

  • Скаляр - постоянный временной интервал, на котором происходят вращения.

  • Вектор - неотрицательный, строго увеличивающийся момент, который задает постоянную фазу вращения.

Использовать tachorpm для извлечения импульса тахометра из сигнала тахометра.

Типы данных: single | double

Шаги расчета, заданная как вектор, a duration скаляр, или duration массив.

  • Скаляр - временной интервал между последовательными выборками x.

  • Вектор или duration массив - момент времени, соответствующий каждому элементу x.

Типы данных: single | double | duration

Входное расписание. xt должно содержать увеличивающееся конечное время строки и только одну переменную, состоящую из вектора.

Если расписание имеет отсутствующие или повторяющиеся точки времени, можно исправить его с помощью советов в разделе «Чистое расписание с пропущенными, повторяющимися или неоднородными временами».

Пример: timetable(seconds(0:4)',randn(5,2)) задает двухканальную случайную переменную, дискретизированную с частотой дискретизации 1 Гц в течение 4 секунд.

Типы данных: single | double

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'Method','pchip','ResampleFactor',10 задает, что сигнал должен быть увеличен в 10 раз и усреднен во временном интервале с помощью кусочно-кубической интерполяции Гермита.

Схема интерполяции, заданная как разделенная разделенными запятой парами, состоящая из 'InterpMethod' и одно из следующих значений:

  • 'linear' - Выполните линейную интерполяцию и среднее значение во временном интервале.

  • 'spline' - Выполните кубическую сплайн интерполяцию и среднее значение во временном интервале.

  • 'pchip' - Выполните кусочно-кубическую интерполяцию Гермита и среднее значение во временном интервале.

  • 'fft' - Выполните среднее по частотному диапазону.

Количество вращений вала в ta, заданная как разделенная разделенными запятой парами, состоящая из 'NumRotations' и положительный целочисленный скаляр.

Типы данных: single | double

Количество моментов времени на вращение вала, заданное как разделенная разделенными запятой парами, состоящая из 'PulsesPerRotation' и положительная скалярная величина.

Типы данных: single | double

Коэффициент, которым можно увеличить частоту дискретизации, заданный как разделенная разделенными запятой парами, состоящая из 'ResampleFactor' и положительный целочисленный скаляр.

Типы данных: single | double

Выходные аргументы

свернуть все

Синхронный средний сигнал, возвращенный как вектор или timetable. Если вход в tsa является расписанием, тогда ta также является расписанием.

  • Если в вход расписании сохраняются значения времени как duration массив, затем значения времени ta также являются duration массив.

  • Если в вход расписании сохраняются значения времени как datetime массив, затем значения времени ta являются duration массив, выраженный в секундах.

Шаги расчета, возвращенный как вектор или duration массив.

  • Если вход в tsa является расписанием, которое хранит значения времени как duration массив, затем t имеет тот же формат, что и входные значения времени.

  • Если вход в tsa является расписанием, которое хранит значения времени как datetime массив, затем t является duration вектор, выраженный в секундах.

  • Если вход в tsa является числовым вектором, и входом шагов расчета t хранятся в duration скаляр или duration массив, затем t является duration массив с теми же модулями, что и входной t.

Значения фазы, возвращенные как вектор или расписание, выраженные в оборотах.

Если вход в tsa является расписанием, тогда p также является расписанием. p имеет те же значения, что и значения времени ta.

Постоянная скорость вращения, возвращаемая как скаляр, выраженный в оборотах в минуту.

Алгоритмы

Учитывая входной сигнал, частоту дискретизации и набор импульсов тахометра, tsa выполняет следующие шаги:

  1. Определяет начало и конец цикла на основе импульсов тахометра и значения, заданного для 'PulsesPerRotation'.

  2. Переиздает входной сигнал на основе значения, заданного для 'ResampleFactor'.

  3. Усредняет повторно дискретизированный сигнал на основе опции, заданной для 'Method'.

    • Если 'Method' установлено в 'fft', функция:

      1. Разбивает сигнал на сегменты, соответствующие различным циклам.

      2. Вычисляет дискретное преобразование Фурье каждого сегмента.

      3. Обрезает более длинные преобразования, поэтому все преобразования имеют одинаковую длину.

      4. Усредняет спектры.

      5. Вычисляет обратное дискретное преобразование Фурье среднего значения для преобразования его во временной интервал.

    • Если 'Method' задается один из методов временной области, функция:

      1. Используя указанный метод, интерполирует сигнал на сетки одинаково разнесенных выборок, соответствующих различным циклам.

      2. Конкатенирует сегменты повторно дискретизированного сигнала на основе значения, заданного для 'NumRotations'.

      3. Вычисляет среднее значение всех сегментов.

Ссылки

[1] Беххёфер, Эрик и Майкл Кингсли. «Обзор синхронных по времени средних алгоритмов». Материалы ежегодной конференции Общества прогностики и управления здоровьем, Сан-Диего, Калифорния, сентябрь-октябрь 2009 года.

Расширенные возможности

.
Введенный в R2017b