A refactored port of JWave to C#
JWave was ported to sharpWave using Microsoft's C# programming language.
For some how to use it; JWave's github.io
For having a quick example, use GNU/Linux having the dotnet core framework and tooling available. Then try:
git clone https://github.com/graetz23/sharpWave.git && cd sharpWave && dotnet build
The following functionality is available:
- The 1-D, 2-D, and 3-D orthogonal transform algorithms; class Algorithm:
- a kind of Fast Wavelet Transform (FWT); class FastWaveletTransform,
- a (Fast) Wavelet Packet Transform (WPT); class WaveletPacketTransform,
- some Shifting Wavelet Transform (SWT); class ShiftingWaveletTransform,
- and a Discrete Fourier Transform (DFT); class DiscreteFourierTransform.
- Orthogonal and in most cases orthonormal wavelets:
- Orthonormal Alfred Haar's Wavelet; class Haar1,
- Orthogonal Alfred Haar's Wavelet; class Haar1Orthogonal,
- Orthonormal Coiflet wavelet family; file Coiflet.cs:
- Coiflet 1 wavelet,
- Coiflet 2 wavelet; reconstrucion error ~1e-10,
- Coiflet 3 wavelet; reconstrucion error ~1e-12,
- Coiflet 4 wavelet; reconstrucion error ~1e-10,
- Coiflet 5 wavelet; reconstrucion error ~1e-08.
- Orthonormal Legendre wavelet family; file Legendre.cs:
- Legendre 1 wavelet,
- Legendre 2 wavelet; not working properly,
- Legendre 3 wavelet; not working properly.
- Ingrid Daubechies' orthonormal wavelet family; file Daubechies.cs:
- Daubechies 2 wavelet,
- Daubechies 3 wavelet,
- Daubechies 4 wavelet; reconstrucion error ~1e-12,
- Daubechies 5 wavelet; reconstrucion error ~1e-12,
- Daubechies 6 wavelet; reconstrucion error ~1e-12,
- Daubechies 7 wavelet; reconstrucion error ~1e-12,
- Daubechies 8 wavelet; reconstrucion error ~1e-12,
- Daubechies 9 wavelet; reconstrucion error ~1e-10,
- Daubechies 10 wavelet; reconstrucion error ~1e-10,
- Daubechies 11 wavelet; reconstrucion error ~1e-12,
- Daubechies 12 wavelet; reconstrucion error ~1e-14.
- Orthonormal Symlet wavelet family; file Symlet.cs:
- Symlet 2 wavelet,
- Symlet 3 wavelet: reconstrucion error ~1e-10,
- Symlet 4 wavelet: reconstrucion error ~1e-10,
- Symlet 5 wavelet: reconstrucion error ~1e-12,
- Symlet 6 wavelet: reconstrucion error ~1e-10,
- Symlet 7 wavelet: reconstrucion error ~1e-10,
- Symlet 8 wavelet: reconstrucion error ~1e-12,
- Symlet 9 wavelet: reconstrucion error ~1e-12,
- Symlet 10 wavelet: reconstrucion error ~1e-14,
- Symlet 11 wavelet: reconstrucion error ~1e-14,
- Symlet 12 wavelet: reconstrucion error ~1e-14,
- Cohen Daubechies Feauveau orthogonal wavelet family; file CDF.cs:
- Cohen Daubechies Feauveau (CDF) 5/3; not working properly,
- Cohen Daubechies Feauveau (CDF) 9/7; not working properly.
- Orthogonal Mallat's Battle 23; class Battle23; not working properly,
- Orthogonal Discrete Mayer Wavelet; class DiscreteMayer; strong reconstrucion error; ~1e-2.
- Everything was coded using:
have fun :-)
- changed project to dotnet (.NET core)
- grouping all Coiflet wavelets in file: Coiflet.cs,
- grouping all Daubechies wavelets in file: Daubechies.cs,
- grouping all Legendre wavelets in file: Legendre.cs,
- grouping all CDF wavelets in file: CDF.cs,
- added the Symlet 3 wavelet,
- added the Symlet 4 wavelet,
- added the Symlet 5 wavelet,
- added the Symlet 6 wavelet,
- added the Symlet 7 wavelet,
- added the Symlet 8 wavelet,
- added the Symlet 9 wavelet,
- added the Symlet 10 wavelet,
- added the Symlet 11 wavelet,
- added the Symlet 12 wavelet.
- added the Daubechies 3 wavelet,
- added the Daubechies 4 wavelet,
- added the Daubechies 5 wavelet,
- added the Daubechies 6 wavelet,
- added the Daubechies 7 wavelet,
- added the Daubechies 8 wavelet,
- added the Daubechies 9 wavelet,
- added the Daubechies 10 wavelet,
- added the Daubechies 11 wavelet,
- added the Daubechies 12 wavelet.
- added the Coiflet 2 wavelet,
- added the Coiflet 3 wavelet,
- added the Coiflet 4 wavelet,
- added the Coiflet 5 wavelet,
- added the Mallat's Battle 23 wavelet,
- added the Cohen Daubechies Feauveau (CDF) 5/3 wavelet,
- added the Cohen Daubechies Feauveau (CDF) 9/7 wavelet.
- renamed class BasicTransform to Algorithm,
- ported Alfred Haar's orthogonal wavelet:
- extended the explanation of orthogonality and orthonormality,
- made the methods forward and reverse of class Wavelet virtual.
- added the Coiflet 1 wavelet,
- added the Legendre 1 wavelet,
- added the Legendre 2 wavelet,
- added the Legendre 3 wavelet,
- added the Daubechies 2 wavelet,
- added the Symlet 2 wavelet.
- added the DiscreteMayer wavelet.
- ported the Discrete Fourier Transform (DFT),
- ported the some Shifting Wavelet Transform (SWT),
- ported the (Fast) Wavelet Packet Transform (WPT); Wavelet Packet Decomposition (WPD),
- extended the class SharpWave for testing the SWT algorithm.
- extended the class SharpWave for testing the WPT / WPD algorithm.
- ported getter methods to C#'s lambda style
- reconstructed the Constructors of Transform classes,
- decided to use C#'s multidimensional instead of jagged arrays,
- added 2-D forward and reverse (stepping) algorithms,
- added 3-D forward and reverse (stepping) algorithms,
- extended the main method by 2-D example,
- recycled comments towards C#'s XML style,
- cleaned code.
- added 1-D orthogonal transform functions,
- added the Fast Wavelet Transform algorithms,
- added the orthonormal Haar Wavelet.
- started the ported,
- ported all necessary classes for a minimal example.