wvd

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

Описание

пример

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

пример

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

пример

d = wvd(x,ts) возвращает распределение Wigner-Ville когда 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 и к сглаженному псевдо распределению Wigner-Ville.

пример

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

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

Примеры

свернуть все

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

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

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

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

Постройте распределение Wigner-Ville.

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);

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

wvd(x,fs)

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

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

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);

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

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 Гц до 1 300 Гц во время измерения. Второй компонент является щебетом с синусоидально различным содержимым частоты. Сигнал встраивается в белый Гауссов шум. Опишите время между последовательными выборками как 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]);

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

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®, содержащего одну векторную переменную.

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

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

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

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

Частота дискретизации в виде положительного числового скаляра.

Шаг расчета в виде a duration скаляр.

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

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

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

Каждое окно должно иметь длину, меньшую, чем или равный 2*ceil(lengthX)/2).

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

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

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

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

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

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

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

Совет

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

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

свернуть все

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

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

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

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

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

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

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

Больше о

свернуть все

Распределение Wigner-Ville

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

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

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 определение требует оценки сигнала в полуцелочисленных демонстрационных значениях. Это поэтому требует интерполяции, которая заставляет на нулевую клавиатуру дискретное преобразование Фурье, чтобы не искажать.

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

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

Ссылки

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

[2] Mallat, Стефан. Тур вейвлета по обработке сигналов. Второй выпуск. Сан-Диего, CA: Academic Press, 1999.

[3] О'Тул, Джон М. и Боуэлем Боушэш. "Быстрые и Эффективные Памятью алгоритмы для Вычисления Квадратичных Плотностей распределения времени". Примененный и Вычислительный Гармонический Анализ. Издание 35, Номер 2, 2013, стр 350–358.

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

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

Функции

Введенный в R2018b