wmspca

Многомасштабный анализ основных компонентов

Синтаксис

[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

Если 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

Figure contains 8 axes. Axes 1 with title Original signal 1 contains an object of type line. Axes 2 with title Noisy signal 1 contains an object of type line. Axes 3 with title Original signal 2 contains an object of type line. Axes 4 with title Noisy signal 2 contains an object of type line. Axes 5 with title Original signal 3 contains an object of type line. Axes 6 with title Noisy signal 3 contains an object of type line. Axes 7 with title Original signal 4 contains an object of type line. Axes 8 with title Noisy signal 4 contains an object of type line.

Выполните первый многомасштабный вейвлет 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

Figure contains 8 axes. Axes 1 with title Noisy signal 1 contains an object of type line. Axes 2 with title First PCA 1 contains an object of type line. Axes 3 with title Noisy signal 2 contains an object of type line. Axes 4 with title First PCA 2 contains an object of type line. Axes 5 with title Noisy signal 3 contains an object of type line. Axes 6 with title First PCA 3 contains an object of type line. Axes 7 with title Noisy signal 4 contains an object of type line. Axes 8 with title First PCA 4 contains an object of type line.

Все результаты качества близки к 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

Figure contains 8 axes. Axes 1 with title Noisy signal 1 contains an object of type line. Axes 2 with title Second PCA 1 contains an object of type line. Axes 3 with title Noisy signal 2 contains an object of type line. Axes 4 with title Second PCA 2 contains an object of type line. Axes 5 with title Noisy signal 3 contains an object of type line. Axes 6 with title Second PCA 3 contains an object of type line. Axes 7 with title Noisy signal 4 contains an object of type line. Axes 8 with title Second PCA 4 contains an object of type line.

Алгоритмы

Многомасштабные основные компоненты обобщают обычный 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.

См. также

Введенный в R2006b