{
  "aliases": null,
  "backlinks": [
    {
      "field": "uses",
      "target": "2HNN80TMGH"
    },
    {
      "field": "uses",
      "target": "A00DAT34F9"
    },
    {
      "field": "uses",
      "target": "GDW2SR7TSH"
    },
    {
      "field": "defines",
      "target": "FXSY9SXHFZ"
    }
  ],
  "body": "\n## Summary\n\nThe discrete wavelet transform splits a sequence into a coarse part and a detail part.\nIt uses two filters followed by downsampling by $2$, and then repeats the split on the coarse part.\nFor filters from an orthonormal [[multiresolution analysis|1GHQMBR7DE]], each step is an orthogonal change of coordinates.\nSo the transform preserves energy and is easy to invert.\nThe outputs are the coefficients of a function in a [[wavelet|4PZ35C0GV3]] basis.\nThe [[fast wavelet transform|PDVYQAW887]] computes them in a number of steps proportional to the length of the signal.\nIt is the basis of wavelet compression, for example in the JPEG 2000 image standard.\n\n## Explanations\n\n### L1 human\n\nTake a list of numbers and group them in pairs.\nFor each pair, keep a scaled sum, which records the average, and a scaled difference, which records the detail.\nThen do the same with the list of sums, and again, until one number is left.\nFor a smooth signal most details are tiny, so one can drop them and still rebuild a good approximation.\nThis is the Haar case; other wavelets use longer filters in the same pattern.\n",
  "commit": "ff8a40749dc16545e3d2fc637f6b0196e81d0bfa",
  "front": {
    "kind": "concept",
    "msc": [
      "42C40",
      "65T60",
      "94A12"
    ],
    "name": "Discrete wavelet transform",
    "same_as": {
      "wikidata": "Q2414958",
      "wikipedia": "Discrete wavelet transform"
    },
    "sources": [
      {
        "url": "https://en.wikipedia.org/wiki/Discrete_wavelet_transform"
      }
    ],
    "tag": "P3H4MMC4ZH"
  },
  "kind": "concept",
  "link": "https://tamnd.github.io/math2/node/P3H4MMC4ZH/",
  "links": null,
  "markdown": "https://tamnd.github.io/math2/node/P3H4MMC4ZH.md",
  "msc": [
    "42C40",
    "65T60",
    "94A12"
  ],
  "name": "Discrete wavelet transform",
  "prov": null,
  "role": "",
  "source": "https://github.com/tamnd/math2/blob/main/nodes/P3H/P3H4MMC4ZH.md",
  "status": null,
  "tag": "P3H4MMC4ZH",
  "uri": "m2://P3H4MMC4ZH",
  "url": "https://tamnd.github.io/math2/wiki/discrete-wavelet-transform/",
  "writing": {
    "tag": "P3H4MMC4ZH",
    "kind": "concept",
    "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
      }
    ]
  }
}
