wvd

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

Синтаксис

d = wvd(x)
d = wvd(x,fs)
d = wvd(x,ts)
d = wvd(___,'smoothedPseudo')
d = wvd(___,'smoothedPseudo',twin,fwin)
d = wvd(___,'smoothedPseudo',Name,Value)
d = wvd(___,'MinThreshold',thresh)
[d,f,t] = wvd(___)
wvd(___)

Описание

пример

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

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

wvd(x+y)

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

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

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

wvd(x,fs)

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

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

wvd(xt)

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

wvd(xt,'MinThreshold',0)

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

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

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

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

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

wvd(x,fs)

Вычислите сглаживавшее псевдо распределение Wigner-Ville сигнала. Задайте 201 точку частоты и 502 момента времени.

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

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

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

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

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

Сгенерируйте двухкомпонентный сигнал, выбранный на уровне 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)

Сгенерируйте сигнал, состоявший из четырех Гауссовых атомов. Каждый атом состоит из синусоиды, модулируемой Гауссовым. Синусоиды имеют частоты 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)

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

wvd(s,fs,'SmoothedPseudo')

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

свернуть все

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

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

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

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

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

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

Шаг расчета, заданный как скаляр duration.

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

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

Больше о

свернуть все

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

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

Для непрерывного 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, стр 350–358.

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

Функции

Введенный в R2018b

Для просмотра документации необходимо авторизоваться на сайте