{
  "aliases": null,
  "backlinks": null,
  "body": "\n## Definition\n\nLet $N \\ge 1$ and $K \\ge 1$ be integers.\nLet $p_0, \\ldots, p_{N-1}$ be real numbers, the sample points, and let $f_0, \\ldots, f_{K-1}$ be real numbers, the frequencies.\nThe *non-uniform discrete Fourier transform* of a vector $x = (x_0, \\ldots, x_{N-1}) \\in \\C^N$ is the vector $X \\in \\C^K$ given by\n$$X_k = \\sum_{n=0}^{N-1} x_n\\, e^{-2\\pi i\\, p_n f_k}, \\qquad k = 0, \\ldots, K-1.$$\nIt is of *type I* if $f_k = k$ for all $k$, with arbitrary $p_n$.\nIt is of *type II* if $p_n = n/N$ for all $n$, with arbitrary $f_k$.\nIt is of *type III* if both families are arbitrary.\nThe numbering of types I and II varies between authors; some, including the cited source, swap the two names.\n\n## Remarks\n\nExample: with $K = N$, $p_n = n/N$ and $f_k = k$, the sum is $\\sum_n x_n e^{-2\\pi i nk/N}$, the ordinary [[discrete Fourier transform|TST0GH66A5]]; it is both of type I and of type II.\nNon-example: the sum $\\sum_{n \\in \\Z} x_n e^{-2\\pi i n f}$ over all integers is not a non-uniform DFT, because the definition requires finitely many sample points.\nThe map $x \\mapsto X$ is linear, with the $K \\times N$ matrix $A_{kn} = e^{-2\\pi i p_n f_k}$.\nUnlike the DFT matrix, $A$ is in general not a multiple of a unitary matrix, and it can be badly conditioned or singular, for example when two sample points coincide.\nThe adjoint transform, with $e^{+2\\pi i p_n f_k}$, is used in place of an inverse.\nSome authors use multidimensional points $p_n, f_k \\in \\R^d$ with the dot product $p_n \\cdot f_k$ in the exponent.\n\n## Explanations\n\n### L1 human\n\nThe definition keeps the formula of the discrete Fourier transform but lets the positions $p_n$ and frequencies $f_k$ be any real numbers.\nThe three types say which of the two sides is still on a regular grid.\nComputing it directly costs about $NK$ operations.\nFast algorithms, called non-uniform FFTs, approximate it to a chosen accuracy with far fewer operations when $N$ and $K$ are large.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "defines": "NY851TZ24X",
    "kind": "definition",
    "msc": [
      "65T50",
      "65T40"
    ],
    "name": "Non-uniform discrete Fourier transform",
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Non-uniform_discrete_Fourier_transform"
      }
    ],
    "tag": "EXZHFNRMV8",
    "uses": [
      "TST0GH66A5"
    ]
  },
  "kind": "definition",
  "link": "https://tamnd.github.io/math2/node/EXZHFNRMV8/",
  "links": [
    {
      "field": "defines",
      "target": "NY851TZ24X"
    },
    {
      "field": "uses",
      "target": "TST0GH66A5"
    }
  ],
  "markdown": "https://tamnd.github.io/math2/node/EXZHFNRMV8.md",
  "msc": [
    "65T50",
    "65T40"
  ],
  "name": "Non-uniform discrete Fourier transform",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/EXZ/EXZHFNRMV8.md",
  "status": null,
  "tag": "EXZHFNRMV8",
  "uri": "m2://EXZHFNRMV8",
  "url": "https://tamnd.github.io/math2/wiki/non-uniform-discrete-fourier-transform-definition/",
  "writing": {
    "tag": "EXZHFNRMV8",
    "kind": "definition",
    "level": "W0",
    "next": [
      {
        "what": "an inventory row",
        "note": "the row of the inventory that the node accounts for",
        "have": 0,
        "want": 1
      },
      {
        "what": "a source with a locator",
        "have": 0,
        "want": 1
      }
    ]
  }
}
