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.4.tar.gz (40.9 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.4-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: udft-4.0.4.tar.gz
  • Upload date:
  • Size: 40.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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.4.tar.gz
Algorithm Hash digest
SHA256 3f619b2bddc9b81181de2b41fe496d0ff8e7e3aae8d527f99841321b4549f318
MD5 b30b36c53a5d3905bb49581a71a4b305
BLAKE2b-256 514d6fe67655167ed79d5e8849871608a1f7b2bf5a363d686a976141cbebf5af

See more details on using hashes here.

File details

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

File metadata

  • Download URL: udft-4.0.4-py3-none-any.whl
  • Upload date:
  • Size: 9.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 88f6d85eeb85f0dd19b414409df4645507894a4e3232f99530ab7fca3ee1da3b
MD5 626c930ba6e0796aa5e778a0f1edaf62
BLAKE2b-256 b11eeb5bae71b1136acbc64bc479ead75f8abfcc96290eefa5c2c88942dcaf24

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