Unitary discrete Fourier Transform (and related)
Project description
UDFT: Unitary Discrete Fourier Transform (and related)
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a541a877e34ab3557cd88dfb3117300efe267d391427c2c3eba89b9374b856bd
|
|
| MD5 |
3bb6a40f1d60f4f760a4fceca882a87d
|
|
| BLAKE2b-256 |
983207a1d3d479fcc7d08467a9659e59adec38f1f5bd4ab1a4569f6dc507a688
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b3956db02656cc3c0d1b5c0b7fb95460df22705c55049c483a08f722d8ab6aff
|
|
| MD5 |
561c621033734caf41a658231f8ca1bf
|
|
| BLAKE2b-256 |
134cfcd50896a4b4c0061ddefd3e6a96b709a67f96f4d53b72a1a74ccc15dbfb
|