Convolution helps combine two signals to see how one changes the other. It is like mixing two patterns to find the result.
To find the output of a system when you know the input and the system's response.
To blur or sharpen images by mixing them with a filter.
To analyze how signals overlap or interact in time.
To smooth noisy data by combining it with a smoothing pattern.
Syntax
MATLAB
y = conv(x, h)
% x and h are vectors (arrays) representing signals
% y is the convolution result vector
The vectors x and h can be any length.
The output y will have length length(x) + length(h) - 1.
Examples
Convolve two small vectors. Result shows how the second vector affects the first.
MATLAB
y = conv([123], [45])
Convolution with a vector of ones sums parts of the first vector.
MATLAB
y = conv([100], [111])
Convolution with a filter that weights current and past values.
MATLAB
y = conv([23], [010.5])
Sample Program
This program convolves a simple signal x with a filter h that subtracts delayed values. It shows how the filter changes the signal.
MATLAB
% Define two signals
x = [1234];
h = [10 -1];
% Compute convolution
y = conv(x, h);
% Display result
disp('Convolution result:');
disp(y);
OutputSuccess
Important Notes
Convolution flips one vector and slides it over the other, multiplying and summing at each step.
Use conv for 1D signals. For images, use conv2.
Convolution length is longer than inputs; trim if needed for same size output.
Summary
Convolution combines two signals to see their combined effect.
Use conv(x, h) in MATLAB to compute it easily.
Output length is sum of input lengths minus one.
Practice
(1/5)
1. What does the MATLAB function conv(x, h) compute?
easy
A. The convolution of vectors x and h
B. The element-wise multiplication of x and h
C. The dot product of x and h
D. The sum of vectors x and h
Solution
Step 1: Understand the function purpose
The conv function in MATLAB is designed to compute the convolution of two vectors.
Step 2: Differentiate convolution from other operations
Convolution combines two signals to produce a third, different from element-wise multiplication, dot product, or sum.
Final Answer:
The convolution of vectors x and h -> Option A
Quick Check:
conv(x, h) = convolution [OK]
Hint: Remember conv() means convolution, not multiplication [OK]
Common Mistakes:
Confusing convolution with element-wise multiplication
Thinking conv() sums vectors
Mixing up dot product with convolution
2. Which of the following is the correct syntax to compute convolution of vectors a and b in MATLAB?
easy
A. conv(a, b)
B. convolve(a, b)
C. a * b
D. conv(a + b)
Solution
Step 1: Recall MATLAB convolution syntax
MATLAB uses the function conv(x, h) to compute convolution of two vectors.
Step 2: Check each option
conv(a, b) matches the correct syntax. convolve(a, b) is not a MATLAB function. a * b is matrix multiplication, not convolution. conv(a + b) has wrong argument format.
Final Answer:
conv(a, b) -> Option A
Quick Check:
Use conv(x, h) syntax [OK]
Hint: Use conv() with two arguments separated by comma [OK]
Common Mistakes:
Using non-existent function convolve()
Trying to multiply vectors with * for convolution
Passing only one argument to conv()
3. What is the length of the output vector when you compute conv([1 2 3], [4 5]) in MATLAB?
medium
A. 6
B. 3
C. 5
D. 4
Solution
Step 1: Identify lengths of input vectors
Vector [1 2 3] has length 3, and [4 5] has length 2.
Hint: Output length = sum of input lengths minus one [OK]
Common Mistakes:
Assuming output length equals input length
Adding lengths without subtracting one
Confusing convolution length with element-wise length
4. Consider the MATLAB code:
a = [1 2]; b = [3 4 5]; c = conv(a b);
What is the error in this code?
medium
A. Vectors a and b have different lengths
B. Missing comma between a and b in conv function
C. conv function does not exist in MATLAB
D. Using square brackets instead of parentheses
Solution
Step 1: Check syntax of conv function call
The function call conv(a b) is missing a comma between the two input vectors.
Step 2: Verify other options
Vectors can have different lengths for convolution. conv() is a valid MATLAB function. Square brackets are used correctly for vector definition, not in function call.
Final Answer:
Missing comma between a and b in conv function -> Option B
Quick Check:
Use comma to separate arguments in conv() [OK]
Hint: Separate arguments with comma inside conv() [OK]
Common Mistakes:
Omitting comma between function arguments
Thinking vectors must be same length
Confusing vector definition brackets with function call syntax
5. You want to convolve two signals x = [1 0 2] and h = [3 4] but only keep the output length equal to the length of x. Which MATLAB command achieves this?