资源简介
这是一个经本人改进并详细说明的小波变换,简单明了。
代码片段和文件信息
function [ewtmfbboundaries]=EWT1D(valfparams)
% =========================================================================
% function [ewtmfbboundaries]=EWT1D(fparams)
%
% Perform the Empirical Wavelet Transform of f over Nscale scales. See
% also the documentation of EWT_Boundaries_Detect for more details about
% the available methods and their parameters.
%
% Inputs:
% -f: the input signal
% -params: structure containing the following parameters:
% -params.log: 0 or 1 to indicate if we want to work with
% the log spectrum
% -params.preproc: ‘none‘‘plaw‘‘poly‘‘morpho‘tophat‘
% -params.method: ‘locmax‘‘locmaxmin‘‘locmaxminf‘‘adaptive‘
% ‘adaptivereg‘‘scalespace‘
% -params.reg: ‘none‘‘gaussian‘‘average‘‘closing‘
% -params.lengthFilter: width of the above filters
% -params.sigmaFilter: standard deviation of the above Gaussian
% filter
% -params.N: maximum number of supports
% -params.degree: degree of the polynomial (needed for the
% polynomial approximation preprocessing)
% -params.completion: 0 or 1 to indicate if we try to complete
% or not the number of modes if the detection
% find a lower number of mode than params.N
% -params.InitBounds: vector of initial bounds (in index domain)
% needed for the adaptive and adaptivereg methods
% -params.typeDetect: (for scalespace method only) ‘otsu‘
% ‘halfnormal‘‘empiricallaw‘‘mean‘‘kmeans‘
%
% Outputs:
% -ewt: cell containing first the low frequency component and
% then the successives frequency subbands
% -mfb: cell containing the filter bank (in the Fourier domain)
% -boundaries: vector containing the set of boundaries corresponding
% to the Fourier line segmentation (normalized between
% 0 and Pi)
%
% Author: Jerome Gilles
% Institution: UCLA - Department of Mathematics
% Year: 2013
% Version: 2.0
% =========================================================================
%% Boundary detection
% We compute the Fourier transform of f
[lenwidth]=size(val);
ff=zeros(len1);
for i=1:width;
ff=ff+abs(fft(val(:i)));
end;
ff=ff./width;
% We extract the boundaries of Fourier segments
boundaries = EWT_Boundaries_Detect(abs(ff(1:round(length(ff)/2)))params);
boundaries = boundaries*pi/round(length(ff)/2);
%% Filtering
% We extend the signal by miroring to deal with the boundaries
l=round(length(f)/2);
f=[f(l-1:-1:1);f;f(end:-1:end-l+1)];
ff=fft(f);
% We build the corresponding filter bank
mfb=EWT_Meyer_FilterBank(boundarieslength(ff));
% We filter the signal to extract each subband
ewt=cell(length(mfb)1);
for k=1:length(mfb)
ewt{k}=real(ifft(conj(mfb{k}).*ff));
ewt{k}=ewt{k}(l:end-l);
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 162 2016-12-01 01:53 EWT_beta.m
文件 835 2016-12-01 01:53 EWT_Boundaries_Completion.m
文件 4904 2016-12-01 01:53 EWT_Boundaries_Detect.m
文件 1474 2016-12-01 01:53 EWT_Meyer_FilterBank.m
文件 920 2016-12-01 01:53 EWT_Meyer_Scaling.m
文件 1325 2016-12-01 01:53 EWT_Meyer_Wavelet.m
文件 2997 2018-03-30 20:13 EWT1D.m
文件 1223 2016-12-01 01:53 LocalMax.m
文件 770 2018-03-28 23:16 my_test.m
文件 712 2016-12-01 01:53 Powerlaw_Estimator.m
文件 3982 2016-12-01 01:53 RemoveTrend.m
文件 1422 2016-12-01 01:53 SpectrumRegularize.m
评论
共有 条评论