exponenta event banner

Многомерный вейвлет-деноизинг

Цель этого примера состоит в том, чтобы показать особенности многомерного отрицания, представленные в 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. Эти сигналы являются шумными вариантами простых комбинаций двух исходных сигналов. Первый сигнал является «Blocks», который является нерегулярным, а второй - «Sine», который является регулярным, за исключением приблизительно времени 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), «Multivariate denoising using wavelets and principal component analysis», Computational Statistics & Data Analysis, 50, pp. 2381-2398.