waverec3

3-D реконструкция вейвлета

Синтаксис

X = waverec3(WDEC)
C = waverec3(WDEC,TYPE,N)
X = waverec3(WDEC,'a',0)
X = waverec3(WDEC,'ca',0)
C = waverec3(WDEC,TYPE)
C = waverec3(WDEC,TYPE,N)

Описание

waverec3 выполняет многоуровневую 3-D реконструкцию вейвлета, начинающую с многоуровневого 3-D разложения вейвлета.

X = waverec3(WDEC) восстанавливает трехмерный массив X на основе многоуровневой структуры разложения вейвлета WDEC. Можно также использовать waverec3, чтобы извлечь коэффициенты от 3-D разложения вейвлета.

WDEC является структурой с полями, показанными в таблице.

C = waverec3(WDEC,TYPE,N) восстанавливает многоуровневые компоненты на уровне N 3-D разложения вейвлета. N должен быть положительным целым числом, меньше чем или равным уровню разложения.

Допустимые значения для TYPE:

  • Группа из трех символов, 'xyz', один на направление, с 'x', 'y' и 'z' выбрал в наборе {'a', 'd', 'l', 'h'} или в соответствующем прописном наборе {'A', 'D', 'L', 'H'}), то, где 'A' (или 'L') является фильтром нижних частот и 'D' (или 'H') является фильтром высоких частот.

  • char 'd' (или 'h' или 'D' или 'H') дает сумму всех компонентов, отличающихся от низкой передачи.

  • Символьный 'a' (или 'l' или 'A' или 'L') дает компонент низкой передачи (приближение на уровне N).

Для экстракции допустимые значения для ВВОДЯТ, то же самое, но снабженный префиксом 'c' или 'C'.

X = waverec3(WDEC,'a',0) или X = waverec3(WDEC,'ca',0) эквивалентно X = waverec3(WDEC). X является реконструкцией коэффициентов в WDEC на уровне 0.

C = waverec3(WDEC,TYPE) эквивалентно C = waverec3(WDEC,TYPE,N) с N равняются уровню разложения.

sizeINI

Размер 3D массива X

level

Уровень разложения

mode

Имя вейвлета преобразовывает дополнительный режим

filters

Структура с 4 полями, LoD, HiD, LoR и HiR, которые содержат фильтры, используемые для DWT

dec

N x 1 массив ячеек, содержащий коэффициенты разложения. N равен 7*WDEC.level+1.

dec{1} содержит lowpass компонент (приближение) на уровне разложения. Приближение эквивалентно операциям 'LLL' фильтрации.

dec{k+2},...,dec{k+8} с k = 0,7,14,...,7*(WDEC.level-1) содержит 3-D коэффициенты вейвлета для мультиразрешения начиная с самого грубого уровня когда k=0.

Например, если WDEC.level=3, dec{2},...,dec{8} содержит коэффициенты вейвлета для уровня 3 (k=0), dec{9},...,dec{15} содержат коэффициенты вейвлета для уровня 2 (k=7), и dec{16},...,dec{22} содержит коэффициенты вейвлета для уровня 1 (k=7*(WDEC.level-1)).

На каждом уровне коэффициенты вейвлета в dec{k+2},...,dec{k+8} в следующем порядке: 'HLL', 'LHL', 'HHL', 'LLH', 'HLH', 'LHH', 'HHH'.

Последовательность букв дает распоряжение, в котором отделимые операции фильтрации применяются слева направо. Например, 'LHH' означает, что lowpass (масштабирующий) фильтр с субдискретизацией, применяется к строкам X, сопровождаемого highpass (вейвлет), фильтр с субдискретизацией применился к столбцам X. Наконец, фильтр highpass с субдискретизацией применяется к 3-й размерности X.

sizes

Последовательные размеры компонентов разложения

Примеры

свернуть все

Создайте 3-D матрицу, получите вейвлет, преобразовывают вниз к уровню 2 с помощью вейвлета 'db2' и восстанавливают матрицу, чтобы проверить совершенную реконструкцию.

Создайте 3-D матрицу.

M = magic(8);
X = repmat(M,[1 1 8]);

Получите 3-D дискретное преобразование вейвлета матрицы и восстановите вход на основе 3-D приближения и детализируйте коэффициенты.

wd = wavedec3(X,2,'db2');
XR = waverec3(wd);

Проверьте совершенную реконструкцию с помощью разложения вейвлета вниз для уровня 2.

err1 = max(abs(X(:)-XR(:)))
err1 = 8.6057e-11

Проверьте, что матрица данных является суммой приближения и деталей от уровней 2 и 1. Восстановите сумму компонентов, отличающихся от lowpass компонента, и проверяйте что X = A + D.

A = waverec3(wd,'LLL');
D = waverec3(wd,'d');
err2 = max(abs(X(:)-A(:)-D(:)))
err2 = 8.6054e-11

Сравните реконструкции уровня 1 на основе операций 'LLH' фильтрации с помощью idwt3 и waverec3.

M = magic(8);
X = repmat(M,[1 1 8]);
wd = wavedec3(X,2,'db2','mode','per');
dwtOut = dwt3(X,'db2');
Xr = idwt3(dwtOut,'LLH');
Xrec = waverec3(wd,'LLH',1);
norm(Xr(:)-Xrec(:))
ans = 2.7511e-14

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

| |

Представленный в R2010a