wvd

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

Описание

пример

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

пример

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

пример

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

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

пример

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

пример

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

пример

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

пример

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

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

Примеры

свернуть все

Сгенерируйте импульс с 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.

Вычислите сглаженное псевдо распределение Wigner-Ville сигнала. Задайте 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;

Вычислите и постройте график сглаженного псевдосигнала Wigner Ville сигнала. Отобразите распределение во времени с помощью 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.

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

wvd(s,fs,'SmoothedPseudo')

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

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

свернуть все

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

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

Пример: 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, и частота увеличивается вниз по строкам. Матрица имеет размер N  f × N t, где N f - длина f и N t - длина t.

Частоты, возвращенные как вектор.

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

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

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

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

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

Подробнее о

свернуть все

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

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

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

WVDx(t,f)=x(t+τ2)x*(tτ2)ej2πfτdτ.

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

WVDx(n,k)=m=NNx(n+m/2)x*(nm/2)ej2πkm/N.

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

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

SPWVDxg,H(t,f)=g(t)H(f)x(t+τ2)x*(tτ2)ej2πfτdτ.

Ссылки

[1] Коэн, Леон. Частотно-временной анализ: теория и приложения. Englewood Cliffs, Нью-Джерси: Prentice Hall, 1995.

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

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

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

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