instfreq

Оцените мгновенную частоту

Описание

пример

ifq = instfreq(x,fs) оценивает мгновенную частоту сигнала, x, произведенный на уровне fs. Если x матрица, затем функция оценивает мгновенную частоту независимо для каждого столбца и возвращает результат в соответствующий столбец ifq.

пример

ifq = instfreq(x,t) оценивает мгновенную частоту x произведенный в то время, когда значения сохранены в t.

пример

ifq = instfreq(xt) оценивает мгновенную частоту сигнала, сохраненного в MATLAB® расписание xt. Функция обрабатывает все переменные в расписании и все столбцы в каждой переменной независимо.

пример

ifq = instfreq(tfd,fd,td) оценивает мгновенную частоту сигнала чья плотность распределения времени, tfd, производится в значениях частоты, сохраненных в fd и временные стоимости сохранены в td.

пример

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

пример

[ifq,t] = instfreq(___) также возвращает t, вектор из шагов расчета, соответствующих ifq.

пример

instfreq(___) без выходных аргументов строит предполагаемую мгновенную частоту.

Примеры

свернуть все

Сгенерируйте сигнал, произведенный на уровне 5 кГц в течение 4 секунд. Сигнал состоит из набора импульсов уменьшающейся длительности, разделенной областями колеблющейся амплитуды и колеблющейся частоты с увеличивающимся трендом. Постройте сигнал.

fs = 5000;
t = 0:1/fs:4-1/fs;

s = besselj(0,1000*(sin(2*pi*t.^2/8).^4));

% To hear, type sound(s,fs)

plot(t,s)

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

Оцените зависящую от времени частоту сигнала как первый момент спектрограммы степени. Постройте спектрограмму степени и наложите мгновенную частоту.

instfreq(s,fs)

Figure contains an axes object. The axes object with title Instantaneous Frequency Estimate contains 2 objects of type image, line. This object represents Instantaneous Frequency.

Сгенерируйте сигнал с комплексным знаком, который состоит из щебета с синусоидально различным содержимым частоты. Сигнал производится на уровне 3 кГц в течение 1 секунды и встраивается в белый Гауссов шум.

fs = 3000;
t = 0:1/fs:1-1/fs;
x = exp(2j*pi*100*cos(2*pi*2*t))+randn(size(t))/100;

Оцените зависящую от времени частоту сигнала как первый момент спектрограммы степени. Это - единственный метод что instfreq поддержки сигналов с комплексным знаком. Постройте спектрограмму степени и наложите мгновенную частоту.

instfreq(x,t)

Figure contains an axes object. The axes object with title Instantaneous Frequency Estimate contains 2 objects of type image, line. This object represents Instantaneous Frequency.

Создайте двухканальный сигнал, произведенный на уровне 1 кГц в течение 2 секунд, состоя из двух управляемых напряжением генераторов.

  • В одном канале мгновенная частота меняется в зависимости от времени как в зависимости от пилообразной волны, максимум которой в 75% периода.

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

Постройте спектрограммы двух каналов. Задайте разрешение времени 0,1 секунд для пилообразного канала и разрешение частоты 10 Гц для квадратного канала.

fs = 1000;
t = (0:1/fs:2)';
x = vco(sawtooth(2*pi*t,0.75),[0.1 0.4]*fs,fs);
y = vco(square(2*pi*t,30),[0.1 0.3]*fs,fs);

subplot(1,2,1)
pspectrum(x,fs,'spectrogram','TimeResolution',0.1)
subplot(1,2,2)
pspectrum(y,fs,'spectrogram','FrequencyResolution',10)

Figure contains 2 axes objects. Axes object 1 with title Fres = 25.6675 Hz, Tres = 100 ms contains an object of type image. Axes object 2 with title Fres = 10.0263 Hz, Tres = 256 ms contains an object of type image.

Сохраните сигнал в расписании. Вычислите и отобразите мгновенную частоту.

xt = timetable(seconds(t),x,y);

clf
instfreq(xt)

Figure contains an axes object. The axes object with title Instantaneous Frequency Estimate contains 2 objects of type line. These objects represent x\_instfreq, y\_instfreq.

Повторите расчет с помощью аналитического сигнала.

instfreq(xt,'Method','hilbert')

Figure contains an axes object. The axes object with title Instantaneous Frequency Estimate contains 2 objects of type line. These objects represent x\_instfreq, y\_instfreq.

Сгенерируйте квадратичный щебет, модулируемый Гауссовым. Задайте частоту дискретизации 2 кГц и длительность сигнала 4 секунд.

fs = 2000;
t = 0:1/fs:4-1/fs;

q = chirp(t-1,0,1/2,20,'quadratic',100,'convex').*exp(-1.7*(t-2).^2);
plot(t,q)

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

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

[p,f,t] = pspectrum(q,fs,'spectrogram');

instfreq(p,f,t)

Figure contains an axes object. The axes object with title Instantaneous Frequency Estimate contains 2 objects of type image, line. This object represents Instantaneous Frequency.

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

[s,sf,st] = fsst(q,fs,hann(500));

instfreq(abs(s).^2,sf,st)

Figure contains an axes object. The axes object with title Instantaneous Frequency Estimate contains 2 objects of type image, line. This object represents Instantaneous Frequency.

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

[psf,pst] = instfreq(p,f,t);
[fsf,fst] = instfreq(abs(s).^2,sf,st);

plot(fst,fsf,pst,psf)

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

Сгенерируйте синусоидальный сигнал, произведенный на уровне 1 кГц в течение 0,3 секунд и встроенный в белый Гауссов шум отклонения 1/16. Задайте частоту синусоиды 200 Гц. Оцените и отобразите мгновенную частоту сигнала.

fs = 1000;
t = (0:1/fs:0.3-1/fs)';

x = sin(2*pi*200*t) + randn(size(t))/4;

instfreq(x,t)

Figure contains an axes object. The axes object with title Instantaneous Frequency Estimate contains 2 objects of type image, line. This object represents Instantaneous Frequency.

Оцените мгновенную частоту сигнала снова, но теперь используйте плотность распределения времени с крупным разрешением частоты 25 Гц, как введено.

[p,fd,td] = pspectrum(x,t,'spectrogram','FrequencyResolution',25);

instfreq(p,fd,td)

Figure contains an axes object. The axes object with title Instantaneous Frequency Estimate contains 2 objects of type image, line. This object represents Instantaneous Frequency.

Сгенерируйте сигнал, который состоит из щебета, частота которого варьируется синусоидально между 300 Гц и 1 200 Гц. Сигнал производится на уровне 3 кГц в течение 2 секунд.

fs = 3e3;
t = 0:1/fs:2;
y = chirp(t,100,1,200,"quadratic");
y = vco(cos(2*pi*t),[0.1 0.4]*fs,fs);

Используйте instfreq вычислить мгновенную частоту сигнала и соответствующих шагов расчета. Проверьте, что выход соответствует централизованному условному спектральному моменту первого порядка плотности распределения времени сигнала, как вычислено tfsmoment (Predictive Maintenance Toolbox).

[z,tz] = instfreq(y,fs);
[a,ta] = tfsmoment(y,fs,1,Centralize=false);

plot(tz,z,ta,a,'.')
legend("instfreq","tfsmoment")

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent instfreq, tfsmoment.

Используйте instbw вычислить мгновенную полосу пропускания сигнала и соответствующих шагов расчета. Задайте масштабный коэффициент 1. Проверьте, что выход соответствует квадратному корню нецентрализованного условного спектрального момента второго порядка распределения во времени сигнала. Другими словами, instbw генерирует стандартное отклонение и tfsmoment генерирует отклонение.

[w,tw] = instbw(y,fs,ScaleFactor=1);
[m,tm] = tfsmoment(y,fs,2);

plot(tw,w,tm,sqrt(m),'.')
legend("instfreq","tfsmoment")

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent instfreq, tfsmoment.

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

свернуть все

Входной сигнал в виде вектора или матрицы. Если x вектор, затем instfreq обработки это как один канал. Если x матрица, затем instfreq вычисляет мгновенную частоту независимо для каждого столбца и возвращает результат в соответствующий столбец ifq.

Пример: sin(2*pi*(0:127)/16)+randn(1,128)/100 задает шумную синусоиду

Пример: [2 1].*sin(2*pi*(0:127)'./[16 64]) задает двухканальную синусоиду.

Типы данных: single | double
Поддержка комплексного числа: Да

Частота дискретизации в виде положительной скалярной величины. Частота дискретизации является количеством отсчетов в единицу времени. Если модуль времени является секундами, то частота дискретизации находится в Гц.

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

Шаги расчета в виде вектора действительных чисел, a duration скаляр, a duration массив или a datetime массив.

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

  • Вектор действительных чисел, duration массив, или datetime массив — момент времени, соответствующий каждому элементу x.

Пример: seconds(1) задает 1 вторую ошибку между последовательными измерениями сигнала.

Пример: seconds(0:8) указывает, что сигнал производится на уровне 1 Гц в течение 8 секунд.

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

Введите расписание. xt должен содержать увеличение, конечные времена строки.

Если расписание имеет пропавших без вести или дублирующиеся моменты времени, можно зафиксировать его с помощью советов в Чистом Расписании с Пропавшими без вести, Копией, или Неоднородные Времена.

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

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

Типы данных: single | double
Поддержка комплексного числа: Да

Плотность распределения времени в виде матрицы, произведенной на частотах, сохранена в fd и временные стоимости сохранены в td. Этот входной параметр поддерживается только когда 'Method' установлен в 'tfmoment'.

Пример: [p,f,t] = pspectrum(sin(2*pi*(0:511)/4),4,'spectrogram') задает плотность распределения времени синусоиды на 1 Гц, произведенной на уровне 4 Гц в течение 128 секунд, и также частот и времена, в которые она вычисляется.

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

Частота и временные стоимости для плотности распределения времени в виде векторов. Эти входные параметры поддерживаются только когда 'Method' установлен в 'tfmoment'.

Пример: [p,f,t] = pspectrum(sin(2*pi*(0:511)/4),4,'spectrogram') задает плотность распределения времени синусоиды на 1 Гц, произведенной на уровне 4 Гц в течение 128 секунд, и также частот и времена, в которые она вычисляется.

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

Аргументы name-value

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

Пример: 'Method','tfmoment','FrequencyLimits',[25 50] вычисляет мгновенную частоту входа в диапазоне от 25 Гц до 50 Гц путем нахождения первого условного спектрального момента плотности распределения времени.

Частотный диапазон в виде разделенной запятой пары, состоящей из 'FrequencyLimits' и двухэлементный вектор в Гц. Если не заданный, 'FrequencyLimits' значения по умолчанию к [0 fs/2] для вещественных сигналов и к [-fs/2 fs/2] для сигналов с комплексным знаком. Этот аргумент поддерживается только когда 'Method' установлен в 'tfmoment'.

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

Метод расчета в виде разделенной запятой пары, состоящей из 'Method' и любой 'tfmoment' или 'hilbert'.

  • 'tfmoment' — Вычислите мгновенную частоту как первый условный спектральный момент плотности распределения времени x. Если x неоднородно производится, затем instfreq интерполирует сигнал к регулярной координатной сетке, чтобы вычислить мгновенные частоты.

  • 'hilbert' — Вычислите мгновенную частоту как производную фазы аналитического сигнала x найденное использование преобразования Гильберта. Этот метод принимает только однородно произведенный, вещественные сигналы и не поддерживает вход плотности распределения времени.

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

свернуть все

Мгновенная частота, возвращенная как вектор, матрица или расписание с теми же размерностями как вход.

Времена оценок частоты, возвращенных как вектор действительных чисел, a duration массив или a datetime массив.

Больше о

свернуть все

Мгновенная частота

instantaneous frequency неустановившегося сигнала является изменяющимся во времени параметром, который относится к среднему значению частот, существующих в сигнале, когда это развивается [1], [2].

  • Если 'Method' установлен в 'tfmoment'то instfreq оценивает мгновенную частоту как первый условный спектральный момент плотности распределения времени входного сигнала. Функция:

    1. Вычисляет спектр мощности спектрограммы P (t, f) входа с помощью pspectrum функция и использование спектр как плотность распределения времени.

    2. Оценивает мгновенное использование частоты

      finst(t)=0fP(t,f)df0P(t,f)df.

  • Если 'Method' установлен в 'hilbert'то instfreq оценивает мгновенную частоту как производную фазы аналитического сигнала входа. Функция:

    1. Вычисляет аналитический сигнал, x A, входа с помощью hilbert функция.

    2. Оценивает мгновенное использование частоты

      finst(t)=12πdϕdt,

      где ϕ является фазой аналитического сигнала входа.

Ссылки

[1] Boashash, Boualem. “Оценивая и интерпретируя мгновенную частоту сигнала. I. Основные принципы”. Продолжения IEEE® 80, № 4 (апрель 1992): 520–538. https://doi.org/10.1109/5.135376.

[2] Boashash, Boualem. "Оценивая и Интерпретируя Мгновенную Частоту Сигнала. II. Алгоритмы и Приложения". Продолжения IEEE 80, № 4 (май 1992): 540–568. https://doi.org/10.1109/5.135378.

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

Смотрите также

| | | (Predictive Maintenance Toolbox) | (Predictive Maintenance Toolbox) | (Predictive Maintenance Toolbox)

Введенный в R2018a