240 likes | 501 Views
Wavelet Transforms CENG 5931 GNU RADIO INSTRUCTOR: Dr GEORGE COLLINS . Introduction Wavelet Transforms wavelet Vs Fourier Transforms GNU Scientific Library Wavelet transform usage in GNU RADIO
E N D
Wavelet TransformsCENG 5931 GNU RADIO INSTRUCTOR: Dr GEORGE COLLINS
Introduction Wavelet Transforms wavelet Vs Fourier Transforms GNU Scientific Library Wavelet transform usage in GNU RADIO Functions of wavelet transforms Applications Conclusion Contents
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
Wavelet transform usage in GNU RADIOCollaboration 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: intgsl_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: intgsl_dwt_transform_forward(const gsl_wavelet * w, double * data, size_t stride, size_t n, gsl_wavelet_workspace * work) Function: intgsl_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_ttda, 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 row-major 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_ttda, size_t size1, size_t size2, gsl_wavelet_workspace * work) Function: int gsl_wavelet2d_transform_inverse (const gsl_wavelet * w, double * data, size_ttda, 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_ttda, 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_ttda, size_t size1, size_t size2, gsl_wavelet_workspace * work) Function: int gsl_wavelet2d_nstransform_inverse (const gsl_wavelet * w, double * data, size_ttda, size_t size1, size_t size2, gsl_wavelet_workspace * work) These functions compute the two-dimensional wavelet transform in non-standard 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 in-place 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