Можно сгенерировать MATLAB® код, чтобы воспроизвести основанное на приложении 1D пакетное шумоподавление вейвлета в командной строке. Необходимо выполнить эту операцию в инструменте Wavelet Packet 1-D - - Denoising. Вы должны первый denoise ваш сигнал, прежде чем можно будет включить операцию File > Generate Matlab Code (Denoising Process).
Войти waveletAnalyzer
в командной строке MATLAB.
Выберите Wavelet Packet 1-D.
В командной строке MATLAB ввести
load noisbump
noisbump
переменная. Нажмите ОК, чтобы импортировать данные.Выберите db4
вейвлет и набор Level к 4
. Примите значение по умолчанию Shannon
для Entropy.
Нажмите Analyze.
Нажмите Denoise.
Под Select thresholding method примите Fixed form thr. (unscaled wn)
по умолчанию с включенным переключателем soft.
Установите Select Global Threshold на 2,75.
Нажмите Denoise.
Выберите File > Generate Matlab Code (Denoising Process)
Операция генерирует следующий код MATLAB.
function [sigDEN,wptDEN] = func_denoise_wp1d(SIG) % FUNC_DENOISE_WP1D Saved Denoising Process. % SIG: vector of data % ------------------- % sigDEN: vector of denoised data % wptDEN: wavelet packet decomposition (wptree object) % Analysis parameters. %--------------------- Wav_Nam = 'db4'; Lev_Anal = 4; Ent_Nam = 'shannon'; Ent_Par = 0; % Denoising parameters. %---------------------- % meth = 'sqtwologuwn'; sorh = 's'; % Specified soft or hard thresholding thrSettings = {sorh,'nobest',2.750000000000000,1}; % Decompose using WPDEC. %---------------------- wpt = wpdec(SIG,Lev_Anal,Wav_Nam,Ent_Nam,Ent_Par); % Nodes to merge. %----------------- n2m = []; for j = 1:length(n2m) wpt = wpjoin(wpt,n2m(j)); end % Denoise using WPDENCMP. %------------------------ [sigDEN,wptDEN] = wpdencmp(wpt,thrSettings{:});
Сохраните func_denoise_wp1d.m
в папке на пути поиска файлов MATLAB.
Избавьте сигнал denoised от инструмента Wavelet Packet 1-D - - Denoising как wp_denoisedbump.mat
в папке на пути поиска файлов MATLAB.
Выполните следующий код.
load noisbump; [sigDEN,wptDEN] = func_denoise_wp1d(noisbump); load wp_denoisedbump; plot(sigDEN); title('Denoised Signal'); axis([1 1024 min(sigDEN)-1 max(sigDEN+1)]); norm(sigDEN-wp_denoisedbump,2)