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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Multiscale PCA объединяет noncentered 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) количество сохраненных нецентрированных основных компонентов (ПК) для получения дополнительной информации на уровне d. Количество сохраненных нецентрированных ПК для приближений на уровне 5 npc(6), и npc(7) количество сохраненных ПК для окончательного 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. Comp. Analysis, чтобы открыть инструмент Multiscale Principal Components Analysis в приложении.

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

    В командной строке MATLAB введите

    load ex4mwden
    В инструменте Multiscale Princ. Comp. Analysis выберите File > Import from Workspace. Когда появится диалоговое окно Импорт из рабочей области (Import from Workspace), выберите x переменная. Нажмите OK, чтобы импортировать многомерный сигнал. Сигнал является матрицей, содержащей четыре столбца, где каждый столбец является сигналом, который будет упрощен.

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

  4. Выполните вейвлет и диагонализируйте каждую матрицу коэффициентов.

    Используйте значения по умолчанию для вейвлет, DWT Extension Mode и Descomposion Level, а затем нажмите Descompose and Diagonalize. Инструмент отображает вейвлет приближения и коэффициенты детализации разложения каждого сигнала в исходном базисе.

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

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

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

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

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

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

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

    Для D1, D2 и D3 выберите 0 как Nb. нецентрированного ПК и нажмите Применить.

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

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

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

Для сохранения упрощенных сигналов из предыдущего раздела:

  1. Выберите «Файл» > «Сохранить упрощенные сигналы».

  2. Выберите «Сохранить упрощенные сигналы и параметры». Появляется диалоговое окно, которое позволяет вам задать папку и имя файла для хранения сигнала.

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

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

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

    Упрощенные сигналы указаны в матрице x. Параметры multiscale 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 - вектор выбранных чисел сохраненных главных компонентов.