Многошкальный анализ главных компонентов
[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
Используйте вейвлет многошкальный анализ главных компонентов для denoise многомерный сигнал.
Загрузите набор данных, состоящий из четырех сигналов длины 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 использование Добечи меньше всего - асимметричный вейвлет с четырьмя исчезающими моментами, 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 выполняется также на более грубой содействующей матрице приближения в области вейвлета, а также на финале восстановленная матрица. Путем выбора удобно количеств сохраненных основных компонентов, могут быть восстановлены интересные упрощенные сигналы.
Aminghafari, М.; Чез, Н.; Погги, J-M. (2006), “Многомерное шумоподавление с помощью вейвлетов и анализа главных компонентов”, Computational Statistics & Data Analysis, 50, стр 2381–2398.
Bakshi, B. (1998), “Многошкальный PCA с приложением к контролю MSPC”, AIChE J., 44, стр 1596–1610.