{
  "format": "recallweave-deck/1",
  "title": "Finite convolution: indices, contributions, and filters",
  "attribution": "Original questions, numbers, worked examples and diagrams by RecallWeave contributors (2026). Mathematical background: Alan V. Oppenheim, MIT OpenCourseWare RES.6.007, Lecture 4, Convolution, https://ocw.mit.edu/courses/res-6-007-signals-and-systems-spring-2011/resources/lecture-4-convolution/ ; D. Rowell, MIT 2.161, Lecture 18, pp. 18–1 to 18–2, https://ocw.mit.edu/courses/2-161-signal-processing-continuous-and-discrete-fall-2008/14f29be83ac38f11eb1a1bd5fdb6f5ea_lecture_18.pdf . No source questions, passages or figures are reproduced.",
  "license": "Original course wording, worked examples and diagrams: CC BY 4.0. Cited MIT reference materials retain their own licenses; this course does not reproduce them.",
  "concepts": [
    "Indices and support",
    "Shift and sum",
    "Finite filter responses",
    "Properties and operation choice"
  ],
  "items": [
    {
      "id": "fc01",
      "concept": "Indices and support",
      "prerequisites": [],
      "prompt": "A finite sequence is x = [3, −2, 4], with its first entry at index 0 and zero at every index outside the list. What is x[−1]?",
      "options": [
        "−2",
        "3",
        "0",
        "4"
      ],
      "answer": 2,
      "explanation": "Index 0 contains 3, index 1 contains −2, and index 2 contains 4. The index −1 is outside the declared list, so zero extension makes x[−1] = 0. A negative index is not a request to count backward from the end.",
      "transfer": "Write the values of x[0], x[2], and x[3]. Explain which are listed samples and which use zero extension."
    },
    {
      "id": "fc02",
      "concept": "Indices and support",
      "prerequisites": [],
      "prompt": "Two lists have lengths 4 and 3. Both begin at index 0 and are zero elsewhere. Which index range is retained by their full linear convolution, including possible zero entries at the ends?",
      "options": [
        "0 through 5: six entries",
        "0 through 6: seven entries",
        "0 through 3: four entries",
        "−2 through 3: six entries"
      ],
      "answer": 0,
      "explanation": "Nonzero contributions can occur when an input index k in 0…3 and a kernel index j in 0…2 add to n. The first retained index is 0+0=0 and the last is 3+2=5, giving 4+3−1=6 entries. The full convention keeps this range even when some values are zero.",
      "transfer": "Choose input lengths 2 and 5. State the first index, last index, and full output length before doing any multiplication."
    },
    {
      "id": "fc03",
      "concept": "Indices and support",
      "prerequisites": [],
      "prompt": "Let x = [2, −1, 3] and h = [0, 1]. Both lists begin at index 0 and are zero elsewhere. For y[n] = Σₖ x[k]h[n−k], what is the full output?",
      "options": [
        "[2, −1, 3, 0]",
        "[0, 4, −2, 6]",
        "[2, −1, 3]",
        "[0, 2, −1, 3]"
      ],
      "answer": 3,
      "explanation": "Only h[1] is nonzero, so y[n]=x[n−1]. Evaluating indices 0…3 gives [0,2,−1,3]. This is a one-sample delay, with no change in amplitude; the leading zero and final sample both belong to the full result.",
      "transfer": "Replace h with [0,0,1] in the lab. Predict the output before checking, and explain the two initial zeros."
    },
    {
      "id": "fc04",
      "concept": "Shift and sum",
      "prerequisites": [
        "Indices and support"
      ],
      "prompt": "Let x = [2, −1, 3] and h = [1, 2], both starting at index 0 and zero elsewhere. For y[n] = Σₖ x[k]h[n−k], what is y[1]?",
      "options": [
        "0",
        "3",
        "5",
        "−1"
      ],
      "answer": 1,
      "explanation": "At n=1, the terms are x[0]h[1]=2×2=4, x[1]h[0]=(−1)×1=−1, and x[2]h[−1]=3×0=0. Their sum is 3. The kernel index is n−k, so its order reverses as k increases.",
      "transfer": "Move the lab from output index 1 to index 2. Identify which kernel index each input sample meets and which terms become zero."
    },
    {
      "id": "fc05",
      "concept": "Shift and sum",
      "prerequisites": [
        "Indices and support"
      ],
      "prompt": "Let x = [2, −1, 3] and h = [1, 2], both starting at index 0 and zero elsewhere. Which list is the full linear convolution y[n] = Σₖ x[k]h[n−k]?",
      "options": [
        "[2, −2, 3]",
        "[2, 3, 6]",
        "[2, 3, 1, 6]",
        "[4, 1, 5, 3]"
      ],
      "answer": 2,
      "explanation": "The four sums are y[0]=2×1=2; y[1]=2×2+(−1)×1=3; y[2]=(−1)×2+3×1=1; and y[3]=3×2=6. Zero extension supplies all omitted terms. The result is [2,3,1,6], with length 3+2−1=4.",
      "transfer": "Change only the middle input sample from −1 to 0. Predict every output that changes and the amount of each change."
    },
    {
      "id": "fc06",
      "concept": "Shift and sum",
      "prerequisites": [
        "Indices and support"
      ],
      "prompt": "Let x = [1, 2] and h = [3, −1, 2], both starting at index 0 and zero elsewhere. At n = 2, which sum correctly computes y[2] = Σₖ x[k]h[2−k]?",
      "options": [
        "1 × 2 + 2 × (−1) = 0",
        "1 × 3 + 2 × (−1) = 1",
        "1 × (−1) + 2 × 2 = 3",
        "1 × 2 + 2 × 3 = 8"
      ],
      "answer": 0,
      "explanation": "At n=2, the two input indices pair with h[2] and h[1]: 1×2 + 2×(−1)=0. The terms cancel. Pairing x[0] with h[0], or keeping the kernel in forward order, computes a different quantity.",
      "transfer": "Try x=[1,2] and h=[3,−1,2] in the lab. Inspect all four output positions and locate the cancellation at n=2."
    },
    {
      "id": "fc07",
      "concept": "Finite filter responses",
      "prerequisites": [
        "Shift and sum"
      ],
      "prompt": "An averaging kernel is h = [0.5, 0.5] and a finite input is x = [0, 4, 0]. Both start at index 0 and are zero elsewhere. What is their full linear convolution?",
      "options": [
        "[0, 4, 0]",
        "[0, 2, 0, 0]",
        "[2, 2, 2]",
        "[0, 2, 2, 0]"
      ],
      "answer": 3,
      "explanation": "The filter computes y[n]=0.5x[n]+0.5x[n−1]. The four retained values are 0, 2, 2, and 0. The single nonzero input contributes to two consecutive outputs. No claim about removing real-world noise follows from this one authored example.",
      "transfer": "Compare h=[0.5,0.5] with h=[1,1] for the same input. Describe the change in output values without making a claim about an unknown signal."
    },
    {
      "id": "fc08",
      "concept": "Finite filter responses",
      "prerequisites": [
        "Shift and sum"
      ],
      "prompt": "A first-difference kernel is h = [1, −1]. The finite input x = [2, 2, 2] begins at index 0 and is zero elsewhere. What is the full output y[n] = x[n] − x[n−1]?",
      "options": [
        "[0, 0, 0, 0]",
        "[2, 0, 0, −2]",
        "[2, 2, 2, 0]",
        "[−2, 0, 0, 2]"
      ],
      "answer": 1,
      "explanation": "Inside the constant part of the finite input, adjacent values cancel. At the start, y[0]=2−0=2; at the end, y[3]=0−2=−2. Thus the complete output is [2,0,0,−2]. Assuming the value 2 continues forever would describe a different input.",
      "transfer": "Replace the finite input with [2,2,2,2]. Predict how the two nonzero boundary outputs move, then verify the full result."
    },
    {
      "id": "fc09",
      "concept": "Finite filter responses",
      "prerequisites": [
        "Shift and sum"
      ],
      "prompt": "An input list x = [1, 0, 0] and a kernel h = [2, −1] both begin at index 0 and are zero elsewhere. Which list retains the complete full linear convolution, including the declared trailing zeros?",
      "options": [
        "[2, −1, 0, 0]",
        "[2, −1]",
        "[2, 1, 0, 0]",
        "[0, 2, −1, 0]"
      ],
      "answer": 0,
      "explanation": "The input has an impulse at index 0 followed by two declared zeros, so the output copies h and retains the complete 3+2−1=4-entry range: [2,−1,0,0]. The shorter list [2,−1] has the same nonzero support but is not the requested full representation.",
      "transfer": "Use x=[0,1,0] with the same h. Explain both the shifted nonzero samples and the retained zero entries."
    },
    {
      "id": "fc10",
      "concept": "Properties and operation choice",
      "prerequisites": [
        "Shift and sum"
      ],
      "prompt": "For zero-extended lists indexed from 0, let x = [1, 2], z = [3, −1], and h = [1, 1]. Their full convolutions are x*h = [1, 3, 2] and z*h = [3, 2, −1]. What is (x+z)*h?",
      "options": [
        "[3, 6, −2]",
        "[4, 1]",
        "[4, 5, 1]",
        "[1, 3, 2, 3, 2, −1]"
      ],
      "answer": 2,
      "explanation": "Convolution with the fixed h is linear: (x+z)*h = x*h + z*h. Adding the given output lists entry by entry gives [1+3,3+2,2+(−1)] = [4,5,1]. Directly convolving x+z=[4,1] with [1,1] gives the same result.",
      "transfer": "Pick two equal-length input lists and one fixed kernel. Verify one output index of the sum in two ways and explain why it agrees."
    },
    {
      "id": "fc11",
      "concept": "Properties and operation choice",
      "prerequisites": [
        "Shift and sum"
      ],
      "prompt": "Let x = [1, 2] and h = [3, 4], both starting at 0 and zero elsewhere. Define convolution y[n] = Σₖ x[k]h[n−k], and define the real zero-lag correlation r[0] = Σₖ x[k]h[k]. What are y[0] and r[0]?",
      "options": [
        "y[0] = 11 and r[0] = 3",
        "y[0] = 3 and r[0] = 11",
        "y[0] = 4 and r[0] = 10",
        "y[0] = 3 and r[0] = 3"
      ],
      "answer": 1,
      "explanation": "At n=0, zero extension leaves only x[0]h[0]=1×3=3 in the convolution sum. The separately defined zero-lag correlation is the aligned dot product 1×3+2×4=11. The formulas use different index pairings; a matching-index dot product is not generally y[0].",
      "transfer": "For the same x and h, calculate y[1] by listing its kernel indices. Contrast this with a matching-index product sum."
    },
    {
      "id": "fc12",
      "concept": "Properties and operation choice",
      "prerequisites": [
        "Shift and sum"
      ],
      "prompt": "For finite lists indexed from 0 and zero elsewhere, x = [1, 0, 2] and h = [−1, 3] have full convolution x*h = [−1, 3, −2, 6]. What is the full convolution h*x?",
      "options": [
        "[6, −2, 3, −1]",
        "[1, −3, 2, −6]",
        "[−1, 0, 6]",
        "[−1, 3, −2, 6]"
      ],
      "answer": 3,
      "explanation": "Finite linear convolution is commutative under the same indexing and zero-extension convention. Swapping x and h therefore gives [−1,3,−2,6] again. It does not reverse or negate the result. Direct expansion is −1×[1,0,2] plus a one-index-shifted 3×[1,0,2].",
      "transfer": "Swap the input and kernel in the lab. Compare the complete output and explain why the per-index contribution table can look different."
    }
  ]
}
