icwt

Обратный непрерывный 1D вейвлет преобразовывает

Описание

пример

xrec = icwt(wt) инвертирует матрицу коэффициентов непрерывного вейвлета преобразовывает (CWT) wt использование значений по умолчанию. icwt принимает, что вы получили CWT с помощью cwt с аналитическим Морзе по умолчанию (3,60) вейвлет. Этот вейвлет имеет симметрию 3 и пропускную способность времени 60. icwt также принимает, что CWT использует шкалы по умолчанию. Если wt 2D матрица, icwt принимает, что CWT был получен из сигнала с действительным знаком. Если wt 3-D матрица, icwt принимает, что CWT был получен из сигнала с комплексным знаком. Для 3-D матрицы, первой страницы wt CWT положительного (против часовой стрелки) компонент и вторая страница wt отрицание (по часовой стрелке) компонент. Страницы представляют аналитические и антианалитические части CWT, соответственно.

пример

xrec = icwt(wt,wname) использует аналитический вейвлет wname инвертировать CWT. Заданный вейвлет должен совпасть с вейвлетом, используемым в cwt. Допустимые опции для wname 'morse', 'amor', и 'bump', которые задают Азбуку Морзе, Morlet и вейвлет удара, соответственно.

пример

xrec = icwt(wt,f,freqrange) инвертирует CWT по частотному диапазону, заданному в freqrangeF преобразование шкалы к частоте, полученное из cwt.

пример

xrec = icwt(wt,period,periodrange) инвертирует CWT в области значений периодов, заданных в periodrange. period массив длительности, полученной из cwt с входом длительности. period cwt выведите полученное использование duration входной параметр. Область значений периода должна увеличиваться и содержавшаяся в period.

пример

xrec = icwt(___,Name,Value) возвращает обратный CWT с дополнительными опциями, заданными одним или несколькими Name,Value парные аргументы.

Примеры

свернуть все

Получите CWT речевой выборки и инвертируйте CWT с помощью аналитического вейвлета Морзе по умолчанию.

load mtlb;
wt = cwt(mtlb);
xrec = icwt(wt);

Получите непрерывное преобразование вейвлета речевой выборки и восстановите выборку с помощью вейвлета удара вместо значения по умолчанию вейвлет Морзе.

load mtlb;
dt = 1/Fs;
t = 0:dt:numel(mtlb)*dt-dt;

Получите и постройте CWT.

[bumpmtlb,f] = cwt(mtlb,Fs,'bump');
p1 = pcolor(t,f,abs(bumpmtlb));
p1.EdgeColor = 'none';
xlabel('Seconds'); 
ylabel('Hz');

Получите обратный CWT.

xrec = icwt(bumpmtlb,'bump','SignalMean',mean(mtlb));

Постройте исходные и восстановленные сигналы.

plot(t,mtlb);
xlabel('Seconds');
ylabel('Amplitude');
hold on;
plot(t,xrec,'r');
legend('Original','Reconstruction');

Проигрывайте и сравните исходные и восстановленные сигналы.

p = audioplayer(mtlb,Fs);
play(p);
pause(2);
px = audioplayer(xrec,Fs);
play(px);

Восстановите локализованное частотой приближение к данным о землетрясении Кобе путем извлечения информации из CWT. Извлеченная информация соответствует частотам в области значений [0.030 0.070] Гц.

load kobe;

Получите CWT. Затем получите обратный CWT и добавьте среднее значение сигнала назад в восстановленные данные. CWT не сохраняет среднее значение сигнала.

[wt,f] = cwt(kobe,1);
xrec = icwt(wt,f,[0.030 0.070],'SignalMean',mean(kobe));

Отобразите исходные и восстановленные данные на графике.

subplot(211)
plot(kobe);
grid on
title('Original Data');
ylabel('Amplitude')

subplot(212)
plot(xrec);
grid on
title('Bandpass Filtered Reconstruction [0.030 0.070] Hz');
xlabel('Frequency');
ylabel('Amplitude');

Использование обратный непрерывный вейвлет преобразовывает, чтобы восстановить приближение к данным Эль-Ниньо на основе периодов 2 - 8 лет.

Загрузите данные Эль-Ниньо и получите его CWT. Данные производятся ежемесячно. Чтобы получить периоды в годах, задайте интервал выборки как 1/12 года.

load ninoairdata;
[cfs,period] = cwt(nino,years(1/12));

Получите обратный CWT в течение периодов 2 - 8 лет.

xrec = icwt(cfs,period,[years(2) years(8)]);

Постройте CWT восстановленных данных и сравните его с CWT исходных данных.

cwt(nino,years(1/12)); title('Original Data');

figure;
cwt(xrec,years(1/12)); title('Approximation Based on 2-8 Year Periods');

Сравните исходные данные с восстановленными данными вовремя.

figure;
subplot(211)
plot(datayear,nino); 
grid on;
ax = gca;
ax.XTickLabel = '';
axis tight;
title('Original Data');

subplot(212)
plot(datayear,xrec); 
grid on;
axis tight;
xlabel('Year');
title('El Nino Data - 2-8 Year Periods');

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

Получите CWT набора данных NPG2006.

load npg2006.mat
wt = cwt(npg2006.cx);

Создайте изменяющийся во времени тренд, выведенный из данных.

trend = smoothdata(npg2006.cx,'movmean',100);

Получите обратный CWT и добавьте тренд. Отобразите на графике исходные данные и восстановленные данные.

xrec = icwt(wt,'SignalMean',trend);
plot([real(xrec)' real(npg2006.cx)])
grid on
legend('Trend','Original')

figure
plot([imag(xrec)' imag(npg2006.cx)])
grid on
legend('Trend','Original')

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

свернуть все

Непрерывный вейвлет преобразовывает коэффициенты, заданные как матрица комплексных чисел. wt выход от cwt функция.

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

Аналитический вейвлет раньше инвертировал CWT, заданный как 'morse', 'amor', или 'bump'. Эти векторы символов задают аналитическую Азбуку Морзе, Morlet и вейвлет удара, соответственно. Заданный вейвлет должен быть тем же типом вейвлета, используемого, чтобы получить cwt.

Значение по умолчанию вейвлет Морзе использует параметр симметрии по умолчанию, γ, это равняется 3 и имеет пропускную способность времени по умолчанию 60.

Частоты CWT, заданные как вектор. Число элементов в векторе частоты должно равняться количеству строк в матрице коэффициентов входа CWT, wt. Если вы задаете f, необходимо также задать freqrange.

Частотный диапазон, для которого можно возвратить обратный непрерывный вейвлет, преобразовывает значения, заданные как двухэлементная векторная или матрица 2 на 2. Если wt 2D матрица, freqrange должен быть двухэлементный вектор. Если wt 3-D матрица, freqrange может быть двухэлементный вектор или матрица 2 на 2. Если wt 3-D матрица и freqrange вектор, инверсия выполняется по тому же частотному диапазону и в положительных (аналитических) и в отрицательных (антианалитических) компонентах wt. Если freqrange матрица 2 на 2, первая строка содержит частотный диапазон для положительной части wt (первая страница), и вторая строка содержит частотный диапазон для отрицательной части wt (вторая страница). Для вектора, элементов freqrange должен строго увеличиваться и содержавшийся в области значений вектора частоты f. Для матрицы, каждой строки freqrange должен строго увеличиваться и содержавшийся в области значений fF преобразование шкалы к частоте, полученное в CWT. Для инверсии сигнала с комплексным знаком можно задать одну строку freqrange как нулевой вектор. Если первая строка freqrange нулевой вектор, только отрицание (антианалитическая часть) используется в инверсии. Если вы задаете freqrange, необходимо также задать f.

Например, [0 0; 1/10 1/4] инвертирует отрицание (по часовой стрелке) компонент по частоте range [1/10 1/4]. Положительное (против часовой стрелки) компонент сначала установлено во все нули прежде, чем выполнить инверсию. Точно так же [1/10 1/4; 0 0] инвертирует CWT путем выбора частотного диапазона [1/10 1/4] от положительного (против часовой стрелки) компонент и установка отрицательного компонента ко всем нулям.

Периоды времени, соответствующие строкам матрицы коэффициентов CWT wt, заданный как вектор. period выход cwt, когда CWT получен с помощью duration входной параметр.

Область значений периода, для которой можно возвратить обратный непрерывный вейвлет, преобразовывает значения, заданные как двухэлементная векторная или матрица 2 на 2. Если wt 2D матрица, periodrange должен быть двухэлементный вектор длительности. Если wt 3-D матрица, periodrange может быть двухэлементный вектор длительности или матрица 2 на 2 длительности. Если periodrange вектор длительности и wt 3-Dmatrix, инверсия выполняется по тому же частотному диапазону и в положительных (аналитических) и в отрицательных (антианалитических) компонентах wt. Если periodrange матрица 2 на 2 длительности, первая строка содержит область значений периода для положительной части wt (первая страница), и вторая строка содержит область значений периода для отрицательной части wt (вторая страница). Для вектора, элементов periodrange должен строго увеличиваться и содержавшийся в области значений вектора периода period. Элементы periodrange и period должен иметь те же модули. Для матрицы, каждой строки periodrange должен строго увеличиваться и содержавшийся в области значений вектора периода P. Для инверсии сигнала с комплексным знаком можно задать одну строку periodrange как вектор нулевой длительности. Если первая строка periodrange вектор нулевой длительности, только отрицание (антианалитическая часть) используется в инверсии. Если вы задаете periodrange, необходимо также задать period.

Например, [seconds(0) seconds(0); seconds(1/10) seconds(1/4)] инвертирует отрицание (по часовой стрелке) компонент в области значений периода [seconds(1/10) seconds(1/4)]. Положительное (против часовой стрелки) компонент сначала установлено во все нули прежде, чем выполнить инверсию. Точно так же [seconds(1/10) seconds(1/4); seconds(0) seconds(0)] инвертирует CWT путем выбора области значений периода [1/10 1/4] от положительного (против часовой стрелки) компонент и установка отрицательного компонента ко всем нулям.

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

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

Пример: 'TimeBandwidth',45 устанавливает пропускную способность времени на 45.

Пропускная способность времени вейвлета Морзе, заданного как разделенная запятой пара, состоящая из 'TimeBandwidth' и скаляр, больше, чем 3 и меньше чем или равный 120. Пропускная способность требуемого времени должна совпасть с пропускной способностью времени, используемой в cwt. Симметрия вейвлета Морзе принята, чтобы быть 3.

Вы не можете задать обоих 'TimeBandwidth' и 'WaveletParameters'. Если вы задаете 'TimeBandwidth' , вы не можете задать 'WaveletParameters'. Чтобы задать и симметрию и пропускную способность времени, используйте 'WaveletParameters' вместо этого.

Симметрия и пропускная способность времени вейвлета Морзе, заданного как разделенная запятой пара, состоящая из 'WaveletParameters' и двухэлементный вектор скаляров. Первый элемент вектора является симметрией, γ, и второй элемент является пропускной способностью времени. Заданные параметры вейвлета должны совпасть с параметрами, используемыми в cwt.

Вы не можете задать оба 'WaveletParameters' и 'TimeBandwidth'. Если вы задаете 'WaveletParameters', вы не можете задать 'TimeBandwidth'. Чтобы задать пропускную способность времени и использовать значение симметрии по умолчанию 3, используйте 'TimeBandwidth' вместо этого.

Среднее значение сигнала, чтобы добавить к icwt выведите, заданный как разделенная запятой пара, состоящая из 'SignalMean' и скаляр или вектор. Если среднее значение сигнала является вектором, это должна быть та же длина как размер столбца матрицы коэффициентов вейвлета. Если wt 2D матрица, среднее значение сигнала должно быть скаляром с действительным знаком или вектором. Если wt 3-D матрица, среднее значение сигнала должно быть скаляром с комплексным знаком или вектором. Поскольку cwt не сохраняет среднее значение сигнала, icwt не содержит среднее значение сигнала по умолчанию. Добавление ненулевого среднего значения сигнала к частоте - или ограниченная периодом реконструкция добавляет нулевую частотную составляющую в реконструкцию.

Масштабные коэффициенты, чтобы использовать в обратном CWT, заданном как действительное - или комплексный вектор, полученный как дополнительный выход cwt.

Масштабирующийся коэффициент выход только поддержан для вейвлетов Морзе и аналитического вейвлета Morlet. Длина ScalingCoefficients равно размеру столбца wt.

Вы не можете задать обоих 'SignalMean' и 'ScalingCoefficients' пары "имя-значение".

Количество речи на октаву, заданную как разделенная запятой пара, состоящая из 'VoicesPerOctave' и ровное целое число от 4 до 48. Шкалы CWT дискретизируются с помощью конкретного количества речи на октаву. Количество речи на октаву должно быть эквивалентным, количество речи на октаву раньше получало CWT.

Вы не можете задать количество речи на октаву, если вы задаете любого частота, f, или длительность, period.

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

свернуть все

Обратный 1D непрерывный вейвлет преобразовывает, возвращенный как действительное - или вектор-строка с комплексным знаком.

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

Ссылки

[1] Лилли, J. M. и С. К. Олхед. “Обобщенные Вейвлеты Азбуки Морзе как Суперсемейство Аналитических Вейвлетов”. Транзакции IEEE на Обработке сигналов. Издание 60, № 11, 2012, стр 6036–6041.

[2] Лилли, J. M. и С. К. Олхед. “Свойства высшего порядка Аналитических Вейвлетов”. Транзакции IEEE на Обработке сигналов. Издание 57, № 1, 2009, стр 146–160.

[3] Лилли, J. M. jLab: пакет анализа данных для MATLAB, версии 1.6.2. 2016. http://www.jmlilly.net/jmlsoft.html.

Введенный в R2017b