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

Этот раздел демонстрирует функции многошкального анализа основных компонентов, обеспеченного в программном обеспечении Wavelet Toolbox™. Тулбокс включает функцию wmspca и приложение Wavelet Analyzer. В этом разделе описываются командную строку и методы приложения и информацию о передаче сигнала и информации о параметре между диском и приложением.

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

Поскольку можно выполнить многошкальный PCA или из командной строки или из использования приложения, этот раздел имеет подразделы, покрывающие каждый метод.

Многошкальный анализ основных компонентов — командная строка

Этот пример использует шумные тестовые сигналы. В этом разделе вы будете:

  • Загрузите многомерный сигнал.

  • Выполните простой многошкальный PCA.

  • Отобразите исходные и упрощенные сигналы.

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

  1. Загрузите многомерный сигнал путем ввода в подсказке MATLAB®:

    load ex4mwden  
    whos
    
    ИмяРазмерБайтыКласс
    covar4x4128double array
    x1024x432768double array
    x_orig1024x432768double array

    Данные, хранимые в матричном x, прибывают из двух тестовых сигналов, Блоков и HeavySine, и из их суммы и различия, к которому был добавлен многомерный Гауссов белый шум.

  2. Выполните простой многошкальный PCA.

    Многошкальные объединения PCA несосредоточенный PCA на приближениях и деталях в области вейвлета и итоговый PCA. На каждом уровне выбраны старшие значащие основные компоненты.

    Во-первых, установите параметры вейвлета:

    level= 5; 
    wname = 'sym4';
    

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

    npc = 'kais';
    

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

    [x_sim, qual, npc] = wmspca(x ,level, wname, npc); 
    
  3. Отобразите исходные и упрощенные сигналы:

    kp = 0; 
    for i = 1:4  
        subplot(4,2,kp+1), plot(x (:,i)); set(gca,'xtick',[]);
        axis tight; 
        title(['Original signal ',num2str(i)]) 
        subplot(4,2,kp+2), plot(x_sim(:,i)); set(gca,'xtick',[]);
        axis tight; 
        title(['Simplified signal ',num2str(i)]) 
        kp = kp + 2;
    end
    

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

    qual
    
    qual =  
    
       98.0545   93.2807   97.1172   98.8603
    
  4. Улучшите первый результат путем сохранения меньшего количества основных компонентов.

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

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

    npc  
    
    npc =   
         1     1     1     1     1     2     2
    

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

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

    npc(1:3) = zeros(1,3);
    
    npc  
    
    npc = 
    0     0     0     1     1     2     2
    

    Затем выполните многошкальный PCA снова:

    [x_sim, qual, npc] = wmspca(x, level, wname, npc); 
    
  5. Отобразите исходные и итоговые упрощенные сигналы:

    kp = 0; 
    for i = 1:4  
        subplot(4,2,kp+1), plot(x (:,i)); set(gca,'xtick',[]);
        axis tight; 
        title(['Original signal ',num2str(i)]); set(gca,'xtick',[]);
        axis tight;  
        subplot(4,2,kp+2), plot(x_sim(:,i)); set(gca,'xtick',[]);
        axis tight;  
        title(['Simplified signal ',num2str(i)]) 
        kp = kp + 2;
    end
    

Как показано результаты улучшены.

Многошкальный анализ основных компонентов Используя приложение Wavelet Analyzer

Этот раздел исследует многошкальный PCA использование приложения Wavelet Analyzer.

  1. Откройте приложение Wavelet Analyzer путем ввода waveletAnalyzer в командной строке.

  2. Нажмите Multiscale Princ. Аккомпанемент. Анализ, чтобы открыть инструмент Multiscale Principal Components Analysis в приложении.

  3. Загрузка данных.

    В подсказке команды MATLAB ввести

    load ex4mwden
    В Многошкальном Princ. Аккомпанемент. Инструмент Analysis, выберите File> Import from Workspace. Когда диалоговое окно Import from Workspace появится, выберите переменную x. Нажмите ОК, чтобы импортировать многомерный сигнал. Сигнал является матрицей, содержащей четыре столбца, где каждый столбец является сигналом, который будет упрощен.

    Эти сигналы являются шумными версиями от простых комбинаций двух исходных сигналов, Блоков и HeavySine и их суммы и различия, каждого с добавленным многомерным Гауссовым белым шумом.

  4. Выполните разложение вейвлета и diagonalize каждая содействующая матрица.

    Используйте значения по умолчанию для Вейвлета, Дополнительного Режима DWT и Уровня разложения, и затем нажмите Decompose и Diagonalize. Инструмент отображает приближение вейвлета и коэффициенты детали разложения каждого сигнала в исходном основании.

    Чтобы получить больше информации о новых основах, допускавших, выполняя PCA для каждой шкалы, нажмите More on Adapted Basis. Новая фигура отображает соответствующие собственные вектора и собственные значения для матрицы коэффициентов детали на уровне 1.

    Можно изменить уровень или выбрать более грубые приближения или восстановленную матрицу, чтобы исследовать различные основы. Когда вы закончите, нажмите Close.

  5. Выполните простой многошкальный PCA.

    Начальные значения для PCA приводят к сохранению всех компонентов. Выберите Kaiser из Обеспечить значения по умолчанию с помощью выпадающего списка и нажмите Apply.

    Результаты хороши с точки зрения сжатия.

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

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

    Для D1, D2 и D3, выбирают 0 как Nb. PC нев центре и нажимают Apply.

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

Импорт и экспорт из приложения Wavelet Analyzer

Инструмент Multiscale Principal Components Analysis позволяет вам сохранить упрощенные сигналы на диск. Тулбокс создает MAT-файл в текущей папке с именем по вашему выбору.

Избавить упрощенные сигналы от предыдущего раздела:

  1. Выберите File> Save Simplified Signals.

  2. Выберите Save Simplified Signals и Parameters. Диалоговое окно появляется, который позволяет вам задать папку и имя файла для хранения сигнала.

  3. Введите имя s_ex4mwden и нажмите ОК, чтобы сохранить данные.

  4. Загрузите переменные в свою рабочую область:

    load s_ex4mwden 
    whos
    
    ИмяРазмерБайтыКласс
    PCA_Params1x72628struct array
    x1024x432768double array

    Упрощенные сигналы находятся в матричном x. Параметры многошкального PCA доступны в PCA_Params:

    PCA_Params
    
    PCA_Params =  
    1x7 struct array with fields:
        pc
        variances
        npc
    

PCA_Params является массивом структур длины d+2 (здесь, максимальный уровень разложения d=5) таким образом, что PCA_Params(d).pc является матрицей основных компонентов. Столбцы хранятся в порядке убывания отклонений. PCA_Params(d).variances является вектором отклонений основного компонента, и PCA_Params(d).npc является вектором выбранных количеств сохраненных основных компонентов.

Для просмотра документации необходимо авторизоваться на сайте