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

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

Многомерные проблемы шумоподавления вейвлетов имеют дело с моделями вида

X(t)=F(t)+e(t)

где наблюдение X является p-мерным, F является детерминированным сигналом, который должен быть восстановлен, и e является пространственно-коррелированным шумовым сигналом. Этот пример использует несколько шумовых сигналов и выполняет следующие шаги, чтобы деноизировать детерминированный сигнал.

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

Чтобы загрузить многомерный сигнал, введите следующий код в приглашение MATLAB ®:

 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.

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

Чтобы отобразить исходные и наблюдаемые сигналы, введите:

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

Figure contains 8 axes. Axes 1 with title Original signal 1 contains an object of type line. Axes 2 with title Observed signal 1 contains an object of type line. Axes 3 with title Original signal 2 contains an object of type line. Axes 4 with title Observed signal 2 contains an object of type line. Axes 5 with title Original signal 3 contains an object of type line. Axes 6 with title Observed signal 3 contains an object of type line. Axes 7 with title Original signal 4 contains an object of type line. Axes 8 with title Observed signal 4 contains an object of type line.

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

covar
covar = 4×4

    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

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

Стратегия шумоподавления комбинирует одномерное шумоподавление вейвлет в базисе, где предполагаемая шумовая ковариационная матрица является диагональной с неконцентрированным анализом основного компонента (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);

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

Для отображения исходных и деноизированных сигналов введите следующее:

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

Figure contains 12 axes. Axes 1 with title Original signal 1 contains an object of type line. Axes 2 with title Observed signal 1 contains an object of type line. Axes 3 with title Denoised signal 1 contains an object of type line. Axes 4 with title Original signal 2 contains an object of type line. Axes 5 with title Observed signal 2 contains an object of type line. Axes 6 with title Denoised signal 2 contains an object of type line. Axes 7 with title Original signal 3 contains an object of type line. Axes 8 with title Observed signal 3 contains an object of type line. Axes 9 with title Denoised signal 3 contains an object of type line. Axes 10 with title Original signal 4 contains an object of type line. Axes 11 with title Observed signal 4 contains an object of type line. Axes 12 with title Denoised signal 4 contains an object of type line.

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

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

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

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

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

[x_den, npc, nestco] = wmulden(x, level, wname, npc_app, ...
     npc_fin, tptr, sorh);

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

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

npc
npc = 1×2

     2     2

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

Отображение предполагаемой ковариационной матрицы шума

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

nestco
nestco = 4×4

    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

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

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

Чтобы отобразить тип исходных и конечных деноизированных сигналов:

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

Figure contains 12 axes. Axes 1 with title Original signal 1 contains an object of type line. Axes 2 with title Observed signal 1 contains an object of type line. Axes 3 with title Denoised signal 1 contains an object of type line. Axes 4 with title Original signal 2 contains an object of type line. Axes 5 with title Observed signal 2 contains an object of type line. Axes 6 with title Denoised signal 2 contains an object of type line. Axes 7 with title Original signal 3 contains an object of type line. Axes 8 with title Observed signal 3 contains an object of type line. Axes 9 with title Denoised signal 3 contains an object of type line. Axes 10 with title Original signal 4 contains an object of type line. Axes 11 with title Observed signal 4 contains an object of type line. Axes 12 with title Denoised signal 4 contains an object of type line.

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

Изучение дополнительной информации о многомерном шумоподавлении

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

М. Амингхафари, Н. Чезе и Дж-М. Poggi (2006), «Многомерное шумоподавление с использованием вейвлетов и анализа основных компонентов», Computational Statistics & Data Analysis, 50, pp. 2381-2398.