{
  "$schema": "https://siliconverify.com/schemas/tool-v1.json",
  "slug": "convolution",
  "title": "Convolution Visualizer — x(t) * h(t) Animated",
  "category": "signal-processing",
  "category_label": "Signal processing",
  "urls": {
    "interactive": "https://siliconverify.com/convolution.html",
    "static_sheet": "https://siliconverify.com/ref-convolution.html",
    "api_doc": "https://siliconverify.com/api/convolution.json",
    "blog_index": "https://siliconverify.com/llms-signalprocessing.txt"
  },
  "description": "The Convolution Visualizer animates the continuous convolution x(t) * h(t) = ∫ x(τ)·h(t−τ) dτ. Drag a sliding window over h(t) (flipped and shifted) and watch the area under the product grow into x̃(t). Use it to internalize why a matched filter is \"matched\", why an RC low-pass has an exponential step response, and why two impulses convolve to a rectangle.",
  "keywords": [
    "convolution",
    "convolution integral",
    "flip and slide",
    "signals and systems",
    "continuous convolution"
  ],
  "pricing": {
    "class": "workbench-tool",
    "protocol": "x402",
    "network": "base",
    "currency": "USDC",
    "price_atomic": 1000,
    "price_usd": 0.001,
    "payTo": "0x97DAA5649Fd7Dfe3e46fCd9f75516e36E750eed7",
    "static_sheet_price_atomic": 1000,
    "export_price_atomic": 5000
  },
  "content": {
    "formulas": [
      "Continuous: y(t) = ∫₋∞^∞ x(τ)·h(t−τ) dτ = ∫ x(τ)·h(t−τ) dτ",
      "Discrete: y[n] = Σₖ x[k]·h[n−k]",
      "Convolution theorem: x(t) * h(t) ⟷ X(f)·H(f) (multiplication in frequency)",
      "Impulse response: h(t) = output when x(t) = δ(t)",
      "LTI property: y(t) = (x * h)(t) is linear and time-invariant"
    ],
    "citations": [
      "Oppenheim & Willsky, \"Signals and Systems,\" 2nd ed., 1997, Ch. 2.",
      "Bracewell, R., \"The Fourier Transform and Its Applications,\" 3rd ed., McGraw-Hill, 2000."
    ],
    "faq": [
      {
        "q": "Why is the convolution integral written with h(t−τ) instead of h(τ−t)?",
        "a": "Convolution is commutative. The form h(t−τ) is the \"running\" picture: flip h, slide it along x, and integrate. Some textbooks use h(τ−t) for the same reason (with the flip explicit)."
      },
      {
        "q": "How do I convolve two FFTs efficiently?",
        "a": "IFFT(FFT(x)·FFT(h)). O(N log N) vs O(N²) for direct convolution. Useful for N > 100."
      }
    ]
  },
  "accessibility": {
    "crawlable": true,
    "javascript_required": true,
    "static_alternative": "/ref-convolution.html",
    "structured_data": [
      "TechArticle",
      "SoftwareApplication",
      "FAQPage",
      "BreadcrumbList"
    ]
  },
  "x402_challenge_example": {
    "request": "curl -A 'GPTBot/1.0' -i https://siliconverify.com/convolution.html",
    "response_headers": [
      "HTTP/1.1 402 Payment Required",
      "X-Siliconverify-Resource-Class: workbench-tool",
      "X-Siliconverify-Price-Atomic: 1000",
      "X-Siliconverify-Price-USD: 0.001"
    ],
    "response_body": "{\n  \"x402Version\": 1,\n  \"accepts\": [\n    {\n      \"scheme\": \"exact\",\n      \"network\": \"base\",\n      \"maxAmountRequired\": \"1000\",\n      \"resource\": \"https://siliconverify.com/convolution.html\",\n      \"description\": \"SiliconVerify workbench tool — interactive browser-based engineering calculator. Client-side computation, no server cost.\",\n      \"mimeType\": \"text/html\",\n      \"payTo\": \"0x97DAA5649Fd7Dfe3e46fCd9f75516e36E750eed7\",\n      \"validAfter\": 1783274656,\n      \"validBefore\": 1783274956\n    }\n  ]\n}",
    "paid_request": "curl -A 'GPTBot/1.0' -H 'X-PAYMENT: 0x<txhash>' -i https://siliconverify.com/convolution.html"
  },
  "last_updated": "2026-07-05"
}