Многомасштабный анализ основных компонентов
[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.