⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dwt.texi

📁 This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY without ev
💻 TEXI
📖 第 1 页 / 共 2 页
字号:
where @var{j} is the index of the level @c{$j = 0 \dots J-1$}@math{j = 0 ... J-1}and@var{k} is the index of the coefficient within each level,@c{$k = 0 \dots 2^j - 1$}@math{k = 0 ... (2^j)-1}.  The total number of levels is @math{J = \log_2(n)}.  The output datahas the following form,@tex\beforedisplay$$(s_{-1,0}, d_{0,0}, d_{1,0}, d_{1,1}, d_{2,0},\cdots, d_{j,k},\cdots, d_{J-1,2^{J-1} - 1}) $$\afterdisplay@end tex@ifinfo@example(s_@{-1,0@}, d_@{0,0@}, d_@{1,0@}, d_@{1,1@}, d_@{2,0@}, ...,   d_@{j,k@}, ..., d_@{J-1,2^@{J-1@}-1@}) @end example@end ifinfo@noindentwhere the first element is the smoothing coefficient @c{$s_{-1,0}$}@math{s_@{-1,0@}}, followed by the detail coefficients @c{$d_{j,k}$}@math{d_@{j,k@}} for each level@math{j}.  The backward transform inverts these coefficients to obtain the original data.These functions return a status of @code{GSL_SUCCESS} upon successfulcompletion.  @code{GSL_EINVAL} is returned if @var{n} is not an integerpower of 2 or if insufficient workspace is provided.@end deftypefun@node DWT in two dimension@subsection Wavelet transforms in two dimension@cindex DWT, two dimensionalThe library provides functions to perform two-dimensional discretewavelet transforms on square matrices.  The matrix dimensions must be aninteger power of two.  There are two possible orderings of the rows andcolumns in the two-dimensional wavelet transform, referred to as the``standard'' and ``non-standard'' forms.The ``standard'' transform performs a complete discrete wavelettransform on the rows of the matrix, followed by a separate completediscrete wavelet transform on the columns of the resultingrow-transformed matrix.  This procedure uses the same ordering as atwo-dimensional fourier transform.The ``non-standard'' transform is performed in interleaved passes on therows and columns of the matrix for each level of the transform.  Thefirst level of the transform is applied to the matrix rows, and then tothe matrix columns.  This procedure is then repeated across the rows andcolumns of the data for the subsequent levels of the transform, untilthe full discrete wavelet transform is complete.  The non-standard formof the discrete wavelet transform is typically used in image analysis.The functions described in this section are declared in the header file@file{gsl_wavelet2d.h}.@deftypefun {int} gsl_wavelet2d_transform (const gsl_wavelet * @var{w}, double * @var{data}, size_t @var{tda}, size_t @var{size1}, size_t @var{size2}, gsl_wavelet_direction @var{dir}, gsl_wavelet_workspace * @var{work})@deftypefunx {int} gsl_wavelet2d_transform_forward (const gsl_wavelet * @var{w}, double * @var{data}, size_t @var{tda}, size_t @var{size1}, size_t @var{size2}, gsl_wavelet_workspace * @var{work})@deftypefunx {int} gsl_wavelet2d_transform_inverse (const gsl_wavelet * @var{w}, double * @var{data}, size_t @var{tda}, size_t @var{size1}, size_t @var{size2}, gsl_wavelet_workspace * @var{work})These functions compute two-dimensional in-place forward and inversediscrete wavelet transforms in standard and non-standard forms on thearray @var{data} stored in row-major form with dimensions @var{size1}and @var{size2} and physical row length @var{tda}.  The dimensions mustbe equal (square matrix) and are restricted to powers of two.  For the@code{transform} version of the function the argument @var{dir} can beeither @code{forward} (@math{+1}) or @code{backward} (@math{-1}).  Aworkspace @var{work} of the appropriate size must be provided.  On exit,the appropriate elements of the array @var{data} are replaced by theirtwo-dimensional wavelet transform.The functions return a status of @code{GSL_SUCCESS} upon successfulcompletion.  @code{GSL_EINVAL} is returned if @var{size1} and@var{size2} are not equal and integer powers of 2, or if insufficientworkspace is provided.@end deftypefun@deftypefun {int} gsl_wavelet2d_transform_matrix (const gsl_wavelet * @var{w}, gsl_matrix * @var{m}, gsl_wavelet_direction @var{dir}, gsl_wavelet_workspace * @var{work})@deftypefunx {int} gsl_wavelet2d_transform_matrix_forward (const gsl_wavelet * @var{w}, gsl_matrix * @var{m}, gsl_wavelet_workspace * @var{work})@deftypefunx {int} gsl_wavelet2d_transform_matrix_inverse (const gsl_wavelet * @var{w}, gsl_matrix * @var{m}, gsl_wavelet_workspace * @var{work})These functions compute the two-dimensional in-place wavelet transformon a matrix @var{a}.@end deftypefun@deftypefun {int} gsl_wavelet2d_nstransform (const gsl_wavelet * @var{w}, double * @var{data}, size_t @var{tda}, size_t @var{size1}, size_t @var{size2}, gsl_wavelet_direction @var{dir}, gsl_wavelet_workspace * @var{work})@deftypefunx {int} gsl_wavelet2d_nstransform_forward (const gsl_wavelet * @var{w}, double * @var{data}, size_t @var{tda}, size_t @var{size1}, size_t @var{size2}, gsl_wavelet_workspace * @var{work})@deftypefunx {int} gsl_wavelet2d_nstransform_inverse (const gsl_wavelet * @var{w}, double * @var{data}, size_t @var{tda}, size_t @var{size1}, size_t @var{size2}, gsl_wavelet_workspace * @var{work})These functions compute the two-dimensional wavelet transform innon-standard form.@end deftypefun@deftypefun {int} gsl_wavelet2d_nstransform_matrix (const gsl_wavelet * @var{w}, gsl_matrix * @var{m}, gsl_wavelet_direction @var{dir}, gsl_wavelet_workspace * @var{work})@deftypefunx {int} gsl_wavelet2d_nstransform_matrix_forward (const gsl_wavelet * @var{w}, gsl_matrix * @var{m}, gsl_wavelet_workspace * @var{work})@deftypefunx {int} gsl_wavelet2d_nstransform_matrix_inverse (const gsl_wavelet * @var{w}, gsl_matrix * @var{m}, gsl_wavelet_workspace * @var{work})These functions compute the non-standard form of the two-dimensionalin-place wavelet transform on a matrix @var{a}.@end deftypefun@node DWT Examples@section ExamplesThe following program demonstrates the use of the one-dimensionalwavelet transform functions.  It computes an approximation to an inputsignal (of length 256) using the 20 largest components of the wavelettransform, while setting the others to zero.@example@verbatiminclude examples/dwt.c@end example@noindentThe output can be used with the @sc{gnu} plotutils @code{graph} program,@example$ ./a.out ecg.dat > dwt.dat$ graph -T ps -x 0 256 32 -h 0.3 -a dwt.dat > dwt.ps@end example@iftexThe graphs below show an original and compressed version of a sample ECGrecording from the MIT-BIH Arrhythmia Database, part of the PhysioNetarchive of public-domain of medical datasets.@sp 1@center @image{dwt-orig,3.4in} @center @image{dwt-samp,3.4in} @quotationOriginal (upper) and wavelet-compressed (lower) ECG signals, using the20 largest components of the Daubechies(4) discrete wavelet transform.@end quotation@end iftex@node DWT References@section References and Further ReadingThe mathematical background to wavelet transforms is covered in theoriginal lectures by Daubechies,@itemize @asis@itemIngrid Daubechies.Ten Lectures on Wavelets.@cite{CBMS-NSF Regional Conference Series in Applied Mathematics} (1992), SIAM, ISBN 0898712742.@end itemize@noindentAn easy to read introduction to the subject with an emphasis on theapplication of the wavelet transform in various branches of science is,@itemize @asis@itemPaul S. Addison. @cite{The Illustrated Wavelet Transform Handbook}.Institute of Physics Publishing (2002), ISBN 0750306920.@end itemize@noindentFor extensive coverage of signal analysis by wavelets, wavelet packetsand local cosine bases see,@itemize @asis@itemS. G. Mallat.  @cite{A wavelet tour of signal processing} (Secondedition). Academic Press (1999), ISBN 012466606X.@end itemize@noindentThe concept of multiresolution analysis underlying the wavelet transformis described in,@itemize @asis@itemS. G. Mallat.Multiresolution Approximations and Wavelet Orthonormal Bases of L@math{^2}(R).@cite{Transactions of the American Mathematical Society}, 315(1), 1989, 69--87.@end itemize@itemize @asis@itemS. G. Mallat.A Theory for Multiresolution Signal Decomposition---The Wavelet Representation.@cite{IEEE Transactions on Pattern Analysis and Machine Intelligence}, 11, 1989,674--693. @end itemize@noindentThe coefficients for the individual wavelet families implemented by thelibrary can be found in the following papers,@itemize @asis@itemI. Daubechies.Orthonormal Bases of Compactly Supported Wavelets.@cite{Communications on Pure and Applied Mathematics}, 41 (1988) 909--996.@end itemize@itemize @asis@itemA. Cohen, I. Daubechies, and J.-C. Feauveau.Biorthogonal Bases of Compactly Supported Wavelets.@cite{Communications on Pure and Applied Mathematics}, 45 (1992)485--560.@end itemize@noindentThe PhysioNet archive of physiological datasets can be found online at@uref{http://www.physionet.org/} and is described in the followingpaper,@itemize @asis@itemGoldberger et al.  PhysioBank, PhysioToolkit, and PhysioNet: Componentsof a New Research Resource for Complex PhysiologicSignals. @cite{Circulation} 101(23):e215-e220 2000.@end itemize

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -