DIGITAL SIGNAL PROCESSING
SUBJECT CODE – DSP (EC 301)
LAB FILE
SUBMITTED BY :
Vikash Kumar Yadav
23/EC/227
SUBMITTED TO:
Dr. Chhavi Dhiman
Assistant Professor,
Department of Electronics & Communication Engineering
Delhi Technological University,
Delhi, India
DEPARTMENT OF ELECTRONICS AND COMMUNICATION
DELHI TECHNICAL UNIVERSITY
(FORMERLY DELHI COLLEGE OF ENGINEERING)
BAWANA ROAD, DELHI ROAD -110042
(2025-26)
Experiment 1
Aim: To perform circular conv and implement linear conv using circular
conv Software Used: Matlab
Theory:
1. Convolution in Discrete-Time
In discrete-time signal processing, convolution is an important operation that describes the output of a Linear Time Invariant (LTI)
system.
For two sequences x1[n] and x2[n], the linear convolution is defined as:
y[n] = Σ x1[k] * x2[n-k]
If x1[n] has length L1 and x2[n] has length L2, then the linear convolution result has length:
L = L1 + L2 - 1
2. Circular Convolution
Circular convolution (also called cyclic or periodic convolution) is defined for finite-length sequences of equal length N, assuming
periodic extension.
For sequences x1[n] and x2[n]:
y[m] = Σ x1[n] * x2[(m-n) mod N], m = 0,1,2,...,N-1
Here, the modulo-N operation ensures that the indices wrap around, which is the essence of circular convolution.
Circular convolution is directly related to the Discrete Fourier Transform (DFT):
DFT{x1 ⊛ x2} = DFT{x1} * DFT{x2}
where ⊛ denotes circular convolution.
3. Relation Between Circular and Linear Convolution
The key difference:
- Linear convolution gives a result of length L1 + L2 - 1.
- Circular convolution of length N = max(L1,L2) produces only N samples, which is generally not equal to the linear
convolution result.
To make circular convolution equivalent to linear convolution, we use zero-padding:
- Zero-pad both input sequences to length N ≥ L1 + L2 - 1
- Perform circular convolution of these padded sequences.
- The result will exactly match linear convolution.
Code:
Output:
Conclusion
In this experiment, we implemented circular convolution manually using a for-loop, verified it with MATLAB’s inbuilt cconv()
function, and compared it with linear convolution obtained using conv(). We observed that circular convolution produces results
of limited length equal to the chosen period NNN, while linear convolution produces a longer sequence of length L1+L2−1. By
applying zero-padding to the input sequences before performing circular convolution, we were able to make the circular
convolution result exactly match the linear convolution result. This confirms the theoretical relation between linear and circular
convolution.