exponenta event banner

Сгенерируйте код MATLAB для 1D подкошенного шумоподавления вейвлета и сжатия

Примечание

Инструмент Wavelet 1-D — Denoising больше не рекомендуется. Используйте Wavelet Signal Denoiser вместо этого.

Вейвлет 1D шумоподавление

Можно сгенерировать MATLAB® код, чтобы воспроизвести основанное на приложении 1D шумоподавление вейвлета в командной строке. Необходимо выполнить эту операцию в инструменте Wavelet 1-D - - Denoising. Вы должны первый denoise ваш сигнал, прежде чем можно будет включить операцию File > Generate Matlab Code (Denoising Process).

Сгенерированный код MATLAB не включает вычисление порогового использования thselect или wbmpen.

Деноиз Доплер Сигнэл

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

  2. Выберите Wavelet 1-D в Wavelet Analyzer.

  3. Загрузите шумный Доплеровский анализ в качестве примера. Выберите File > Example Analysis > Noisy Signals - Constant Noise Variance > with sym4 at level 5 - - -> Noisy Doppler.

    После выбора анализа появляется разложение вейвлета.

  4. Нажмите Denoise.

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

    В Select thresholding method выпадающее меню, выберите Fixed form threshold по умолчанию. Используйте опцию soft по умолчанию. Установите пороги уровнем можно следующим образом:

    • уровень 5 — 3.500

    • уровень 4 — 3.720

    • уровень 3 — 3.000

    • уровень 2 — 2.000

    • уровень 1 — 3.000

    Нажмите Denoise.

  6. Сгенерируйте код MATLAB путем выбора File > Generate Matlab Code (Denoising Process).

    Операция генерирует следующий код MATLAB.

    function sigDEN = func_denoise_dw1d(SIG)
    % FUNC_DENOISE_DW1-D Saved Denoising Process.
    %   SIG: vector of data
    %   -------------------
    %   sigDEN: vector of denoised data
    
    
    % Analysis parameters.
    %---------------------
    wname = 'sym4';
    level = 5;
    
    % Denoising parameters.
    %----------------------
    % meth = 'sqtwolog';
    % scal_or_alfa = one;
    sorh = 's';    % Specified soft or hard thresholding
    thrParams =  [...
        3.00000000 ; ...
        2.00000000 ; ...
        3.00000000 ; ...
        3.72000000 ; ...
        3.50000000   ...
        ];
    
    % Denoise using CMDDENOISE.
    %--------------------------
    sigDEN = cmddenoise(SIG,wname,level,sorh,NaN,thrParams);
  7. Сохраните func_denoise_dw1d.m в папке на пути поиска файлов MATLAB. Выполните следующий код.

    load noisdopp;
    SIG = noisdopp;
    % func_denoise_dw1d.m is generated code
    sigDEN = func_denoise_dw1d(SIG);
  8. Экспортируйте сигнал denoised из приложения путем выбора File > Save > Denoised Signal.

    Сохраните сигнал denoised как denoiseddoppler.mat в папке на пути поиска файлов MATLAB. Загрузите denoiseddoppler.mat в рабочем пространстве MATLAB. Сравните denoiseddoppler вашим результатом командной строки.

    load denoiseddoppler;
    plot(sigDEN,'k'); axis tight;
    hold on;
    plot(denoiseddoppler,'r');
    legend('Command Line','GUI','Location','SouthEast');

Зависимый интервала 1D шумоподавление вейвлета

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

  2. Выберите Wavelet 1-D.

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

    load leleccum;
    В инструменте Wavelet 1-D выберите File> Import from Workspace> Import Signal. Когда диалоговое окно Import from Workspace появится, выберите leleccum переменная. Нажмите ОК, чтобы импортировать данные.

  4. Выберите sym4 вейвлет и набор Level равняйтесь 3. Нажмите Analyze.

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

  1. Нажмите Denoise.

  2. Под Select thresholding method выберите Rigorous SURE.

  3. Выберите Int. dependent threshold settings.

  4. В инструменте Interval Dependent Threshold Settings for Wavelet 1-D выберите Generate Default Intervals. Создаются три интервала. Нажмите Propagate, чтобы распространить интервалы ко всем уровням.

  5. Нажмите Close и ответьте на Yes на Update Thresholds?.

  6. Выберите Denoise.

  7. Сгенерируйте код MATLAB путем выбора File > Generate Matlab Code (Denoising Process).

    Операция генерирует следующий код MATLAB.

    function sigDEN = func_denoise_dw1d(SIG)
    % FUNC_DENOISE_DW1D Saved Denoising Process.
    %   SIG: vector of data
    %   -------------------
    %   sigDEN: vector of denoised data
    
    
    % Analysis parameters.
    %---------------------
    wname = 'sym4';
    level = 3;
    
    % Denoising parameters.
    %----------------------
    % meth = 'rigrsure';
    % scal_or_alfa = one;
    sorh = 's';    % Specified soft or hard thresholding
    thrSettings =  {...
        [...
        1.000000000000000   2410.000000000000000      5.659608351110114; ...
        2410.000000000000000   3425.000000000000000   19.721391195242880; ...
        3425.000000000000000   4320.000000000000000    4.907947952868359; ...
        ]; ...
        [...
        1.000000000000000   2410.000000000000000      5.659608351110114; ...
        2410.000000000000000   3425.000000000000000   5.659608351110114; ...
        3425.000000000000000   4320.000000000000000   5.659608351110114; ...
        ]; ...
        [...
        1.000000000000000   2410.000000000000000      5.659608351110114; ...
        2410.000000000000000   3425.000000000000000   5.659608351110114; ...
        3425.000000000000000   4320.000000000000000   5.659608351110114; ...
        ]; ...
        };
    
    % Denoise using CMDDENOISE.
    %--------------------------
    sigDEN = cmddenoise(SIG,wname,level,sorh,NaN,thrSettings);

  8. Чтобы избежать беспорядка с кодом MATLAB, сгенерированным в Деноизе Доплере Сигнэле, измените функциональную линию определения. Измените функциональное определение:

    function sigDEN = func_IDdenoise_dw1d(SIG)
    Сохраните программу MATLAB как func_IDdenoise_dw1d.m в папке на пути поиска файлов MATLAB.

  9. Сохраните сигнал denoised как denoisedleleccum.mat с File > Save > Denoised Signal в папке на пути поиска файлов MATLAB.

Выполните следующий код.

load leleccum;
load denoisedleleccum;
sigDEN = func_IDdenoise_dw1d(leleccum);
plot(sigDEN,'k');
hold on;
plot(denoisedleleccum,'r');
legend('Command Line','GUI');
norm(sigDEN-denoisedleleccum,2)

Смотрите также

|

Похожие темы