exponenta event banner

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около-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%. 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 выполняется также на матрице коэффициентов грубой аппроксимации в вейвлет-области, а также на окончательной реконструированной матрице. Выбирая удобно количество сохраненных главных компонентов, можно восстанавливать интересные упрощенные сигналы.

Ссылки

Амингхафари, М.; Чезе, Н.; Погги, Дж-М. (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.

См. также

Представлен в R2006b