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

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

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

Нажмите Denoise.
Исходные коэффициенты деталей появляются на левой стороне отображения. Для того, чтобы ко времени выравнивают уровни разложения через все шкалы, коэффициенты вейвлета реплицированы в каждую шкалу с учетом недостающих моментов времени. Поэтому, когда шкала становится более грубой, коэффициенты принимают подобный лестнице внешний вид.
В Select thresholding method выпадающее меню, выберите Fixed form threshold по умолчанию. Используйте опцию soft по умолчанию. Установите пороги уровнем можно следующим образом:
уровень 5 — 3.500
уровень 4 — 3.720
уровень 3 — 3.000
уровень 2 — 2.000
уровень 1 — 3.000

Нажмите Denoise.
Сгенерируйте код 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);Сохраните func_denoise_dw1d.m в папке на пути поиска файлов MATLAB. Выполните следующий код.
load noisdopp; SIG = noisdopp; % func_denoise_dw1d.m is generated code sigDEN = func_denoise_dw1d(SIG);
Экспортируйте сигнал 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');

Войти waveletAnalyzer в командной строке MATLAB.
Выберите Wavelet 1-D.
В командной строке MATLAB ввести
load leleccum;
leleccum переменная. Нажмите ОК, чтобы импортировать данные.Выберите sym4 вейвлет и набор Level равняйтесь 3. Нажмите Analyze.

Когда вы смотрите исходный сигнал и коэффициенты вейвлета самой прекрасной шкалы, вы видите, что шумовое отклонение не является постоянным. В этой ситуации зависимая интервалом пороговая обработка полезна. Реализовывать зависимое интервалом шумоподавление:
Нажмите Denoise.
Под Select thresholding method выберите Rigorous SURE.
Выберите Int. dependent threshold settings.
В инструменте Interval Dependent Threshold Settings for Wavelet 1-D выберите Generate Default Intervals. Создаются три интервала. Нажмите Propagate, чтобы распространить интервалы ко всем уровням.
Нажмите Close и ответьте на Yes на Update Thresholds?.
Выберите Denoise.
Сгенерируйте код 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);Чтобы избежать беспорядка с кодом MATLAB, сгенерированным в Деноизе Доплере Сигнэле, измените функциональную линию определения. Измените функциональное определение:
function sigDEN = func_IDdenoise_dw1d(SIG)
func_IDdenoise_dw1d.m в папке на пути поиска файлов MATLAB.Сохраните сигнал 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)

Wavelet Signal Denoiser | wdenoise