exponenta event banner

wvd

Распределение Вигнера - Вилля и сглаженное псевдо распределение Вигнера - Вилля

Описание

пример

d = wvd(x) возвращает распределение Вигнера-Вилля x.

пример

d = wvd(x,fs) возвращает распределение Вигнера-Вилля, когда x отбирается со скоростью fs.

пример

d = wvd(x,ts) возвращает распределение Вигнера-Вилля, когда x отбирается с интервалом времени ts между образцами.

d = wvd(___,'smoothedPseudo') возвращает сглаженное псевдо-распределение Вигнера-Вилля x. Функция использует длину входного сигнала для выбора длин окон, используемых для сглаживания по времени и частоте. Этот синтаксис может включать любую комбинацию входных аргументов из предыдущих синтаксисов.

пример

d = wvd(___,'smoothedPseudo',twin,fwin) задает временное окно, twinи частотное окно, fwin, используется для сглаживания. Чтобы использовать окно по умолчанию для сглаживания по времени или частоте, укажите соответствующий аргумент как пустой, [].

пример

d = wvd(___,'smoothedPseudo',Name,Value) задает дополнительные параметры для сглаженного псевдораспределения Вигнера-Вилля с использованием аргументов пары имя-значение. Можно указать twin и fwin в этом синтаксисе или их можно опустить.

пример

d = wvd(___,'MinThreshold',thresh) устанавливает в нуль эти элементы d амплитуда которого меньше thresh. Этот синтаксис применим как к распределению Вигнера-Вилля, так и к сглаженному псевдо распределению Вигнера-Вилля.

пример

[d,f,t] = wvd(___) также возвращает вектор частот, fи вектор времен, t, при котором d вычисляется.

wvd(___) без выходных аргументов строит график распределения Вигнера-Вилля или сглаженного псевдо-распределения Вигнера-Вилля на текущем рисунке.

Примеры

свернуть все

Создайте импульс 1000 выборок и тон 1000 выборок с нормализованной частотой λ/2. Вычислите распределение Вигнера-Вилля суммы двух сигналов.

x = zeros(1001,1);
x(500) = 10;

y = sin(pi*(0:1000)/2)';

[d,f,t] = wvd(x+y);

Постройте график распределения Вигнера-Вилля.

imagesc(t,f,d)
axis xy
colorbar

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

Воспроизвести результат путем вызова wvd без выходных аргументов.

wvd(x+y)

Figure contains an axes. The axes with title Wigner-Ville Distribution contains an object of type image.

Генерируют сигнал, состоящий из синусоиды 200 Гц, дискретизированной при 1 кГц в течение 1,5 секунд.

fs = 1000;
t = (0:1/fs:1.5)';
x = cos(2*pi*t*200);

Вычислите распределение сигнала Вигнера-Вилля.

wvd(x,fs)

Figure contains an axes. The axes with title Wigner-Ville Distribution contains an object of type image.

Добавьте к сигналу чирп, частота которого изменяется синусоидально между 250 Гц и 450 Гц. Преобразуйте сигнал в расписание MATLAB ®. Вычислите распределение Вигнера-Вилля.

x = x + vco(cos(2*pi*t),[250 450],fs);
xt = timetable(seconds(t),x);

wvd(xt)

Figure contains an axes. The axes with title Wigner-Ville Distribution contains an object of type image.

Установите на ноль элементы распределения с амплитудой меньше 0.

wvd(xt,'MinThreshold',0)

Figure contains an axes. The axes with title Wigner-Ville Distribution contains an object of type image.

Генерация сигнала, дискретизированного на частоте 1 кГц в течение 1 секунды. Одной из составляющих сигнала является чирп, который увеличивается в частоте квадратично от 100 Гц до 400 Гц во время измерения. Другой составляющей сигнала является чирп, который линейно уменьшается в частоте от 350 Гц до 50 Гц за тот же самый промежуток времени.

Сохраните сигнал в расписании.

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

x = chirp(t,100,1,400,'quadratic') + chirp(t,350,1,50);

Вычислите распределение сигнала Вигнера-Вилля.

wvd(x,fs)

Figure contains an axes. The axes with title Wigner-Ville Distribution contains an object of type image.

Вычислите сглаженное псевдо-распределение Вигнера-Вилля сигнала. Укажите 501 точку частоты и 502 точки времени.

wvd(x,fs,'smoothedPseudo','NumFrequencyPoints',501,'NumTimePoints',502)

Figure contains an axes. The axes with title Smoothed Pseudo Wigner-Ville Distribution contains an object of type image.

Увеличьте количество моментов времени, чтобы квадратичная чирп стала видимой.

wvd(x,fs,'smoothedPseudo','NumFrequencyPoints',501,'NumTimePoints',522)

Figure contains an axes. The axes with title Smoothed Pseudo Wigner-Ville Distribution contains an object of type image.

Увеличьте частотные и временные точки, чтобы получить более четкое изображение.

wvd(x,fs,'smoothedPseudo','NumFrequencyPoints',1000,'NumTimePoints',1502)

Figure contains an axes. The axes with title Smoothed Pseudo Wigner-Ville Distribution contains an object of type image.

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

fs = 3000;
t = 0:1/fs:1-1/fs;
dt = seconds(t(2)-t(1));

x1 = chirp(t,300,t(end),1300,'quadratic');
x2 = exp(2j*pi*100*cos(2*pi*2*t));

x = x1 + x2 + randn(size(t))/10;

Вычислите и постройте график сглаженного псевдо Вигнера Vилля сигнала. Окошко распределения во времени с использованием 601-образного окна Хэмминга и по частоте с использованием 305-образного прямоугольного окна. Используйте 600 точки частоты для отображения. Установите на ноль те компоненты распределения с амплитудой меньше -50.

wvd(x,dt,'smoothedPseudo',hamming(601),rectwin(305), ...
    'NumFrequencyPoints',600,'MinThreshold',-50)

Figure contains an axes. The axes with title Smoothed Pseudo Wigner-Ville Distribution contains an object of type image.

Генерировать сигнал, состоящий из четырех гауссовых атомов. Каждый атом состоит из синусоиды, модулированной гауссовой. Синусоиды имеют частоты 100 Гц и 400 Гц. Гауссы центрированы на 150 миллисекундах и 350 миллисекундах и имеют дисперсию 0,012. Все атомы имеют единичную амплитуду. Сигнал дискретизируется при частоте 1 кГц в течение половины секунды.

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

f1 = 100;
f2 = 400;

mu1 = 0.15;
mu2 = 0.35;

gaussFun = @(A,x,mu,f) exp(-(x-mu).^2/(2*0.01^2)).*sin(2*pi*f.*x)*A';

s = gaussFun([1 1 1 1],t,[mu1 mu1 mu2 mu2],[f1 f2 f1 f2]);

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

wvd(s,fs)

Figure contains an axes. The axes with title Wigner-Ville Distribution contains an object of type image.

Вычислите и отобразите сглаженное псевдо-распределение Вигнера-Вилля сигнала. Сглаживание во времени и частоте ослабляет помехи.

wvd(s,fs,'SmoothedPseudo')

Figure contains an axes. The axes with title Smoothed Pseudo Wigner-Ville Distribution contains an object of type image.

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

свернуть все

Входной сигнал, заданный как вектор или расписание MATLAB ®, содержащее одну векторную переменную.

Если входной сигнал имеет нечетную длину, функция добавляет ноль, чтобы сделать длину равномерной.

Пример: cos(pi/8*(0:159))'+randn(160,1)/10 задает синусоиду, встроенную в белый шум.

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

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

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

Время выборки, указанное как duration скаляр.

Временные и частотные окна, используемые для сглаживания, определяемые как векторы нечетной длины. По умолчанию wvd использует окна Кайзера с коэффициентом формы β = 20.

  • Длина по умолчанию twin наименьшее нечетное целое число, большее или равное round(length(x)/10).

  • Длина по умолчанию fwin наименьшее нечетное целое число, большее или равное nf/4, где nf указывается с помощью NumFrequencyPoints.

Длина каждого окна должна быть меньше или равна 2*ceil(length(x)/2).

Пример: kaiser(65,0.5) задает 65-образное окно Кайзера с коэффициентом формы 0,5.

Минимальное ненулевое значение, указанное как действительный скаляр. Функция устанавливает в нуль эти элементы d амплитуды которых меньше thresh.

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

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

Пример: 'NumFrequencyPoints',201,'NumTimePoints',300 вычисляет распределение Вигнера-Вилля в 201 точке частоты и 300 точках времени.

Количество частотных точек, указанных как разделенная запятыми пара, состоящая из 'NumFrequencyPoints' и целое число. Этот аргумент управляет степенью избыточной дискретизации частоты. Число частотных точек должно быть не менее (length(fwin)+1)/2 и не может быть больше значения по умолчанию.

Количество точек времени, указанное как пара, разделенная запятыми, состоящая из 'NumTimePoints' и четное целое число. Этот аргумент управляет степенью избыточной дискретизации во времени [3]. Количество моментов времени должно быть не менее 2*length(twin) и не может быть больше значения по умолчанию.

Совет

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

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

свернуть все

Распределение Вигнера - Вилле, возвращенное в виде матрицы. Время увеличивается по столбцам dи частота увеличивается вниз по строкам. Матрица имеет размер Nf  × Nt, где Nf - длина f и Nt - длина t.

Частоты, возвращаемые в виде вектора.

  • Если на входе имеется информация о времени, то f содержит частоты, выраженные в Гц.

  • Если на входе нет временной информации, то f содержит нормированные частоты, выраженные в рад/выборке.

Моменты времени, возвращенные как вектор.

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

  • Если на входе нет временной информации, то t содержит номера образцов.

Подробнее

свернуть все

Дистрибутив Вигнер-Вилле

Распределение Вигнера-Вилля обеспечивает частотно-временное представление сигнала с высоким разрешением. Распределение имеет области применения в визуализации, обнаружении и оценке сигналов.

Для непрерывного сигнала x (t) распределение Вигнера-Вилля определяется как

WVDx (t, f) =∫−∞∞x (t + the2) x * (t start2) e − j2āf,, d,

Для дискретного сигнала с N выборками распределение становится

WVDx (n, k) =∑m=−NNx (n + m/2) x * (n m/2) e − j2.dkm/N.

Для нечетных значений m определение требует оценки сигнала при полуцелых отсчетных значениях. Поэтому она требует интерполяции, что делает необходимым затенение дискретного преобразования Фурье, чтобы избежать наложения.

Распределение Вигнера - Вилля содержит интерференционные термины, которые часто усложняют его интерпретацию. Чтобы заострить распределение, можно отфильтровать определение с помощью окон нижних частот. Сглаженное псевдо-распределение Вигнера-Вилля использует независимые окна для сглаживания по времени и частоте:

SPWVDxg, H (t, f) =∫−∞∞g (t) H (f) x (t + the2) x * (t

Ссылки

[1] Коэн, Леон. Частотно-временной анализ: теория и приложения. Энглвуд Клиффс, Нью-Джерси: Прентис-Холл, 1995.

[2] Маллат, Стефан. Вейвлет-тур обработки сигналов. Второе издание. Сан-Диего, Калифорния: Академическая пресса, 1999.

[3] О'Тул, Джон М. и Буалем Боашаш. «Алгоритмы быстрого и эффективного использования памяти для вычисления квадратичных частотно-временных распределений». Прикладной и вычислительный гармонический анализ. Том 35, номер 2, 2013, стр. 350-358.

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

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