exponenta event banner

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. The axes contains an object of type line.

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

instfreq(s,fs)

Figure contains an axes. The axes 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. The axes 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. Axes 1 with title Fres = 25.6675 Hz, Tres = 100 ms contains an object of type image. Axes 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. The axes 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. The axes 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. The axes contains an object of type line.

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

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

instfreq(p,f,t)

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

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

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

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

Figure contains an axes. The axes 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. The axes 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. The axes 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. The axes with title Instantaneous Frequency Estimate contains 2 objects of type image, line. This object represents Instantaneous Frequency.

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

свернуть все

Входной сигнал, заданный как вектор или матрица. Если 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 массив или datetime массив.

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

  • Реальный вектор, duration массив, или datetime array - момент времени, соответствующий каждому элементу 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 должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как 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 массив или datetime массив.

Подробнее

свернуть все

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

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

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

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

    2. Оценка мгновенной частоты с помощью

      finst (t) =∫0∞f P (t, f) df∫0∞P (t, f) df.

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

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

    2. Оценка мгновенной частоты с помощью

      finst (t) = 12.ddü dt,

      где λ - фаза аналитического сигнала входного сигнала.

Ссылки

[1] Боашаш, Буалем. «Оценка и интерпретация мгновенной частоты сигнала - Часть 1: Основы». Процедуры IEEE ®. том 80, апрель 1992, стр. 520-538.

[2] Боашаш, Буалем. «Оценка и интерпретация мгновенной частоты сигнала - часть 2: Алгоритмы и приложения». Процедуры IEEE. том 80, апрель 1992, стр. 540-568.

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

.
Представлен в R2018a