Анализ мультиразрешения на основе MODWT
mra = modwtmra(w)
mra = modwtmra(w,wname)
mra = modwtmra(w,Lo,Hi)
mra = modwtmra(___,'reflection')
использует отражательное граничное условие в конструкции MRA, использующего любой из аргументов от предыдущих синтаксисов. Если вы задаете mra
= modwtmra(___,'reflection')'reflection'
, modwtmra
принимает, что длина исходного сигнала является одной половиной количества столбцов во входной матрице коэффициентов.
Получите MODWTMRA, простой timeseries сигнализирует и демонстрирует совершенную реконструкцию.
Создайте сигнал timeseries
t = 1:10; x =sin(2*pi*200*t);
Получите MODWT и MODWTMRA и суммируйте строки MODWTMRA.
m = modwt(x); mra = modwtmra(m); xrec = sum(mra);
Используйте максимум абсолютных значений, чтобы показать, что различие между исходным сигналом и реконструкцией является чрезвычайно небольшим. Самое большое абсолютное значение находится на порядке , который демонстрирует совершенную реконструкцию.
max(abs(x-xrec))
ans = 5.5738e-25
Создайте MRA сигнала ECG вниз, чтобы выровнять четыре использования 'db2' вейвлета.
load wecg; lev = 4; wtecg = modwt(wecg,'db2',lev); mra = modwtmra(wtecg,'db2');
Постройте форму волны ECG и MRA.
subplot(6,1,1) plot(wecg) for kk = 2:lev+2 subplot(6,1,kk) plot(mra(kk-1,:)) end
Создайте анализ мультиразрешения для южных Индексных данных о Колебании. Период выборки является одним днем. Постройте уровень восемь деталей, соответствующих шкале дни. Детали в этой шкале получают колебания в шкале приблизительно одного года.
load soi wtsoi = modwt(soi); mrasoi = modwtmra(wtsoi); plot(mrasoi(8,:)) title('Level 8 Details')
Получите MRA для Деуча Марка - данные об обменном курсе доллара США с помощью минимального масштабирования пропускной способности и фильтров вейвлета с четырьмя коэффициентами.
load DM_USD;
Lo = [0.4801755, 0.8372545, 0.2269312, -0.1301477];
Hi = qmf(Lo);
wdm = modwt(DM_USD,Lo,Hi);
mra = modwtmra(wdm,Lo,Hi);
Получите MRA для сигнала ECG использование обработки контура 'reflection'
.
load wecg; wtecg = modwt(wecg,'reflection'); mra = modwtmra(wtecg,'reflection');
Покажите, что количество столбцов в MRA равно числу элементов в исходном сигнале.
isequal(size(mra,2),numel(wecg))
ans = logical
1
Этот пример демонстрирует различия между функциями MODWT и MODWTMRA. Разделы MODWT энергия сигнала через коэффициенты детали и масштабные коэффициенты. Проекты MODWTMRA сигнал на подпространства вейвлета и масштабирующееся подпространство.
Выберите 'sym6' вейвлет. Загрузите и постройте форму волны ECG. Данные о ECG взяты из Базы данных Аритмии MIT-BIH.
load mit200 wv = 'sym6'; plot(ecgsig) grid on title(['Signal Length = ',num2str(length(ecgsig))])
Возьмите MODWT сигнала.
wtecg = modwt(ecgsig,wv);
Входные данные являются выборками функции оцененный в - много моментов времени. Функция может быть выражена как линейная комбинация масштабирующейся функции и вейвлет в переменных шкалах и переводах: где и количество уровней разложения вейвлета. Первая сумма является крупным приближением шкалы сигнала, и детали в последовательных шкалах. MODWT возвращается - много коэффициентов и - много коэффициентов детали из расширения. Каждая строка в wtecg
содержит коэффициенты в различной шкале.
При взятии MODWT сигнала длины , существуют - много уровней разложения (по умолчанию). Коэффициенты детали производятся на каждом уровне. Масштабные коэффициенты возвращены только для итогового уровня. В этом примере, с тех пор , и количество строк в wtecg
.
Разделы MODWT энергия через различные шкалы и масштабные коэффициенты: где входные данные, коэффициенты детали в шкале , и масштабные коэффициенты итогового уровня.
Вычислите энергию в каждой шкале и оцените их сумму.
energy_by_scales = sum(wtecg.^2,2); Levels = {'D1';'D2';'D3';'D4';'D5';'D6';'D7';'D8';'D9';'D10';'D11';'D12';'D13';'A13'}; energy_table = table(Levels,energy_by_scales); disp(energy_table)
Levels energy_by_scales ______ ________________ 'D1' 0.31592 'D2' 2.6504 'D3' 28.802 'D4' 159.37 'D5' 300.5 'D6' 431.33 'D7' 444.93 'D8' 182.37 'D9' 45.381 'D10' 11.578 'D11' 19.809 'D12' 4.5406 'D13' 3.308 'A13' 192.46
energy_total = varfun(@sum,energy_table(:,2))
energy_total=1×1 table
sum_energy_by_scales
____________________
1827.3
Подтвердите, что MODWT является сохранением энергии путем вычисления энергии сигнала и сравнения его с суммой энергий по всем шкалам.
energy_ecg = sum(ecgsig.^2); max(abs(energy_total.sum_energy_by_scales-energy_ecg))
ans = 4.0875e-09
Возьмите MODWTMRA сигнала.
mraecg = modwtmra(wtecg,wv);
MODWTMRA возвращает проекции функции на различные подпространства вейвлета и итоговый пробел масштабирования. Таким образом, MODWTMRA возвращается и - многие оцененный в - много моментов времени. Каждая строка в mraecg
является проекцией на различное подпространство. Это означает, что исходный сигнал может быть восстановлен путем добавления всех проекций. Это не верно в случае MODWT. Добавление коэффициентов в wtecg
не восстановит исходный сигнал.
Выберите момент времени, добавьте проекции оцененный в то время указывают и соответствуют исходному сигналу.
time_point = 1000; abs(sum(mraecg(:,time_point))-ecgsig(time_point))
ans = 3.0942e-13
Подтвердите, что, в отличие от MODWT, MODWTMRA не является сохраняющим энергию преобразованием.
energy_ecg = sum(ecgsig.^2); energy_mra_scales = sum(mraecg.^2,2); energy_mra = sum(energy_mra_scales); max(abs(energy_mra-energy_ecg))
ans = 534.7949
MODWTMRA является фильтрацией нулевой фазы сигнала. Функции будут выровнены временем. Продемонстрируйте это путем графического вывода исходного сигнала и одной из его проекций. Чтобы лучше проиллюстрировать выравнивание, увеличить масштаб.
figure plot(ecgsig) hold on plot(mraecg(4,:),'-') grid on xlim([4000 5000]) legend('Signal','Projection','Location','northwest')
Сделайте подобный график с помощью коэффициентов MODWT в той же шкале. Обратите внимание на то, что функции не будут выровнены временем. MODWT не является фильтрацией нулевой фазы входа.
figure plot(ecgsig) hold on plot(wtecg(4,:),'-') grid on xlim([4000 5000]) legend('Signal','Coefficients','Location','northwest')
Ссылки
Голдбергер А. Л., Л. А. Н. Амарал, L. Стекло, Дж. М. Гаусдорф, P. Ch. Иванов, Р. Г. Марк, Дж. Э. Митус, Г. Б. Муди, C-K Пенг, Х. Э. Стэнли. "PhysioBank, PhysioToolkit и PhysioNet: Компоненты Нового Ресурса Исследования для Комплексных Физиологических Сигналов". Циркуляция 101. Vol.23, e215-e220, 2000. http://circ.ahajournals.org/cgi/content/full/101/23/e215
Капризный, G. B. "Оценивая ECG Анализаторы". http://www.physionet.org/physiotools/wfdb/doc/wag-src/eval0.tex
Муди Г. Б., Р. Г. Марк. "Влияние Базы данных Аритмии MIT-BIH". Инженер IEEE в Med и Biol. Издание 20, Номер 3, 2001), стр 45-50.
w
MODWT преобразовывают Максимальное перекрытие дискретный вейвлет преобразовывает, заданный как матрица. w
является вывод modwt
.
Входом w
является L +1-by-N матрица, содержащая MODWT N - входной сигнал точки вниз, чтобы выровнять L. По умолчанию modwtmra
принимает, что вы получили MODWT использование symlet вейвлета с четырьмя исчезающими моментами, 'sym4'
и использованием периодической граничной обработки.
Типы данных: double
wname
— Вейвлет синтеза'sym4'
(значение по умолчанию) | вектор символов | представляет скаляр в виде строкиВейвлет синтеза, заданный как вектор символов или скаляр строки. Вейвлет синтеза должен быть тем же вейвлетом, используемым, чтобы получить MODWT с функцией modwt
.
Lo
— Масштабирование фильтраmra
— Анализ мультиразрешенияАнализ мультиразрешения, возвращенный как матрица. По умолчанию mra
одного размера, когда вход преобразовывает матричный w
. Если вы задаете отражательную граничную обработку, то mra
имеет одну половину количества столбцов как входная матрица w
.
Выводом mra
является L +1-by-N матрица. k th строка mra
содержит детали для k th уровень. (L +1) th строка mra
содержит L th сглаженный уровень.
[1] Персиваль, D. B. и Уолден, A. T. Методы вейвлета для анализа временных рядов. Кембридж, U.K: Издательство Кембриджского университета, 2000.
[2] Whitcher, B., П. Гатторп и Д. Б. Персиваль. "Ковариационный анализ вейвлета с приложением к атмосферным временным рядам". Журнал Геофизического Исследования, Издания 105, 2000, стр 14941–14962.
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.