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

📄 dwt.texi

📁 GNU Scientific Library,C语言开发的数值方面的函数库
💻 TEXI
📖 第 1 页 / 共 2 页
字号:
@cindex Wavelets@cindex Discrete wavelet transforms, see Wavelets@cindex DWT, see Wavelets@cindex Wavelet transforms, discrete, see Wavelets@cindex transforms, Wavelet, see WaveletsThis chapter describes functions for performing Discrete WaveletTransforms (DWTs).  The library includes wavelets for real data in bothone and two dimensions.  The wavelet functions are declared in the headerfiles @file{gsl_wavelet.h} and @file{gsl_wavelet2d.h}.@menu* DWT Definitions::             * DWT Initialization::          * DWT Transform Functions::     * DWT Examples::                * DWT References::              @end menu@node DWT Definitions@section Definitions@cindex DWT, mathematical definitionThe continuous wavelet transform and its inverse are defined bythe relations,@tex\beforedisplay$$w(s, \tau) = \int_{-\infty}^\infty f(t) * \psi^*_{s,\tau}(t) dt$$\afterdisplay@end tex@ifinfo@examplew(s,\tau) = \int f(t) * \psi^*_@{s,\tau@}(t) dt@end example@end ifinfo@noindentand,@tex\beforedisplay$$f(t) = \int_0^\infty ds \int_{-\infty}^\infty w(s, \tau) * \psi_{s,\tau}(t) d\tau$$\afterdisplay@end tex@ifinfo@examplef(t) = \int \int_@{-\infty@}^\infty w(s, \tau) * \psi_@{s,\tau@}(t) d\tau ds@end example@end ifinfo@noindentwhere the basis functions @c{$\psi_{s,\tau}$}@math{\psi_@{s,\tau@}} are obtained by scalingand translation from a single function, referred to as the @dfn{motherwavelet}.The discrete version of the wavelet transform acts on evenly sampleddata, with fixed scaling and translation steps (@math{s}, @math{\tau}).The frequency and time axes are sampled @dfn{dyadically} on scales of@math{2^j} through a level parameter @math{j}.  @c  The wavelet @math{\psi}@c  can be expressed in terms of a scaling function @math{\varphi},@c@c  @tex@c  \beforedisplay@c  $$@c  \psi(2^{j-1},t) = \sum_{k=0}^{2^j-1} g_j(k) * \bar{\varphi}(2^j t-k)@c  $$@c  \afterdisplay@c  @end tex@c  @ifinfo@c  @example@c  \psi(2^@{j-1@},t) = \sum_@{k=0@}^@{2^j-1@} g_j(k) * \bar@{\varphi@}(2^j t-k)@c  @end example@c  @end ifinfo@c  @noindent@c  and@c@c  @tex@c  \beforedisplay@c  $$@c  \varphi(2^{j-1},t) = \sum_{k=0}^{2^j-1} h_j(k) * \bar{\varphi}(2^j t-k)@c  $$@c  \afterdisplay@c  @end tex@c  @ifinfo@c  @example@c  \varphi(2^@{j-1@},t) = \sum_@{k=0@}^@{2^j-1@} h_j(k) * \bar@{\varphi@}(2^j t-k)@c  @end example@c  @end ifinfo@c  @noindent@c  The functions @math{\psi} and @math{\varphi} are related through the@c  coefficients@c  @c{$g_{n} = (-1)^n h_{L-1-n}$}@c  @math{g_@{n@} = (-1)^n h_@{L-1-n@}}@c  for @c{$n=0 \dots L-1$}@c  @math{n=0 ... L-1},@c  where @math{L} is the total number of coefficients.  The two sets of@c  coefficients @math{h_j} and @math{g_i} define the scaling function and@c the wavelet.  The resulting family of functions @c{$\{\psi_{j,n}\}$}@math{@{\psi_@{j,n@}@}}constitutes an orthonormalbasis for square-integrable signals.  The discrete wavelet transform is an @math{O(N)} algorithm, and is alsoreferred to as the @dfn{fast wavelet transform}.@node DWT Initialization@section Initialization@cindex DWT initializationThe @code{gsl_wavelet} structure contains the filter coefficientsdefining the wavelet and associated offset parameters (for wavelets withcentered support).  @deftypefun {gsl_wavelet *} gsl_wavelet_alloc (const gsl_wavelet_type * @var{T}, size_t @var{k})This function allocates and initializes a wavelet object of type@var{T}.  The parameter @var{k} selects the specific member of thewavelet family.  A null pointer is returned if insufficient memory isavailable or if a unsupported member is selected.@end deftypefunThe following wavelet types are implemented:@deffn {Wavelet} gsl_wavelet_daubechies@deffnx {Wavelet} gsl_wavelet_daubechies_centered@cindex Daubechies wavelets@cindex maximal phase, Daubechies waveletsThe is the Daubechies wavelet family of maximum phase with @math{k/2}vanishing moments.  The implemented wavelets are @c{$k=4, 6, \dots, 20$}@math{k=4, 6, ..., 20}, with @var{k} even.@end deffn@deffn {Wavelet} gsl_wavelet_haar@deffnx {Wavelet} gsl_wavelet_haar_centered@cindex Haar waveletsThis is the Haar wavelet.  The only valid choice of @math{k} for theHaar wavelet is @math{k=2}.@end deffn@deffn {Wavelet} gsl_wavelet_bspline@deffnx {Wavelet} gsl_wavelet_bspline_centered@cindex biorthogonal wavelets@cindex B-spline waveletsThis is the biorthogonal B-spline wavelet family of order @math{(i,j)}.  The implemented values of @math{k = 100*i + j} are 103, 105, 202, 204,206, 208, 301, 303, 305 307, 309.@end deffn@noindentThe centered forms of the wavelets align the coefficients of the varioussub-bands on edges.  Thus the resulting visualization of thecoefficients of the wavelet transform in the phase plane is easier tounderstand.@deftypefun {const char *} gsl_wavelet_name (const gsl_wavelet * @var{w})This function returns a pointer to the name of the wavelet family for@var{w}.@end deftypefun@c  @deftypefun {void} gsl_wavelet_print (const gsl_wavelet * @var{w})@c  This function prints the filter coefficients (@code{**h1}, @code{**g1}, @code{**h2}, @code{**g2}) of the wavelet object @var{w}.@c  @end deftypefun@deftypefun {void} gsl_wavelet_free (gsl_wavelet * @var{w})This function frees the wavelet object @var{w}.@end deftypefunThe @code{gsl_wavelet_workspace} structure contains scratch space of thesame size as the input data, for holding intermediate results during thetransform.@deftypefun {gsl_wavelet_workspace *} gsl_wavelet_workspace_alloc (size_t @var{n})This function allocates a workspace for the discrete wavelet transform.To perform a one-dimensional transform on @var{n} elements, a workspaceof size @var{n} must be provided.  For two-dimensional transforms of@var{n}-by-@var{n} matrices it is sufficient to allocate a workspace ofsize @var{n}, since the transform operates on individual rows andcolumns.@end deftypefun@deftypefun {void} gsl_wavelet_workspace_free (gsl_wavelet_workspace * @var{workspace})This function frees the allocated workspace @var{workspace}.@end deftypefun@node DWT Transform Functions@section Transform FunctionsThis sections describes the actual functions performing the discretewavelet transform.  Note that the transforms use periodic boundaryconditions.  If the signal is not periodic in the sample length thenspurious coefficients will appear at the beginning and end of each levelof the transform.@menu* DWT in one dimension::        * DWT in two dimension::        @end menu@node DWT in one dimension@subsection Wavelet transforms in one dimension@cindex DWT, one dimensional@deftypefun int gsl_dwt_transform (const gsl_wavelet * @var{w}, double * @var{data}, size_t @var{stride}, size_t @var{n}, gsl_wavelet_direction @var{dir}, gsl_wavelet_workspace * @var{work})@deftypefunx int gsl_dwt_transform_forward (const gsl_wavelet * @var{w}, double * @var{data}, size_t @var{stride}, size_t @var{n}, gsl_wavelet_workspace * @var{work})@deftypefunx int gsl_dwt_transform_inverse (const gsl_wavelet * @var{w}, double * @var{data}, size_t @var{stride}, size_t @var{n}, gsl_wavelet_workspace * @var{work})These functions compute in-place forward and inverse discrete wavelettransforms of length @var{n} with stride @var{stride} on the array@var{data}. The length of the transform @var{n} is restricted to powersof two.  For the @code{transform} version of the function the argument@var{dir} can be either @code{forward} (@math{+1}) or @code{backward}(@math{-1}).  A workspace @var{work} of length @var{n} must be provided.For the forward transform, the elements of the original array are replaced by the discrete wavelet

⌨️ 快捷键说明

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