icwt

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

Синтаксис

xrec = icwt(wt)
xrec = icwt(wt,wname)
xrec = icwt(wt,f,freqrange)
xrec = icwt(wt,period,periodrange)
xrec = icwt(___,Name,Value)

Описание

пример

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 по частотному диапазону, заданному в freqrange. f является преобразованием шкалы к частоте, полученным из 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 должна строго увеличиваться и содержавшаяся в области значений f. f является преобразованием шкалы к частоте, полученным в 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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