Skip to main content

Unitary discrete Fourier Transform (and related)

Project description

UDFT: Unitary Discrete Fourier Transform (and related)

licence pypi status version maintained Documentation Status

This module implements unitary discrete Fourier transform, that is orthonormal det(F) = 1 and F⁻¹ = F^*. This module existed before the introduction of the norm="ortho" keyword and is now a very (very) thin wrapper around libraries.

It is useful for convolution [1]: they respect the Perceval equality, e.g., the value of the null frequency is equal to 1/√N * ∑ₙ xₙ.

[1] B. R. Hunt "A matrix theory proof of the discrete convolution theorem", IEEE
Trans. on Audio and Electroacoustics, vol. au-19, no. 4, pp. 285-288, dec. 1971

There is also functions related to Fourier and convolution like ir2fr.

UDFT use array API standard. Thanks to this last point, any array library that follow the standard (Numpy, PyTorch, cupy, ...) can be used by udft that use their respective namespace.

If you are having issues, please let me know

francois.orieux AT universite-paris-saclay.fr

Installation and documentation

UDFT is just the file udft.py and depends on array-api-compat and numpy only and therefor is compatible with numpy, pytorch, jax, cupy...

The API is simple and opinionated for good reason. If you need more parameters or options, I simply encourage you to directly use API of your array library.

Documentation is here. I recommend using poetry or uv for installation

   poetry add udft

or

   poetry add udft[scipy]

For a quick and dirty installation, just copy the udft.py file: it is quite stable, follow the Semantic Versioning, and futur major changes are unlikely.

The code is hosted on GitHub.

License

The code is in the public domain.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

udft-4.0.2.tar.gz (40.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

udft-4.0.2-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file udft-4.0.2.tar.gz.

File metadata

  • Download URL: udft-4.0.2.tar.gz
  • Upload date:
  • Size: 40.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.12 {"installer":{"name":"uv","version":"0.11.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for udft-4.0.2.tar.gz
Algorithm Hash digest
SHA256 3c3528cc2b54ddd939b2d37367c3d1b974224c7d8fe2cb1f21012c0b9a6a62f9
MD5 bd824d2d200f6cc4dfcbc5c320f25774
BLAKE2b-256 f859e0e2f418989d3459775bbf92e6b5135429b645d6a1a9db31e1f4a81d3b83

See more details on using hashes here.

File details

Details for the file udft-4.0.2-py3-none-any.whl.

File metadata

  • Download URL: udft-4.0.2-py3-none-any.whl
  • Upload date:
  • Size: 9.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.12 {"installer":{"name":"uv","version":"0.11.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for udft-4.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 508dc04fb17a24f05045363c7dd465b4b694358353f3e51236bebb0af142a1c5
MD5 121ac3bdf808d9874cffb4e89ec4369b
BLAKE2b-256 217d28acbb21c1e624fda436beb758a10e3422d6aa4168dfc9fc466322411da0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page