Многомасштабный анализ основных компонентов
[X_SIM,QUAL,NPC,DEC_SIM,PCA_Params] = wmspca(X,LEVEL,WNAME,NPC)
[...] = wmspca(X,LEVEL,WNAME,'mode',EXTMODE,NPC)
[...] = wmspca(DEC,NPC)
[...] = wmspca(X,LEVEL,WNAME,'mode',EXTMODE,NPC)
[X_SIM,QUAL,NPC,DEC_SIM,PCA_Params] = wmspca(X,LEVEL,WNAME,NPC) или [...] = wmspca(X,LEVEL,WNAME,'mode',EXTMODE,NPC) возвращает упрощенную версию X_SIM входной матрицы X получают из основанного на вейвлетах многомасштабного анализа главных компонентов (PCA).
Входная матрица X содержит P сигналы длины N хранимый по столбцам (N > P).
Вейвлет-декомпозиция выполняется с использованием уровня декомпозиции. LEVEL и вейвлет WNAME.
EXTMODE является расширенным режимом для DWT (см. dwtmode).
Если декомпозиция DEC полученные с использованием mdwtdec доступен, можно использовать
[...] = wmspca(DEC,NPC) вместо
[...] = wmspca(X,LEVEL,WNAME,'mode',EXTMODE,NPC).
Если NPC является вектором, то он должен быть длиной LEVEL+2. Он содержит количество сохраненных основных компонентов для каждого выполненного PCA:
NPC(d) - количество сохраненных нецентрированных основных компонентов для подробных данных на уровне d, для 1 < = d <= LEVEL.
NPC(LEVEL+1) - количество сохраненных нецентрированных главных компонентов для аппроксимаций на уровне LEVEL.
NPC(LEVEL+2) - количество сохраненных основных компонентов для окончательного PCA после вейвлет-реконструкции.
NPC должно быть таким, чтобы 0 < =NPC(d) <= P для 1 < =d <= LEVEL+2.
Если NPC = 'kais' (соответственно, 'heur'), то количество сохраненных главных компонентов выбирается автоматически с помощью правила Кайзера (или эвристического правила).
В правиле Кайзера компоненты, связанные с собственными значениями, больше среднего значения всех собственных значений.
Эвристическое правило сохраняет компоненты, связанные с собственными значениями, больше 0,05 суммы всех собственных значений.
Если NPC = 'nodet', затем детали «убиваются» и все приближения сохраняются.
X_SIM является упрощенной версией матрицы X.
QUAL - вектор длины P содержит качество восстановлений столбцов, задаваемое относительными среднеквадратическими ошибками в процентах.
NPC - вектор выбранных чисел сохраненных главных компонентов.
DEC_SIM - вейвлет-декомпозиция X_SIM
PCA_Params - массив структуры длины LEVEL+2 чтобы:
PCA_Params(d).pc является Pоколо-P матрица основных компонентов.
Столбцы хранятся в порядке убывания отклонений.
PCA_Params(d).variances - вектор отклонений основного компонента.
PCA_Params(d).npc = NPC
Используйте вейвлет многомасштабный анализ главных компонентов для обнуления многомерного сигнала.
Загрузите набор данных, состоящий из четырех сигналов длиной 1024. Постройте график исходных сигналов и сигналов с аддитивным шумом.
load ex4mwden; kp = 0; for i = 1:4 subplot(4,2,kp+1) plot(x_orig(:,i)) axis tight title(['Original signal ',num2str(i)]) subplot(4,2,kp+2) plot(x(:,i)) axis tight title(['Noisy signal ',num2str(i)]) kp = kp + 2; end

Выполните первый мультимасштабный вейвлет PCA с использованием наименее асимметричного вейвлета Daubechies с четырьмя моментами исчезновения, sym4. Получите разложение с несколькими решениями до уровня 5. Используйте эвристическое правило, чтобы решить, сколько основных компонентов сохранить.
level = 5; wname = 'sym4'; npc = 'heur'; [x_sim, qual, npc] = wmspca(x,level,wname,npc);
Постройте график результата и изучите качество аппроксимации.
qual
qual = 1×4
97.4372 94.5520 97.7362 99.5219
kp = 0; for i = 1:4 subplot(4,2,kp+1) plot(x(:,i)) axis tight title(['Noisy signal ',num2str(i)]) subplot(4,2,kp+2) plot(x_sim(:,i)) axis tight title(['First PCA ',num2str(i)]) kp = kp+2; end

Все результаты по качеству близки к 100%. npc вектор дает число главных компонентов, сохраненных на каждом уровне.
Подавьте шум, удалив основные компоненты на уровнях 1�3. Снова выполните многомасштабный PCA.
npc(1:3) = zeros(1,3); [x_sim, qual, npc] = wmspca(x,level,wname,npc);
Постройте график результата.
kp = 0; for i = 1:4 subplot(4,2,kp+1) plot(x(:,i)) axis tight title(['Noisy signal ',num2str(i)]) subplot(4,2,kp+2) plot(x_sim(:,i)) axis tight title(['Second PCA ',num2str(i)]) kp = kp+2; end

Многомасштабные главные компоненты обобщают обычную PCA многомерного сигнала, видимого как матрица, путем выполнения одновременно PCA на матрицах деталей различных уровней. Кроме того, PCA выполняется также на матрице коэффициентов грубой аппроксимации в вейвлет-области, а также на окончательной реконструированной матрице. Выбирая удобно количество сохраненных главных компонентов, можно восстанавливать интересные упрощенные сигналы.
Амингхафари, М.; Чезе, Н.; Погги, Дж-М. (2006), «Многофакторное снятие шума с использованием вейвлетов и анализа основных компонентов», Computational Statistics & Data Analysis, 50, pp. 2381-2398.
Bakshi, B. (1998), «Multisale PCA with application to MSPC monitoring», AIChE J., 44, pp. 1596-1610.