Signals and systems
Exp. No : 5
Date: 23/09/2024 Convolution
AIM :
To demonstrate convolution in both continuous and discrete-time systems
and observe its effects on signals through Simulation.
SCILAB 6.1.1
APPARATUS REQUIRED:
THEORY:
Convolution:
Convolution is a mathematical operation that combines two functions to produce a
third function. It expresses how the shape of one function is modified by another. In
the context of signals and systems, convolution is used to determine the output of a
linear time-invariant (LTI) system when given an input signal and the system's
impulse response.
Continuous-time convolution:
●Definition:
Convolution is a mathematical operation that combines two signals to produce
a third signal. In continuous-time systems, it's represented by the integral:
Explanation:
x(t): The input signal.
h(t): The impulse response of the system.
y(t): The output signal resulting from the
convolution.
τ : A dummy variable of integration.
1
Signals and systems
Interpretation:
Convolution can be thought of as "sliding" the impulse response h(t)
across the input signal x(t) and integrating the product at each time instant.
The result is the output signal y(t).
Convolution in Discrete-Time Systems:
●Definition:
Similar to continuous-time, convolution in discrete-time systems is
represented by the sum:
Explanation:
x[n]: The input signal.
h[n]: The impulse response of the system.
y[n]: The output signal resulting from the convolution.
k: A dummy variable of summation.
Interpretation:
Convolution in discrete-time can be visualized as "flipping" the impulse
response h[n] and sliding it across the input sequence x[n], summing the
products at each time index.
Applications of Convolution:
● Signal processing: Filtering, modulation, demodulation, and correlation.
● Image processing: Edge detection, image blurring, and sharpening.
● Control systems: System analysis and design.
● Communication systems: Channel equalization and matched filtering.
2
Signals and systems
SOURCE CODE:
i) Convolution for continuous signal
t = poly(0, 't'); // Define variables
tau = poly(0, 'tau');
// Define the signals
x = tau * heaviside(tau); // Signal x(tau) = tau * u(tau)
h = heaviside(t - tau); // Signal h(t - tau) = u(t - tau)
// Convolution integral
y = int(x * h, tau, -%inf, %inf); // Convolution integral over –infinity to +infinity
// Simplify the result
y_sim = simplify(y);
// Display the convolution result
disp('convolution result y(t):');
disp(y_sim);
Matlab Output :
convolution result y(t):
(t^2*heaviside(t))/2
ii)Convolution for Discrete signal:
x = input('Enter input sequence: ');// Prompt user to enter the input sequence
h = input('Enter impulse sequence: ');// Prompt user to enter the impulse sequence
subplot(2, 2, 1);// Create a subplot for the input sequence
plot2d3(x); // Plot the input sequence
xlabel('time'); // Label for x-axis
ylabel('amplitude'); // Label for y-axis
title('Input Sequence'); // Title for the plot
subplot(2, 2, 2);
plot2d3(h);
xlabel('time');
ylabel('amplitude');
title('Impulse Sequence');
// Determine the lengths of the input and impulse sequences
x1 = length(x); // Length of the input sequence
x2 = length(h); // Length of the impulse sequence
// Calculate the length of the convolution result
ny = x1 + x2 - 1; // Length of the convolution result
y = zeros(1, ny); // Initialize the output array for the convolution result
// Perform the convolution operation
for i = 1:x1 // Loop over the input sequence
for j = 1:x2 // Loop over the impulse sequence
y(i + j - 1) = y(i + j - 1) + x(i) * h(j); // Update the output array
end
end
subplot(2, 2, 3);// Create a subplot for the convolution result
plot2d3(y); // Plot the convolution result
xlabel('time'); // Label for x-axis
3
Signals and systems
ylabel('amplitude'); // Label for y-axis
title('Convolution Result'); // Title for the plot
GRAPHS:
RESULT:
The experiment successfully demonstrated the concept of convolution in both
continuous and discrete-time systems, and the results aligned with the expected behavior
of convolution.