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

Цель этого примера состоит в том, чтобы показать функции многомасштабного анализа основных компонентов (PCA), представленные в Wavelet Toolbox™.

Цель многомасштабного PCA состоит в том, чтобы восстановить упрощенный многомерный сигнал, начиная с многомерного сигнала и используя простое представление на каждом уровне разрешения. Многомасштабный анализ основных компонентов обобщает PCA многомерного сигнала, представленного в виде матрицы, путем одновременного выполнения PCA на матрицах деталей различных уровней. PCA также выполняется на матрице более грубых коэффициентов приближения в вейвлет области а также на конечной восстановленной матрице. Путем выбора количества сохраненных главных компонентов могут быть восстановлены интересные упрощенные сигналы. Этот пример использует несколько шумных тестовых сигналов и выполняет следующие шаги.

Загрузка многомерного сигнала

Load the multivariate signal by typing the following at the MATLAB(R) prompt:

 load ex4mwden
 whos
  Name           Size            Bytes  Class     Attributes

  covar          4x4               128  double              
  x           1024x4             32768  double              
  x_orig      1024x4             32768  double              

Обычно только матрица данных x доступно. Здесь у нас также есть истинная шумовая ковариационная матрица covar и исходные сигналы x_orig. Эти сигналы являются шумными версиями простых комбинаций двух исходных сигналов. Первый сигнал является «Блоками», который является нерегулярным, а второй - «HeavySine», который является регулярным, за исключением времени 750. Другие два сигнала являются суммой и различием двух исходных сигналов, соответственно. Многомерный Гауссов белый шум, проявляющий сильную пространственную корреляцию, добавляется к полученным четырем сигналам, что генерирует наблюдаемые данные, хранящиеся в x.

Выполнение простого многомасштабного PCA

Multiscale PCA объединяет noncentered PCA на приближениях и деталях в вейвлете области и окончательном PCA. На каждом уровне выбираются наиболее важные основные компоненты.

Сначала установите параметры вейвлета:

level = 5;
wname = 'sym4';

Затем автоматически выберите количество сохраненных основных компонентов с помощью правила Кайзера, которое сохраняет компоненты, связанные с собственными значениями, превышающими среднее значение всех собственных значений, путем ввода:

npc = 'kais';

Наконец, выполните многомасштабный PCA:

[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(['Original signal ',num2str(i)])
    subplot(4,2,kp+2), plot(x_sim(:,i)); axis tight;
    title(['Simplified 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 Simplified 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 Simplified 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 Simplified 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 Simplified signal 4 contains an object of type line.

Мы видим, что результаты с точки зрения сжатия хороши. Проценты, отражающие качество восстановления столбца, заданные относительными средними квадратными ошибками, близки к 100%.

qual
qual = 1×4

   98.0545   93.2807   97.1172   98.8603

Улучшите первый результат, сохраняя меньше основных компонентов

Мы можем улучшить результаты путем подавления шума, потому что детали на уровнях 1-3 состоят по существу из шума с небольшими вкладами от сигнала. Удаление шума приводит к грубому, но эффективному, обесценивающему эффекту.

Выходной аргумент npc количество сохраненных основных компонентов, выбранных по правилу Кайзера:

npc
npc = 1×7

     1     1     1     1     1     2     2

Для d от 1 до 5, npc(d) количество сохраненных несвязанных основных компонентов (ПК) для получения дополнительной информации на уровне d. npc(6) количество сохраненных нецентрированных ПК для приближений на уровне 5 и npc (7) количество удерживаемых ПК для окончательного PCA после вейвлет-реконструкции. Как ожидалось, правило сохраняет два основных компонента, как для приближений PCA, так и для окончательного PCA, но один основной компонент сохраняется для получения подробной информации на каждом уровне.

Чтобы подавить детали на уровнях с 1 по 3, обновите npc аргумент следующего содержания:

npc(1:3) = zeros(1,3);
npc
npc = 1×7

     0     0     0     1     1     2     2

Затем снова выполните многомасштабный PCA путем ввода:

[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(['Original signal ',num2str(i)])
    subplot(4,2,kp+2), plot(x_sim(:,i)); axis tight; 
    title(['Simplified 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 Simplified 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 Simplified 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 Simplified 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 Simplified signal 4 contains an object of type line.

Как мы видим выше, результаты улучшены.

Дополнительные сведения о многомасштабном анализе основных компонентов

Подробнее о многомасштабном PCA, включая некоторые теории, симуляции и реальные примеры, можно найти в следующей ссылке:

Амингхафари, М.; Cheze, N.; Погги, Дж-М. (2006), «Многомерное шумоподавление с использованием вейвлетов и анализа основных компонентов», Computational Statistics & Data Analysis, 50, pp. 2381-2398.