Многомасштабный анализ основных компонентов
[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-by- 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%. The 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 выполняется также на матрице более грубых коэффициентов приближения в вейвлет области а также на конечной восстановленной матрице. При удобном выборе количества сохраненных главных компонентов могут быть восстановлены интересные упрощенные сигналы.
Амингхафари, М.; Cheze, N.; Погги, Дж-М. (2006), «Многомерное шумоподавление с использованием вейвлетов и анализа основных компонентов», Computational Statistics & Data Analysis, 50, pp. 2381-2398.
Bakshi, B. (1998), «Multiscale PCA with application to MSPC monitoring», AIChE J., 44, pp. 1596-1610.