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.1.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.1-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: udft-4.0.1.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.1.tar.gz
Algorithm Hash digest
SHA256 a541a877e34ab3557cd88dfb3117300efe267d391427c2c3eba89b9374b856bd
MD5 3bb6a40f1d60f4f760a4fceca882a87d
BLAKE2b-256 983207a1d3d479fcc7d08467a9659e59adec38f1f5bd4ab1a4569f6dc507a688

See more details on using hashes here.

File details

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

File metadata

  • Download URL: udft-4.0.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b3956db02656cc3c0d1b5c0b7fb95460df22705c55049c483a08f722d8ab6aff
MD5 561c621033734caf41a658231f8ca1bf
BLAKE2b-256 134cfcd50896a4b4c0061ddefd3e6a96b709a67f96f4d53b72a1a74ccc15dbfb

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