Многомерное шумоподавление вейвлетов

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

Эта многомерная задача шумоподавления вейвлет- X касается моделей вида t (F) = t (e) + t (X), где p наблюдения F -мерна, является детерминированным сигналом, который будет восстановлен, и e является пространственно коррелированным сигналом шума. Этот вид модели хорошо подходит для ситуаций, для которых такой аддитивный, пространственно коррелированный шум реалистичен.

Многомерное шумоподавление вейвлет - командная строка

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

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

  • Отображение исходных и наблюдаемых сигналов.

  • Удалите шум с помощью простого многомерного порога после изменения базиса.

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

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

  • Отображение количества сохраненных основных компонентов.

  • Отобразите оцененную шумовую ковариационную матрицу.

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

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

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

  2. Отобразите исходные и наблюдаемые сигналы путем набора

    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(['Observed signal ',num2str(i)])
        kp = kp + 2; 
    end
    

    Истинная шумовая ковариационная матрица задается

    covar
    
    covar =
        1.0000    0.8000    0.6000    0.7000
        0.8000    1.0000    0.5000    0.6000
        0.6000    0.5000    1.0000    0.7000
        0.7000    0.6000    0.7000    1.0000
    
  3. Удалите шум путем простого многомерного порога.

    Стратегия шумоподавления комбинирует одномерное шумоподавление вейвлет в базисе, где предполагаемая шумовая ковариационная матрица диагональна с неконцентрированным анализом основного компонента (PCA) на приближениях в области вейвлет или с конечным PCA.

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

    level = 5; 
    wname = 'sym4'; 
    tptr  = 'sqtwolog'; 
    sorh  = 's';
    

    Затем установите параметры PCA путем сохранения всех основных компонентов:

    npc_app = 4; 
    npc_fin = 4;
    

    Наконец, выполните многомерное шумоподавление путем ввода

    x_den = wmulden(x, level, wname, npc_app, npc_fin, tptr, sorh);
    
  4. Отображение исходных и деноизированных сигналов путем ввода

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

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

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

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

    npc_app = 'kais'; 
    npc_fin = 'kais';
    

    Выполните многомерное шумоподавление снова путем ввода

    [x_den, npc, nestco] = wmulden(x, level, wname, npc_app, ...  
         npc_fin, tptr, sorh);
    
  6. Отображение количества сохраненных основных компонентов.

    Второй выходной аргумент приводит количество сохраненных основных компонентов для PCA для приближений и для окончательного PCA.

    npc
    
    npc = 
        2     2
    

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

  7. Отобразите оцененную шумовую ковариационную матрицу.

    Третий выходной аргумент содержит предполагаемую шумовую ковариационную матрицу:

    nestco
    
    nestco = 
        1.0784    0.8333    0.6878    0.8141
        0.8333    1.0025    0.5275    0.6814
        0.6878    0.5275    1.0501    0.7734
        0.8141    0.6814    0.7734    1.0967
    

    Как можно увидеть при сравнении с истинным матричным коваром, данным ранее, оценка удовлетворительна.

  8. Отобразите исходные и окончательные деноизированные сигналы путем ввода

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

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

Многомерное шумоподавление вейвлетов с помощью приложения Wavelet Analyzer

В этом разделе исследуется стратегия шумоподавления многомерных сигналов с помощью приложения Wavelet Analyzer.

  1. Запустите многомерное Шумоподавление Инструмента, предварительно откроя приложение Wavelet Analyzer. Type waveletAnalyzer в командной строке.

  2. Нажмите Multivarate Denoising, чтобы открыть фрагмент Multivarate Denoising приложения.

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

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

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

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

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

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

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

    Выберите Noise Adapted Basis, чтобы отобразить сигналы и их коэффициенты в noise-адаптированном базисе.

    Чтобы увидеть больше информации об этом новом базисе, нажмите Больше на Noise Adapted Basis. Новый рисунок отображает устойчивую матрицу ковариационной оценки шума и соответствующие собственные векторы и собственные значения.

    Собственные векторы определяют изменение базиса, а собственные значения являются отклонениями некоррелированных шумов в новом базисе.

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

  5. денуазировать многомерный сигнал.

    Для подстройки алгоритма шумоподавления доступен ряд опций. Однако мы будем использовать значения по умолчанию: фиксированную форму мягкого порога, масштабированную модель белого шума и предлагаемые количества сохраненных основных компонентов. В этом случае значения по умолчанию для PCA приводят к сохранению всех компонентов.

    Выберите «Исходное основание» для возврата к исходному базису и нажмите «Denoise».

    Результаты удовлетворительны. Оба первых сигнала правильно восстановлены, но их можно улучшить, получив больше информации о главных компонентах. На вкладке «Основные компоненты» выберите «Дополнительные».

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

Закройте окно Дополнительно на основных компонентах. Выберите 2 как Nb. PC для APP. Выберите 2 как Nb. PC для окончательного PCA, а затем нажмите denoise.

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

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

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

Чтобы сохранить сигнал, деноизированный в предыдущем разделе,

  1. Выберите файл > Save Denoised Signals.

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

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

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

    load s_ex4mwdent
    whos
    
    ИмяРазмерБайтыКласс
    DEN_Params1x1430struct array
    PCA_Params1x11536struct array
    x1024x432768struct array

Деноизированные сигналы указаны в матрице x. Параметры (PCA_Params и DEN_Params) двухэтапного процесса шумоподавления также доступны.

  • PCA_Params изменения базиса и параметров PCA:

    PCA_Params
    
    PCA_Params =  
        NEST: {[4x4 double]  [4x1 double]  [4x4 double]}
         APP: {[4x4 double]  [4x1 double]  [2]}
         FIN: {[4x4 double]  [4x1 double]  [2]}
    

PCA_Params.NEST{1} содержит изменение матрицы базиса. PCA_Params.NEST{2} содержит собственные значения и PCA_Params.NEST{3} - оцененная шумовая ковариационная матрица.

PCA_Params.APP{1} содержит изменение матрицы базиса, PCA_Params.APP{2} содержит собственные значения и PCA_Params.APP{3} количество сохраненных основных компонентов для приближений.

Та же структура используется для PCA_Params.FIN для окончательного PCA.

  • DEN_Params являются шумоподавлением в диагональном базисе:

    DEN_Params
    
    DEN_Params =   
         thrVAL: [4.8445 2.0024 1.1536 1.3957 0] 
        thrMETH: 'sqtwolog' 
        thrTYPE: 's'
    

Пороги закодированы в thrVAL. Для j от 1 на 5, thrVAL(j) содержит значение, используемое для порога коэффициентов детализации на уровне j. Метод порогового значения определяется thrMETH и режим порога задается thrTYPE.

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