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

Примеры

Анализ главных компонентов вейвлета шумного многомерного сигнала

Используйте вейвлет многошкальный анализ главных компонентов для 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.

Смотрите также

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