Problem Based Learning (PBL) Report
Signals and Systems (BE04009051)
NAME : PRAJAPATI VRAJKUMAR
HITESHKUMAR EN NUMBER : 250603109015
COLLAGE : GEC,GODHRA
DEPATMENT :
ELECTRICAL SEM : 4th
GOVERNMENT ENGINEERING CILLAGE GODHRA
Activity 1: signal operation coding
Title : developed code for CT & DT signal
Continuous Time signal
1. TIME SHIFTING SIGNAL:
// Time Shifting of a Continuous-Time (CT) Signal
clf(); // Clear current figure
t = -5:0.01:5; // Define time range
// Original Signal: A triangular pulse centered at 0
// Logic: 1 - |t| for |t| <= 1, else 0
x = (1 - abs(t)) .* (abs(t) <= 1);
// 1. Time Delay: x(t - 2) -> Shift Right by 2 units
t_delay = t - 2;
x_delay = (1 - abs(t_delay)) .* (abs(t_delay) <= 1);
// 2. Time Advance: x(t + 2) -> Shift Left by 2 units
t_advance = t + 2;
x_advance = (1 - abs(t_advance)) .* (abs(t_advance) <= 1);
// --- Plotting Results ---
subplot(3,1,1);
plot(t, x, 'b', 'linewidth', 2);
title("Original Signal x(t)");
xgrid();
subplot(3,1,2);
plot(t, x_delay, 'r', 'linewidth', 2);
title("Time Delay: x(t - 2) [Shift Right]");
xgrid();
subplot(3,1,3);
plot(t, x_advance, 'g', 'linewidth', 2);
title("Time Advance: x(t + 2) [Shift
Left]"); xlabel("Time (t)");
xgrid();
2. SCALING SIGNAL :
// Time Scaling of a Continuous-Time (CT) Signal
clf(); // Clear graphics window
t = -5:0.01:5; // Time range
// Original Signal: Triangular pulse centered at
0 x = (1 - abs(t)) .* (abs(t) <= 1);
// 1. Time Compression: x(2t) -> Squeezed by factor of 2
t_comp = 2 * t;
x_comp = (1 - abs(t_comp)) .* (abs(t_comp) <= 1);
// 2. Time Expansion: x(0.5t) -> Stretched by factor of 2
t_exp = 0.5 * t;
x_exp = (1 - abs(t_exp)) .* (abs(t_exp) <= 1);
// --- Plotting Results ---
subplot(3,1,1);
plot(t, x, 'b', 'linewidth', 2);
title("Original Signal x(t)");
xgrid();
subplot(3,1,2);
plot(t, x_comp, 'r', 'linewidth', 2);
title("Time Compression:
x(2t)"); xgrid();
subplot(3,1,3);
plot(t, x_exp, 'g', 'linewidth', 2);
title("Time Expansion: x(0.5t)");
xlabel("Time (t)");
xgrid();
3. REVARSAL SIGNAL :
// Time Reversal of a Continuous-Time (CT) Signal
clf(); // Clear graphics window
t = -5:0.01:5; // Time range
// Original Signal: A Ramp signal from 0 to 2
// It is 0 everywhere else.
x = t .* (t >= 0 & t <= 2);
// Time Reversal: x(-t)
// We replace 't' with '-t' in the signal definition
t_rev = -t;
x_rev = t_rev .* (t_rev >= 0 & t_rev <= 2);
// --- Plotting Results ---
subplot(2,1,1);
plot(t, x, 'b', 'linewidth', 2);
title("Original Signal x(t) - [Ramp from 0 to 2]");
xgrid();
subplot(2,1,2);
plot(t, x_rev, 'm', 'linewidth', 2);
title("Time Reversal: x(-t) - [Reflected across Y-axis]");
xlabel("Time (t)");
xgrid();
4. ADDITION :
clf();
t = -2:0.01:6; // Define time range
// Signal 1: A Positive Ramp starting at t=0
// Mathematical: x1(t) = t for t >= 0, capped at 2
x1 = t .* (t >= 0 & t <= 2) + 2 * (t > 2);
// Signal 2: A Delayed Step Signal starting at t=3
// Mathematical: x2(t) = 1 for t >= 3
x2 = 1 * (t >= 3);
// Resultant Signal: y(t) = x1(t) + x2(t)
y_add = x1 + x2;
// --- Plotting Results ---
subplot(3,1,1);
plot(t, x1, 'b', 'linewidth', 2);
title("Signal 1: Ramp Signal x1(t)");
gca().data_bounds = [-1,0 ; 6,4]; // Adjust axes for visibility
xgrid();
subplot(3,1,2);
plot(t, x2, 'g', 'linewidth', 2);
title("Signal 2: Step Signal x2(t)");
gca().data_bounds = [-1,0 ; 6,4];
xgrid();
subplot(3,1,3);
plot(t, y_add, 'r', 'linewidth', 2);
title("Result: Addition y(t) = x1(t) +
x2(t)"); xlabel("Time (t)");
gca().data_bounds = [-1,0 ; 6,4];
xgrid();
5. MULTIPLICATION OF SIGNAL:
clf();
t = -4:0.01:4; // Time range
// Signal 1: A Triangular Pulse (The "Envelope")
// Base from -2 to 2, Peak height 1 at t=0
x1 = (1 - abs(t)/2) .* (abs(t) <= 2);
// Signal 2: A higher frequency Sine Wave
x2 = sin(2 * %pi * 2 * t); // 2 Hz frequency
// Resultant Signal: y(t) = x1(t) .* x2(t)
// We use '.*' for element-by-element multiplication
y_mult = x1 .* x2;
// --- Plotting Results ---
subplot(3,1,1);
plot(t, x1, 'b', 'linewidth', 2);
title("Signal 1: Triangular Message x1(t)");
gca().data_bounds = [-4,-1.2 ; 4,1.2];
xgrid();
subplot(3,1,2);
plot(t, x2, 'g', 'linewidth', 1);
title("Signal 2: Sine Carrier x2(t)");
gca().data_bounds = [-4,-1.2 ; 4,1.2];
xgrid();
subplot(3,1,3);
plot(t, y_mult, 'r', 'linewidth', 2);
title("Result: Multiplication y(t) = x1(t) * x2(t)");
xlabel("Time (t)");
gca().data_bounds = [-4,-1.2 ; 4,1.2];
xgrid();
Discrete Time signal
1. TIME SHIFTING OF SIGNAL:
clf();
clear;
// 1. Data Setup
n = -5:10;
x = [zeros(1,5), ones(1,3), zeros(1,8)]; // Pulse at n=0,1,2
x_shift = [zeros(1,8), ones(1,3), zeros(1,5)]; // Shifted to n=3,4,5
// 2. Force open a specific Graphic
Window f = scf(0);
f.figure_name = "DT Shifting Result";
// 3. Draw Plot 1
subplot(2,1,1);
plot2d3('gnn', n, x); // 'gnn' ensures standard step look
e = gce(); [Link].mark_style = 9; // Add dots
xtitle("Original Signal x[n]");
// 4. Draw Plot 2
subplot(2,1,2);
plot2d3('gnn', n, x_shift);
e = gce(); [Link].mark_style = 9;
xtitle("Shifted Signal x[n-3]");
// 5. Force Scilab to show the window
show_window();
drawnow();
2. SCALING OF SIGNAL :
// RESET AND FORCE GRAPHICS
clf();
clear;
// 1. Define the original index and signal
n = 0:10;
x = n; // A simple ramp signal: 0, 1, 2, ..., 10
// 2. Time Scaling (Downsampling by 2)
// This picks every 2nd sample: x[0], x[2], x[4]...
n_scale = 0:1:length(n)/2;
x_scale = x(1:2:length(n));
// 3. Force open a specific Graphic
Window f = scf(0);
f.figure_name = "Discrete Time Scaling (Downsampling)";
// 4. Plot Original Signal
subplot(2,1,1);
plot2d3('gnn', n, x); // Discrete stem plot
e = gce(); [Link].mark_style = 9; // Add dots to
stems xtitle("Original Ramp x[n]");
xgrid();
// 5. Plot Scaled Signal
subplot(2,1,2);
// Adjust n axis for the downsampled signal length
n_down = 0:length(x_scale)-1;
plot2d3('gnn', n_down, x_scale);
e = gce(); [Link].mark_style = 9;
xtitle("Scaled Signal x[2n] (Downsampled by 2)");
xlabel("n (Samples)");
xgrid();
// 6. Force display
show_window();
drawnow();
3. REVERSAL OF SIGNAL :
// RESET AND FORCE GRAPHICS
clf();
clear;
// 1. Define index and an asymmetrical signal
n = -5:5;
// Original: A ramp from n=0 to n=3, else 0
x = [0, 0, 0, 0, 0, 0, 1, 2, 3, 0, 0];
// 2. Time Reversal: x[-n]
// We flip the array 'x' horizontally using 'flipdim'
x_rev = flipdim(x, 2);
// 3. Force open Graphic Window
f = scf(0);
f.figure_name = "DT Time Reversal";
// 4. Plot Original Signal
subplot(2,1,1);
plot2d3('gnn', n, x);
e = gce(); [Link].mark_style = 9; // Add dots
xtitle("Original Signal x[n]");
xgrid();
// 5. Plot Reversed Signal
subplot(2,1,2);
plot2d3('gnn', n, x_rev);
e = gce(); [Link].mark_style = 9;
xtitle("Reversed Signal x[-n] (Reflected)");
xlabel("n (Samples)");
xgrid();
// 6. Force display
show_window();
drawnow();
4. MULTIPLICATION OF SIGNAL :
clf();
clear;
// 1. Define the index n
n = -5:10;
// 2. Signal 1: A Ramp Signal r[n]
// Mathematical: x1[n] = n for n >= 0
x1 = n .* (n >= 0);
// 3. Signal 2: A Pulse/Window Signal
// Mathematical: x2[n] = 1 for 0 <= n <= 5, else 0
x2 = (n >= 0 & n <= 5);
// 4. Multiplication: y[n] = x1[n] .* x2[n]
// Note the '.*' for element-by-element multiplication
y_mult = x1 .* x2;
// 5. Force open Graphic Window
f = scf(0);
f.figure_name = "Discrete Time Multiplication";
// 6. Plotting
subplot(3,1,1);
plot2d3('gnn', n, x1);
e1 = gce(); [Link].mark_style = 9;
xtitle("Signal 1: Ramp x1[n]");
subplot(3,1,2);
plot2d3('gnn', n, x2);
e2 = gce(); [Link].mark_style = 9;
xtitle("Signal 2: Pulse Window x2[n]");
subplot(3,1,3);
plot2d3('gnn', n, y_mult);
e3 = gce(); [Link].mark_style = 9;
xtitle("Result: y[n] = x1[n] * x2[n]");
xlabel("n (Samples)");
// 7. Final Force Display
show_window();
drawnow();
Activity 2 : system property verification via simulation
Title : simulate the system
1. LINEARITY SYSTEM :
// Linearity Test for a System: y(t) = 2 * x(t)
clf();
clear;
t = 0:0.01:2;
// 1. Define Two Inputs
x1 = sin(2*%pi*t); // Input 1
x2 = cos(2*%pi*t); // Input 2
a = 2; b = 3; // Scaling constants
// 2. Path A: Apply System to Combined Inputs T[a*x1 + b*x2]
x_combined = a*x1 + b*x2;
y_pathA = 2 * x_combined; // The System Operation
// 3. Path B: Combine Scaled Outputs a*T[x1] + b*T[x2]
y1 = 2 * x1;
y2 = 2 * x2;
y_pathB = a*y1 + b*y2;
// 4. Verification (Difference should be zero)
diff = y_pathA - y_pathB;
// --- Plotting ---
f = scf(0);
subplot(2,1,1);
plot(t, y_pathA, 'b', 'linewidth', 2);
plot(t, y_pathB, 'r--', 'linewidth', 2);
xtitle("Comparison of Path A and Path B");
hl = legend(["T[ax1 + bx2]"; "aT[x1] + bT[x2]"]);
subplot(2,1,2);
plot(t, diff, 'g');
xtitle("Difference (If zero, System is Linear)");
xlabel("Time (t)");
show_window();
drawnow();
2. TIME IN-VARENET SYSTEM :
// Time-Invariance Test: y(t) = x(t)^2
// FORCE CLEAR
clf();
clear;
// 1. Time Setup
t = 0:0.01:5;
tau = 1; // Delay of 1 second
// 2. Original Input and its System Output
x = sin(2*%pi*t); // Original Signal
y = x.^2; // Original Output (System squares the input)
// 3. Path A: System response to Delayed Input
// We delay the input first: x(t - tau)
x_delayed = sin(2*%pi*(t - tau));
y_pathA = x_delayed.^2;
// 4. Path B: Delayed version of Original Output
// We take the original output 'y' and shift it
y_pathB = [zeros(1, tau/0.01), y(1:$-tau/0.01)];
// 5. Force Window and Plot
f = scf(1); // Force window #1
f.figure_name = "Time Invariance Test Results";
subplot(2,1,1);
plot(t, y_pathA, 'b', 'linewidth', 2);
xtitle("Path A: System[x(t - tau)]");
xgrid();
subplot(2,1,2);
plot(t, y_pathB, 'r--', 'linewidth', 2);
xtitle("Path B: y(t - tau)");
xlabel("Time (t)");
xgrid();
// FINAL FORCE TO SHOW
show_window();
drawnow();
3. CAUSALITY SYSTEM :
// Verification of
Causality clf();
clear;
t = 0:0.01:5;
x = (t >= 1 & t <= 2); // Input pulse from t=1 to t=2
// --- System 1: Causal System y(t) = x(t) + x(t - 0.5) ---
// Note: Output starts at t=1 (when input starts)
x_delayed = ( (t - 0.5) >= 1 & (t - 0.5) <= 2 );
y_causal = x + x_delayed;
// --- System 2: Non-Causal System y(t) = x(t + 1) ---
// Note: Output starts at t=0 (BEFORE input starts at t=1!)
y_noncausal = ( (t + 1) >= 1 & (t + 1) <= 2 );
// --- Plotting with Force Window
---f = scf(0);
f.figure_name = "Causality Test";
subplot(2,1,1);
plot(t, x, 'k--', 'linewidth', 1); // Original Input for reference
plot(t, y_causal, 'b', 'linewidth', 2);
xtitle("Causal System: Output depends on Present & Past");
legend(["Input x(t)"; "Output y(t)"]); xgrid();
subplot(2,1,2);
plot(t, x, 'k--', 'linewidth', 1);
plot(t, y_noncausal, 'r', 'linewidth', 2);
xtitle("Non-Causal System: Output starts BEFORE Input (depends on Future)");
legend(["Input x(t)"; "Output y(t)"]);
xlabel("Time (t)"); xgrid();
show_window();
drawnow();
4. STABILITY SYSTEM :
// Verification of Stability (BIBO)
clf();
clear;
t = 0:0.1:10;
x = ones(1, length(t)); // Bounded Input: A constant 1
// --- System 1: Stable System y(t) = sin(x(t)) ---
// The output will stay between -1 and 1
y_stable = sin(x);
// --- System 2: Unstable System y(t) = exp(t) * x(t) ---
// The output grows to infinity as time increases
y_unstable = exp(t) .* x;
// --- Plotting with Force Window
---f = scf(0);
f.figure_name = "Stability Test (BIBO)";
subplot(2,1,1);
plot(t, y_stable, 'b', 'linewidth', 2);
xtitle("Stable System: Output remains Bounded (finite)");
gca().data_bounds = [0,-2 ; 10,2]; // Keep scale clear
xgrid();
subplot(2,1,2);
plot(t, y_unstable, 'r', 'linewidth', 2);
xtitle("Unstable System: Output grows to
Infinity"); xlabel("Time (t)");
xgrid();
// Force the window to
show show_window();
drawnow();
Activity 3 : DIY Mini Project
Title : Active Low Pass Filter For Reconstruction
Introduction
Define the project’s purpose. A reconstruction filter (also known as an anti-imaging
filter) is used in Digital-to-Analog Conversion (DAC) to smooth out "stepped" or
"staircase" output signals into a continuous analog waveform.
Objective: To design and implement a first-order active low-pass filter to reconstruct a
smooth analog signal from a sampled input.
2. Theory & Circuit Design
Explain why an active filter is used rather than a passive one. Key advantages include
providing gain (amplification) and high input impedance to prevent loading on the
previous stage.
Key Formula: The cutoff frequency (𝒇𝒄) is determined by the resistor (R)
𝒇𝒄
and capacitor (C):
𝟏
= 𝟐𝝅𝑹𝑪
Gain: For a non-inverting configuration, gain (𝑭𝒄) is set by feedback
resistors (𝑹𝒇) and (𝑹𝒂):
𝑹𝒇
𝑨𝒗 = 𝟏 +
𝑹𝒂
The working of an Active Low-Pass Reconstruction Filter can be broken down into three
simple steps. Essentially, it takes a "staircase" digital signal and smooths it out into a clean
analog wave.
1. Signal Entry (The RC Network)
The input signal (which looks like sharp steps from a DAC) first hits the Resistor (R)
and Capacitor (C).
Low Frequencies: The capacitor has high reactance (resistance to AC), so low-
frequency signals pass easily to the Op-Amp.
High Frequencies: The capacitor acts like a short circuit to ground for high-
frequency noise and "sharp corners" of the steps. This effectively "rounds off" the
signal.
2. Buffer and Amplification (The Op-Amp)
The Op-Amp is the "Active" part. It has a High Input Impedance, meaning it doesn't
"drain" or "load" the signal coming from your microcontroller or DAC.
Because it’s in a Non-Inverting Configuration, it takes that rounded signal and
provides Gain.
The feedback resistors (𝑅𝑓) and (𝑅1)) determine how much the signal is amplified. If
you just want a 1:1 copy, you can set it up as a "Voltage Follower."
3. Reconstruction (The Output)
By removing the high-frequency components (the "noise" created by sampling), the
circuit "reconstructs" the original smooth waveform.
The Low Output Impedance of the Op-Amp ensures that the signal stays strong even
when you connect it to a speaker, headphones, or another circuit .
Components Required
List the hardware needed for your DIY setup:
Operational Amplifier: Commonly an IC 741 or TL081.
Resistors & Capacitors: Specific values based on your target \(f_{c}\) (e.g.,
\(10\text{ k}\Omega\) and \(0.01\text{ }\mu\text{F}\) for a \(1.59\text{ kHz}\)
cutoff).
Power Supply: Typically a dual symmetrical supply (e.g., \(\pm12\text{V}\) or
\(\pm15\text{V}\)).
Tools: Breadboard, jumper wires, function generator, and oscilloscope
Implementation Procedure
1. Simulation: Use tools like LTSpice or Multisim to verify the frequency response
before building.
2. Assembly: Construct the circuit on a breadboard.
3. Measurement: Apply a sine wave at various frequencies. Record the output voltage
(𝑉𝑜𝑢𝑡) and calculate gain in dB:
𝑉𝑜𝑢𝑡
(
)
Gain
(dB)=20𝑙𝑜𝑔10
𝑉𝑖𝑛
Results & Discussion
Frequency Response Curve: Plot gain (dB) vs. frequency (Hz) on semi-log paper.
The curve should be flat in the passband and drop at -20 dB/decade after the
cutoff.
Reconstruction Proof: Show "Before" (stepped/sampled signal) and "After"
(smooth sine wave) oscilloscope screenshots to prove the reconstruction effect.
Conclusion
This project successfully demonstrates how an active low-pass filter can smooth out
"staircase" digital signals into clean analog waves. By using an Op-Amp, the circuit not only
removes high-frequency noise but also keeps the signal strong and stable. The final results
show that the output closely matches the original signal with very little distortion. Overall,
this filter is a simple yet powerful tool for high-quality sound and signal reconstruction
Activity 4 : Research & Application Review
Title : Applications of Signals and Systems in Power
Electronics, Electrical Machines, and Protection Systems
1. Introduction
Signals and Systems is a core subject in electrical engineering that deals with the analysis and
processing of signals. A signal is a function that conveys information about a physical
phenomenon such as voltage, current, or power. A system is an entity that processes input
signals to produce an output.
In real-world engineering, signals and systems concepts are widely used in:
Power electronics
Electrical machines
Protection systems
Important tools such as Fourier Series, Fourier Transform, and Laplace Transform help
engineers analyze system behavior in both time and frequency domains.
2. Application in Power Electronics
Power electronics involves conversion and control of electrical power using semiconductor
devices.
2.1 Harmonic Analysis using Fourier Series
Output of inverters and converters is usually non-sinusoidal, containing harmonics.
Using Fourier Series:
Any waveform can be expressed as sum of sine and cosine components
Helps identify harmonic frequencies
Application:
Design of filters to reduce harmonics
Improvement of power quality
2.2 PWM Signal Analysis
Pulse Width Modulation (PWM) is widely used in
inverters. Signals & Systems helps to:
Analyze switching signals
Study frequency spectrum using Fourier Transform
2.3 System Modeling of Converters
Converters behave like dynamic systems.
Using Laplace Transform:
Analyze transient response
Design controllers
Check system stability
3. Application in Electrical Machines
Electrical machines operate using electrical signals and require analysis for performance and
control.
3.1 Transient Analysis
During starting or fault conditions, machines show transient
behavior. Using Laplace Transform:
Analyze current and voltage variation
Study dynamic response
3.2 Condition Monitoring
Faults in machines generate vibration signals.
Using Fourier Transform:
Convert time signal → frequency domain
Detect faults such as:
Bearing failure
Rotor imbalance
3.3 Motor Control Systems
Modern motor drives use control systems.
Signals & Systems helps in:
System modeling
Controller design (PID control)
Stability analysis
4. Application in Protection Systems
Protection systems detect and isolate faults in power systems.
◆ 4.1 Fault Detection
Faults cause sudden changes in current and voltage.
Signal processing helps:
Detect abnormal conditions
Classify faults
4.2 Digital Relays
Modern relays use digital signal processing.
Fourier Transform is used to:
Extract fundamental frequency (50 Hz)
Filter unwanted harmonics
◆ 4.3 Travelling Wave Protection
High-speed protection uses wave propagation signals.
Analysis in:
Time domain
Frequency domain
5. Real Application Case Study
PWM Inverter in Solar Power System
Solar panels generate DC power
Inverter converts DC → AC using PWM technique
Output waveform is not pure sine wave
Using Signals & Systems:
Fourier Series is used to analyze harmonics
Filters are designed to reduce distortion
System response is analyzed for stability
Result:
Improved efficiency
Better power quality
Reliable operation
6. Diagrams
◆ (a) PWM Waveform
(b) Block Diagram of System
(c) Harmonic Waveform
7. Importance of Signals and Systems
Helps in understanding real-world electrical signals
Essential for system design and analysis
Widely used in modern technologies like:
Smart grids
Electric vehicles
Renewable energy systems
8. Conclusion
Signals and Systems is a powerful subject that plays a vital role in practical electrical engineering
applications. It provides essential tools to analyze, design, and improve systems used in
power electronics, machines, and protection. By using techniques like Fourier and Laplace
transforms, engineers can ensure efficient, stable, and safe operation of modern electrical
systems.
9. References
Oppenheim & Willsky – Signals and Systems
B.P. Lathi – Linear Systems and Signals
NPTEL Lectures on Signals and Systems
IEEE Research Papers on Power Electronics and Protection Systems