Department of Electrical Engineering
B.Tech Electrical & Electronics Engineering – IIT Jammu
This repository contains the complete collection of Signals & Systems laboratory experiments (1–9) implemented and analyzed using Python (NumPy, SciPy, and Matplotlib).
Each experiment explores both theoretical foundations and computational verification of key signal analysis concepts — from Fourier and Z-transforms to system stability and convolution.
- To study fundamental properties of continuous and discrete-time signals.
- To understand linear time-invariant (LTI) system behavior.
- To perform Fourier, Laplace, and Z-domain analysis.
- To verify system properties such as linearity, time-shifting, scaling, convolution & stability in different domains.
- To simulate and visualize system responses & properties using Python libraries.
| Exp. No. | Title | Key Topics / Outcomes |
|---|---|---|
| 1 | Introduction to Signal Generation and Classification | Generation of basic signals: unit step, ramp, exponential, sinusoidal, and impulse sequences. |
| 2 | Sampling Theorem and Signal Reconstruction | Visualization of the Nyquist Sampling Theorem, under-sampling and over-sampling effects, and reconstruction of continuous-time signals from discrete samples. |
| 3 | Convolution and System Response Analysis | Time-domain convolution using both analytical and Python-based methods (np.convolve, iterative looping). |
| 5 | Fourier Series Representation | Computation of Fourier coefficients for square and sawtooth waves; study of Gibbs phenomenon and reconstruction error. |
| 6 | Continuous-Time Fourier Transform (CTFT) | Derivation and numerical verification of CTFT for sinusoidal, rectangular, and exponentially decaying signals. |
| 7 | Z-Transform and ROC Analysis | Computation of Z-transforms, pole-zero plots, and visualization & interpretation of Region of Convergence (ROC) for various signals and understanding conditions for system stability. |
| 8 | Properties of Z-Transform | Experimental verification of linearity, time-shifting, scaling, time-reversal, and convolution properties of the Z-transform. |
| 9 | Discrete Fourier Transform (DFT) and Frequency Domain Analysis | Understanding Discrete Fourier Transform (DFT) and implementing N-point DFT using matrix-based computation and inverse DFT reconstruction. |
- 🐍 Python
- 📦
NumPy,SciPy,Matplotlib,SymPy - 💻 Jupyter Notebooks / VS Code for simulations and visualization
-
1: Successfully generated and visualized standard discrete-time and continuous-time signals (unit step, ramp, exponential, sinusoidal, and impulse), confirming theoretical definitions through Python-based simulation.
-
2: Verified the Nyquist Sampling Theorem by demonstrating perfect reconstruction at the Nyquist rate and distortion under under-sampling and over-sampling conditions.
-
3: Confirmed that linear time-invariant (LTI) system output obtained via direct convolution matches analytical and numerical convolution results, validating time-domain convolution theory.
-
4: (If applicable) Observed filtering effects and response characteristics for systems using impulse response computations and verified their stability via recursive implementations.
-
5: Computed and analyzed Fourier Series coefficients for periodic square and sawtooth signals, observing Gibbs phenomenon and amplitude doubling for odd harmonics during reconstruction.
-
6: Verified Continuous-Time Fourier Transform (CTFT) spectra of sinusoidal and exponentially decaying signals, showing correct placement of delta impulses and spectral broadening due to time-domain truncation.
-
7: Computed Z-transforms and plotted pole-zero diagrams; confirmed Region of Convergence (ROC) behavior for causal and anti-causal signals and observed sharper spectral peaks near poles.
-
8: Verified Z-transform properties — linearity, time-shifting, scaling, time-reversal, and convolution — by comparing analytical results with computational verification.
-
9: Successfully implemented Discrete Fourier Transform (DFT) and Inverse DFT (IDFT) using matrix formulation; confirmed reconstruction accuracy and observed frequency-domain periodicity.
- Understanding how transforms simplify signal and system analysis.
- Connection between time-domain operations and their Z/Fourier-domain effects.
- Practical demonstration of LTI system behavior and stability.
- Confidence in using Python as a simulation environment for EE analysis.
Signals-and-Systems-Lab/
│
├── README.md # Overview, experiments list, results summary
│
├── Lab1/
│ ├── Lab1_Report.pdf # Final submitted report
│ ├── Lab1_Code.ipynb # Jupyter notebook
│ ├── Lab1_Code.py # Optional Python script
│ ├── Figures/ # All plots generated
│ │ ├── unit_step.png
│ │ ├── ramp_signal.png
│ │ └── ...
│ ├── Data/ # CSV or input signals (if any)
│ └── Notes.md # Extra derivations/explanations (optional)
│
├── Lab2/
│ ├── Lab2_Report.pdf
│ ├── Lab2_Code.ipynb
│ ├── Figures/
│ │ ├── sampling.png
│ │ ├── aliasing.png
│ │ └── recon_sinc.png
│ ├── Data/
│ └── Notes.md
│
├── Lab3/
│ ├── Lab3_Report.pdf
│ ├── Lab3_Code.ipynb
│ ├── Figures/
│ │ ├── linear_conv.png
│ │ ├── circular_conv.png
│ │ └── zero_padding_effect.png
│ └── Notes.md
│
├── Lab4/
│ ├── Lab4_Report.pdf
│ ├── Lab4_Code.ipynb
│ ├── Figures/
│ └── Notes.md
│
├── Lab5/
│ ├── Lab5_Report.pdf
│ ├── Lab5_Code.ipynb
│ ├── Figures/
│ │ ├── square_fs.png
│ │ ├── sawtooth_fs.png
│ │ ├── gibbs.png
│ │ └── mse_vs_terms.png
│ └── Notes.md
│
├── Lab6/
│ ├── Lab6_Report.pdf
│ ├── Lab6_Code.ipynb
│ ├── Figures/
│ │ ├── ctft_cos.png
│ │ ├── ctft_rect.png
│ │ ├── ctft_windowed.png
│ └── Notes.md
│
├── Lab7/
│ ├── Lab7_Report.pdf
│ ├── Lab7_Code.ipynb
│ ├── Figures/
│ │ ├── x1_z_domain.png
│ │ ├── x2_z_domain.png
│ │ ├── roc_plots.png
│ │ ├── convolution_z_vs_time.png
│ └── Notes.md
│
├── Lab8/
│ ├── Lab8_Report.pdf
│ ├── Lab8_Code.ipynb
│ ├── Figures/
│ │ ├── linearity.png
│ │ ├── shifting.png
│ │ ├── scaling.png
│ │ ├── reversal.png
│ │ └── convolution_property.png
│ └── Notes.md
│
├── Lab9/
│ ├── Lab9_Report.pdf
│ ├── Lab9_Code.ipynb
│ ├── Figures/
│ │ ├── dft_matrix.png
│ │ ├── fft_vs_dft_runtime.png
│ │ └── fft_diagram.png
│ └── Notes.md
│
└── Common/
├── templates/ # Latex templates / report formatting
├── utils/ # Helper functions shared across labs
└── Signals/ # Frequently used sample signals
MIT License — feel free to use any code from this repo.