exponenta event banner

tsa

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

Описание

пример

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

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

пример

ta = tsa(xt,tp) возвращает синхронное по времени среднее значение сигнала, сохраненного в расписании MATLAB ®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.

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

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              

Преобразовать массив duration в 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 см. Лопасть испытывает силу сопротивления, пропорциональную скорости, что приводит к следующему выражению для фазового угла:

start= 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 array - момент времени, соответствующий каждому элементу 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

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

свернуть все

Среднее значение синхросигнала, возвращаемое в виде вектора или расписания. Если вход в 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