Wavelet Transforms
CENG 5931 GNU RADIO
INSTRUCTOR: Dr GEORGE COLLINS
Contents
 Introduction
 Wavelet Transforms
 wavelet Vs Fourier Transforms
 GNU Scientific Library
 Wavelet transform usage in GNU RADIO
 Functions of wavelet transforms
 Applications
 Conclusion
Introduction
 GNU RADIO:
Free software development toolkit that provides the signal processing
runtime and processing blocks to implement software radios.
 Used in hobbyist, academic and commercial environments to support
wireless communications research.
 Applications are written using Python.
 Signal processing path is implemented in C++ using processor floating
point extensions.
Wavelet Transforms
 The wavelet transform is a mathematical tool that decomposes a signal into
a representation that shows signal details and trends as a function of time.
 Basis functions of the wavelet transform are small waves located in
different times
 Wavelet Transforms is localized in both time and frequency
Types of Wavelet Transforms
•
•
•
•
•
Continuous wavelet transform (CWT)
Discrete wavelet transform (DWT)
Fast wavelet transform (FWT)
Wavelet packets
Complex wavelet transform
wavelet Vs Fourier transforms
• If a signal has a discontinuity, FT produces many coefficients
with large magnitude (significant coefficients)
• But WT generates a few significant coefficients around the
discontinuity
• Nonlinear approximation is a method to benchmark the
approximation power of a transform
• In nonlinear approximation we keep only a few significant
coefficients of a signal and set the rest to zero
wavelet Vs Fourier transforms (cntd..)
• Then we reconstruct the signal using the significant
coefficients
• WT produces a few significant coefficients for the signals with
discontinuities
• Thus, we obtain better results for WT nonlinear approximation
when compared with the FT
• WT has better capability for representing speech and natural
signals when compared with the FT
GNU Scientific Library

The GNU Scientific Library (GSL) is a collection of routines for
numerical computing. The routines have been written from scratch in C,
and present a modern Applications Programming Interface (API) for C
programmers, allowing wrappers to be written for very high level
languages. The source code is distributed under the GNU General Public
License.
 Provides a wide range of mathematical routines such as random number
generators, special functions and least- squares fitting
Blocks
C++ Signal Processing Blocks:



















Top Block and Hierarchical Block Base Classes
Signal Sources
Signal Sinks
Filters
Mathematics
Signal Modulation
Signal Demodulation
Information Coding and Decoding
Synchronization
Type Conversions
Signal Level Control (AGC)
Fourier Transform
Wavelet Transform
OFDM Blocks
Pager Blocks
Miscellaneous Blocks
Slicing and Dicing Streams
Voice Encoders and Decoders
Base classes for GR Blocks
Collaboration diagram
Wavelet transform usage in GNU RADIO
Collaboration diagram for Wavelet Transform:
Classes Used in Wavelet Transforms are
1. gr_wavelet_ff
compute wavelet transform using gsl routines
Inheritance diagram
Classes Used in Wavelet Transforms are(cntd..)
2. gr_wvps_ff
computes the Wavelet Power Spectrum from a set of wavelet
coefficients
Inheritance diagram
Functions in one dimension
The functions used in one dimension wavelet transforms are
Function:
int gsl_dwt_transform (const gsl_wavelet * w,
double * data,
size_t stride,
size_t n,
gsl_wavelet_direction dir,
gsl_wavelet_workspace * work)
The length of the transform n is restricted to powers of two. For
the transform version of the function the argument dir can be
either forward (+1) or backward (-1). A workspace work of length n must
be provided.
Functions in one dimension
Function:
int gsl_dwt_transform_forward (const gsl_wavelet * w,
double * data, size_t stride, size_t n, gsl_wavelet_workspace
* work)
Function:
int gsl_dwt_transform_inverse (const gsl_wavelet * w,
double * data, size_t stride, size_t n, gsl_wavelet_workspace
* work)
Functions in two dimensions
Function:
int gsl_wavelet2d_transform (const gsl_wavelet * w,
double * data,
size_t tda,
size_t size1,
size_t size2,
gsl_wavelet_direction dir,
gsl_wavelet_workspace * work)
This functions compute in standard forms on the array data stored in rowmajor form with dimensions size1 and size2and physical row length tda.
The dimensions must be equal (square matrix) and are restricted to powers
of two.
Functions in two dimensions
Function:
int gsl_wavelet2d_transform_forward (const gsl_wavelet * w, double
* data, size_t tda, size_t size1, size_t size2, gsl_wavelet_workspace
* work)
Function:
int gsl_wavelet2d_transform_inverse (const gsl_wavelet * w, double
* data, size_t tda, size_t size1, size_t size2, gsl_wavelet_workspace
* work)
Two dimensional wavelet in non standrad form
Function:
int gsl_wavelet2d_nstransform (const gsl_wavelet * w, double * data,
size_t tda, size_t size1, size_t size2, gsl_wavelet_direction dir,
gsl_wavelet_workspace * work)
Function:
int gsl_wavelet2d_nstransform_forward (const gsl_wavelet * w, double
* data, size_t tda, size_t size1, size_t size2, gsl_wavelet_workspace
* work)
Function: int gsl_wavelet2d_nstransform_inverse (const gsl_wavelet * w,
double * data, size_t tda, size_t size1, size_t size2, gsl_wavelet_workspace
* work)
These functions compute the two-dimensional wavelet transform in nonstandard form.
Functions for standrad form matrix
Function:
int gsl_wavelet2d_transform_matrix (const gsl_wavelet * w, gsl_matrix
* m, gsl_wavelet_direction dir, gsl_wavelet_workspace * work)
Function: int gsl_wavelet2d_transform_matrix_forward (const gsl_wavelet
* w, gsl_matrix * m, gsl_wavelet_workspace * work)
Function: int gsl_wavelet2d_transform_matrix_inverse (const gsl_wavelet
* w, gsl_matrix * m, gsl_wavelet_workspace * work)
These functions compute the two-dimensional in-place wavelet transform
on a matrix a.
Functions for non standrad form matrix
Function: int gsl_wavelet2d_nstransform_matrix (const gsl_wavelet * w,
gsl_matrix * m, gsl_wavelet_direction dir, gsl_wavelet_workspace * work)
Function: int gsl_wavelet2d_nstransform_matrix_forward (const gsl_wavelet
* w, gsl_matrix * m, gsl_wavelet_workspace * work)
Function: int gsl_wavelet2d_nstransform_matrix_inverse (const gsl_wavelet
* w, gsl_matrix * m, gsl_wavelet_workspace * work)
These functions compute the non-standard form of the two-dimensional inplace wavelet transform on a matrix a.
Applications of wavelet transforms
The following are applications of wavelet transforms:
 data and image compression
 partial differential equation solving
 transient detection
 pattern recognition
 texture analysis
 noise/trend reduction
Conclusion
 In this presentation we had discussed several kind of blocks that are used in
GNU python programming .
 We had discussed about the wavelet transforms, their usage in GNU Radio
and the functions that are used to execute them, Also various applications
where these wavelet transforms are used.
References




http://www.ift.uni.wroc.pl/~zkoza/doc/gsl/gsl-ref_30.html
http://gnuradio.org/redmine/wiki/gnuradio
http://gnuradio.org/doc/doxygen/group__wavelet__blk.html
http://zone.ni.com/devzone/cda/tut/p/id/3887
Descargar

Slide 1