Цель этого примера состоит в том, чтобы показать функции многошкального анализа основных компонентов (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 несосредоточенный 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
Мы видим, что результаты перспективы сжатия хороши. Проценты, отражающие качество реконструкций столбца, данных относительными среднеквадратичными погрешностями, близко к 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) количество сохраненных основных компонентов нев центре (PC) для деталей на уровне d. npc
(6) количество сохраненных PC нев центре для приближений на уровне 5 и npc
(7) количество сохраненных PC для итогового 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
Как мы видим выше, результаты улучшены.
Больше о многошкальном PCA, включая некоторую теорию, симуляции и действительные примеры, может быть найден в следующей ссылке:
Aminghafari, М.; Чез, Н.; Погги, J-M. (2006), "Многомерное шумоподавление с помощью вейвлетов и анализа главных компонентов", Computational Statistics & Data Analysis, 50, стр 2381-2398.