wt

Непрерывный вейвлет преобразовывает с набором фильтров

Описание

пример

cfs = wt(fb,x) возвращает коэффициенты непрерывного вейвлета преобразовывает (CWT) x сигнала, использование fb, набор фильтров CWT. x действительная двойная точность - или комплексный вектор. x должен иметь по крайней мере 4 выборки. Если x с действительным знаком, cfs 2D матрица, где каждая строка соответствует одной шкале. Размер столбца cfs равно длине x. Если x с комплексным знаком, cfs трехмерный массив, где первой страницей является CWT для положительных шкал (аналитическая часть или против часовой стрелки компонент), и вторая страница является cwt для отрицательных шкал (антианалитическая часть или по часовой стрелке компонент).

[cfs,f] = wt(fb,x) возвращает частоты f соответствие шкалам (строки) cfs если SamplingPeriod свойство не задано в наборе фильтров CWT fb. Если вы не задаете частоту дискретизации, f находится в циклах/выборке.

[cfs,f,coi] = wt(fb,x) возвращает конус влияния coi для CWT. coi находится в тех же модулях как f. Если вход x является комплексным, coi применяется к обеим страницам cfs.

пример

[cfs,f,coi,scalcfs] = wt(fb,x) возвращает масштабирующиеся коэффициенты scalcfs поскольку вейвлет преобразовывает. Масштабные коэффициенты не поддержаны для вейвлета удара.

[cfs,p] = wt(fb,x) возвращает периоды p соответствие шкалам (строки) cfs если вы задаете период выборки в наборе фильтров CWT. p имеет те же модули и формат как скаляр длительности выборка периода.

[cfs,p,coi] = wt(fb,x) возвращает конус влияния coi в периоды для CWT. coi массив длительности с тем же свойством формата как период выборки. Если вход x является комплексным, coi применяется к обеим страницам cfs.

[cfs,p,coi,scalcfs] = wt(fb,x) возвращает масштабирующиеся коэффициенты scalcfs поскольку вейвлет преобразовывает. Масштабные коэффициенты не поддержаны для вейвлета удара.

Примеры

свернуть все

Загрузите шумный Доплеровский сигнал. Создайте набор фильтров CWT, который может быть применен к сигналу.

load noisdopp
fb = cwtfilterbank('SignalLength',numel(noisdopp));

Используйте набор фильтров, чтобы получить непрерывное преобразование вейвлета сигнала.

[cfs,f,coi] = wt(fb,noisdopp);

Постройте CWT scalogram, включая конус влияния.

t = 0:numel(noisdopp)-1;
pcolor(t,f,abs(cfs))
shading flat
set(gca,'YScale','log')
hold on
plot(t,coi,'w-','LineWidth',3)
xlabel('Time (Samples)')
ylabel('Normalized Frequency (cycles/sample)')
title('Scalogram')

Создайте и постройте сигнал, произведенный на уровне 1 000 Гц. Создайте набор фильтров CWT, который может использоваться на сигнале. Поскольку сигнал является периодическим, установите граничное дополнительное свойство набора фильтров к 'periodic'.

Fs = 1000;
t = 0:1/Fs:1-1/Fs;
sig = 3*sin(2*pi*20*t) + cos(2*pi*2*t);
fb = cwtfilterbank('SignalLength',length(sig),'SamplingFrequency',Fs,'Boundary','periodic');
plot(t,sig)
xlabel('Time (sec)')
title('Signal')

Возьмите CWT сигнала. Возвратите вейвлет и масштабные коэффициенты.

[cfs,~,~,scalcfs] = wt(fb,sig);

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

xrec0 = icwt(cfs,'SignalMean',mean(sig));
xrec1 = icwt(cfs,'ScalingCoefficients',scalcfs);
plot(t,sig-xrec0)
hold on
plot(t,sig-xrec1)
grid on
legend('Using mean(sig)','Using scalcfs')
title('Difference Between Reconstructions')

Масштабирующиеся коэффициенты приводят к значительно более точной реконструкции. Чтобы исследовать источник поразительного улучшения, создайте второй сигнал, состоящий из компонента на 2 Гц исходного сигнала. Сравните масштабные коэффициенты с сигналом на 2 Гц. Масштабные коэффициенты и сигнал на 2 Гц фактически идентичны. Используя масштабные коэффициенты помогает с реконструкцией, потому что компонент на 2 Гц не является представимым вейвлетом с этой частотой дискретизации и длиной.

figure
sig2hz = cos(2*pi*2*t);
plot(t,sig2hz)
hold on
plot(t,scalcfs)
grid on
title('Comparing Scaling Coefficients with 2 Hz Component')
xlabel('Time (sec)')
legend('2 Hz Component', 'Scaling Coefficients')

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

свернуть все

Набор фильтров непрерывного вейвлета преобразовывает (CWT), заданный как cwtfilterbank объект.

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

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

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

свернуть все

Непрерывный вейвлет преобразовывает, возвращенный как матрица или трехмерный массив комплексных чисел. Если x с действительным знаком, cfs 2D матрица, где каждая строка соответствует одной шкале. Размер столбца cfs равно длине x. Если x с комплексным знаком, cfs трехмерный массив, где первой страницей является CWT для положительных шкал (аналитическая часть или против часовой стрелки компонент), и второй страницей является CWT для отрицательных шкал (антианалитическая часть или по часовой стрелке компонент).

Частоты, возвращенные как вектор, соответствуя шкалам (строки) cfs если 'SamplingPeriod' не задан в fb. Если вы задаете частоту дискретизации, f находится в герц. Если вы не задаете частоту, f находится в циклах/выборке.

Типы данных: double

Периоды, возвращенные как массив длительности, соответствуя шкалам (строки) cfs если fb имеет заданный период выборки. p имеет те же модули и формат как скаляр длительности выборка периода.

Типы данных: duration

Конус влияния за CWT, возвращенный или как массив вещественных чисел или как массив длительности. Конус влияния указывает, где краевые эффекты происходят в CWT. Если вы задаете частоту дискретизации, coi массив вещественных чисел в тех же модулях как f. Если вы задаете период выборки, coi массив длительности с тем же свойством формата как период выборки. Из-за краевых эффектов, верьте меньше к областям, которые являются снаружи или перекрывают конус влияния.

Для получения дополнительной информации смотрите Граничные эффекты и Конус Влияния.

Типы данных: double | duration

Масштабные коэффициенты для вейвлета преобразовывают, возвращенный как вектор с той же длиной как x. Если x с действительным знаком, scalcfs действителен оцененный. Если x комплексный оцененный, scalcfs комплексный оцененный.

Типы данных: double

Введенный в R2018a