Skip to content

A refactored port and code rebuilt of JWave - Discrete Fourier Transform (DFT), Fast Wavelet Transform (FWT), Wavelet Packet Transform (WPT), some Shifting Wavelet Transform (SWT) by using orthogonal (orthonormal) wavelets like Haar, Daubechie, Coiflet, and other normalized bi-orthogonal wavelets.

License

Notifications You must be signed in to change notification settings

graetz23/sharpWave

Folders and files

NameName
Last commit message
Last commit date

Latest commit

bd8785e · Feb 17, 2025

History

77 Commits
May 3, 2024
Aug 18, 2021
May 3, 2024
May 3, 2024
May 3, 2024
May 3, 2024
May 3, 2024
May 3, 2024
May 3, 2024
May 3, 2024
May 3, 2024
May 3, 2024
May 3, 2024
May 3, 2024
May 3, 2024
May 3, 2024
Dec 22, 2024
Feb 17, 2025
May 3, 2024
Dec 22, 2024
May 3, 2024
May 3, 2024
May 3, 2024
May 3, 2024
Dec 22, 2024
Dec 22, 2024

Repository files navigation

sharpWave

A refactored port of JWave to C#

GitHub commit activity GitHub Repo stars GitHub forks

Introduction

JWave was ported to sharpWave using Microsoft's C# programming language.

HowTo

For some how to use it; JWave's github.io

building

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

remarks

The following functionality is available:

  • The 1-D, 2-D, and 3-D orthogonal transform algorithms; class Algorithm:
  • 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,
      • Symlet 16 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 :-)

ChangeLog

20241222

  • changed project to dotnet 8 (net.8),
  • added Symlet16 for M-Colley, rounding error ~1e-14.

20230516

  • changed project to dotnet (.NET core)

20200320

  • 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.

20200319

  • 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.

20200318

  • 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.

20200317

  • renamed class BasicTransform to Algorithm,
  • ported Alfred Haar's orthogonal wavelet:
  • 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.

20200316

  • 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.

20200315

  • 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.

20200314

  • added 1-D orthogonal transform functions,
  • added the Fast Wavelet Transform algorithms,
  • added the orthonormal Haar Wavelet.

20200304

  • started the ported,
  • ported all necessary classes for a minimal example.

About

A refactored port and code rebuilt of JWave - Discrete Fourier Transform (DFT), Fast Wavelet Transform (FWT), Wavelet Packet Transform (WPT), some Shifting Wavelet Transform (SWT) by using orthogonal (orthonormal) wavelets like Haar, Daubechie, Coiflet, and other normalized bi-orthogonal wavelets.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages