Go to: Title Page Chapter 1 Appendix A Appendix J Copyright Chapter 2 Appendix B Appendix K Abstract Chapter 3 Appendix C Appendix L Acknowledgements Chapter 4 Appendix D References Table of Contents Chapter 5 Appendix E List of Figure Conclusions/ Appendix F List of Tables Future Directions Appendix G List of Audio Examples Appendix H List of Programs Appendix I
I. Lifted_wavelet_denoise
A. General Description and Usage
lifted_wavelet_denoise is a program which
uses lifted, interpolating scaling and wavelet functions to achieve
broad-band denoising as described in Chapter 3. The program can
denoise any AIFF file of any AIFF-standard sample rate, number
of channels, and sample bitwidth. Type lifted_wavelet_denoise
for a usage reminder:
Lifted wavelet broad-band denoising of AIFF sound files,
(any sample rate, any bitwidth, any number of channels)
Written by Corey Cheng, Winter 1996.
usage: lifted_wavelet_denoise /inputfile/
/outputfile/ /window_size/ /iterations/ /vanishing index/ /threshold/
The input and output files are the filenames of AIFF files of the source and destination files. If the destination file already exists, it is erased and replaced with the output of the denoising process.
window_size refers to how many frames of audio (one frame of audio is one sample per channel per time interval; for example, there are two samples in one stereo frame) should be used in the wavelet window. This parameter is linked with the iterations parameter, which dictates how many iterations of the forward and inverse transform to perform on each window of sound data. The window size should be an exact power of two, and should be equal to at least 2iterations+2. Typically, the higher the number of iterations, the more levels of wavelet coefficients are available that describe lower-frequency spectral components. However, the larger the number of iterations, the larger the window will have to be to accommodate the larger number of wavelet coefficients.
The threshold value is the value below which a wavelet coefficient is deemed to be noise, and subsequently eliminated (set to zero). According to the soft thresholding scheme, the threshold value is also subtracted from every other wavelet coefficient, so that the overall power of the input signal is affected.
The vanishing index, N, controls how many
vanishing moments the analyzing and synthesizing wavelets will
have. Use:
N = 1 for linear interpolation (one vanishing moment)
N = 2 for cubic interpolation (three vanishing moments)
N = 3 for fifth order interpolation (5 vanishing moments)
N = j for 2j-1 order interpolation (2j-1 vanishing
moments)
In general, The higher the number of vanishing
moments, the sharper the rolloff of the associated high and low
pass analyzing and synthesizing filters. However, due to the limitations
of the lifting scheme with interpolating wavelets, boundary artifacts
become more prevalent for denoising with more vanishing moments.
Processing time is also significantly increased for denoising
with more vanishing moments.
B. Compiling the program
This program was written in C++ with the GNU
G++ dialect, version 2.6.2. The user must have the lifted_wavelet_transforms.h,
ac.h, ac2.h, ac.cc, and ac.error.cc files in the same directory
as the main source file, lifted_wavelet_denoise.cc to compile
the program properly. The audio libraries libaudio.a and libaudiofile.a,
available in standard releases of the Irix operating system, are
required for compilation. No Makefile is provided, as all compilation
can be done with the following command:
g++ -O3 -mips2 -mcpu=r4000 -o lifted_wavelet_denoise
lifted_wavelet_denoise.cc ac.cc ac.error.cc -lm -laudio
-laudiofile
II. circ_conv_wavelet_denoise
A. General Usage
circ_conv_wavelet_denoise is a program which
uses binary coefficient wavelets to achieve broad-band denoising
as described in Chapter 3. Circular convolution is used to deal
with the boundaries. In the current implementation the 5/3 filter
pair described in Chapter 1 (five analysis low-pass filter coefficients
and three analysis high-pass filter coefficients) is used for
the analysis and resynthesis. The program's structure is flexible,
however, and the user may easily adopt any set of perfectly reconstructing
analysis and resynthesis filters if he wishes to recompile the
code. This program can denoise any AIFF file of any AIFF-standard
sample rate, number of channels, and sample bitwidth. Type circ_conv_wavelet_denoise
for a usage reminder:
Circular convolution wavelet broad-band denoising of AIFF sound files (any sample rate, any bitwidth, any number of channels)
Written by Corey Cheng, Winter 1996.
usage: circ_conv_wavelet_denoise /inputfile/
/outputfile//window_size/
/iterations/ /threshold/
The input and output files are the filenames of AIFF files of the source and destination files. If the destination file already exists, it is erased and replaced with the output of the denoising process.
window_size refers to how many frames of audio (one frame of audio is one sample per channel per time interval; for example, there are two samples in one stereo frame) should be used in the wavelet window. This parameter is linked with the iterations parameter, which dictates how many iterations of the forward and inverse transform to perform on each window of sound data. The window size should be an exact power of two, and should be equal to at least 2iterations+2. Typically, the higher the number of iterations, the more levels of wavelet coefficients are available that describe lower-frequency spectral components. However, the larger the number of iterations, the larger the window will have to be to accommodate the larger number of wavelet coefficients.
The threshold value is the value below which
a wavelet coefficient is deemed to be noise, and subsequently
eliminated (set to zero). According to the soft thresholding scheme,
the threshold value is also subtracted from every other wavelet
coefficient, so that the overall power of the input signal is
affected.
B. Compiling the program
This program was written in C++ with the GNU
G++ dialect, version 2.6.2. The user must have the normal_wavelet_transforms.h,
ac.h, ac2.h, ac.cc, and ac.error.cc files in the same directory
as the main source file, circ_conv_wavelet_denoise.cc to compile
the program properly. The audio libraries libaudio.a and libaudiofile.a,
available in standard releases of the Irix operating system, are
required for compilation. No Makefile is provided, as all compilation
can be done with the following command:
g++ -O3 -mips2 -mcpu=r4000 -o circ_conv_wavelet_denoise
circ_conv_wavelet_denoise.cc ac.cc ac.error.cc -lm -laudio
-laudiofile
Go to: Title Page Chapter 1 Appendix A Appendix J Copyright Chapter 2 Appendix B Appendix K Abstract Chapter 3 Appendix C Appendix L Acknowledgements Chapter 4 Appendix D References Table of Contents Chapter 5 Appendix E List of Figure Conclusions/ Appendix F List of Tables Future Directions Appendix G List of Audio Examples Appendix H List of Programs Appendix I