Objectives
1. Circuit ka transfer function (H(s)) derive karna (nodal/mesh).
2. Frequency response (Bode), step response, transient response analysis.
3. Resonant frequency, bandwidth, Q-factor compute karna (theory + simulation).
4. LTspice/Multisim netlist aur simulation results compare karna with theory.
5. Practical setup: Arduino function generator + simple ADC measurement se validation.
6. Deliverables: pdf report, code (matlab/octave or python), spice netlist, breadboard photos, presentation (8 slides).
---
Level
Work / Job level — expected outcome: clean report, reproducible code, working prototype, clear results and comparisons.
---
Components (suggested)
Resistors: 1 kΩ, 10 kΩ (1/4 W)
Inductor: 10 mH (or 4.7 mH — see notes)
Capacitor: 100 nF (0.1 µF) NP0/C0G preferred
Arduino Uno (for signal generation / ADC)
Signal amplifier (optional) or op-amp (TL072) if you want active measurement
Breadboard, jumper wires, oscilloscope (or pc sound card / adc + serial logging)
multimeter
---
circuit (passive series rlc bandpass — simple and demonstrative)
vin --- r --- l --- c --- gnd
|
vout (across c)
better version (voltage across series r-l-c gives series response). For a series RLC driven by Vin, Vout across C (or across R) gives different responses. For bandpass take Vout across R in a series RLC; for bandstop take across L or C. We'll analyze Vout across R (series RLC band-pass).
Component example values (recommended for demo):
R = 1 kΩ
L = 10 mH
C = 100 nF
---
Theoretical Analysis (short)
1. Write impedance: .
2. Total series impedance: .
3. Voltage across R: . So transfer function:
H(j\omega)=\frac{V_R}{V_{in}}=\frac{R}{R+j\omega L+\frac{1}{j\omega C}}.
5. Resonant frequency:
\omega_0=\frac{1}{\sqrt{lc}},\quad f_0=\frac{1}{2\pi\sqrt{lc}}.
Q = \frac{1}{R}\sqrt{\frac{L}{C}}.
---
Sample numeric calculations (with chosen values)
Using :
.
.
.
Series Q: .
(Interpretation: with R=1k the Q is low — peak is broad. Jika aapko sharper peak chahiye to reduce R or change L/C.)
---
SPICE netlist (LTspice compatible)
* Series RLC bandpass (Vout across R)
Vin N001 0 SIN(0 1 5k) ; 1V amplitude, start 5kHz sweep example
R1 N001 N002 1k
L1 N002 N003 10m
C1 N003 0 100n
Vout N001 N002 ; measure across R (node N002 relative to input)
.ac dec 100 100 100k
.tran 0 5m
.backanno
.end
(For Bode use .ac dec and plot V(N002)/V(N001) or use V(out)/Vin.)
---
MATLAB / Octave code (transfer function, bode, step)
R=1e3; L=10e-3; C=100e-9;
s = tf('s');
Z = R + s*L + 1/(s*C);
H = R./Z; % transfer function V_R/Vin
% Bode
figure; bode(H); grid on;
% Step response
figure; step(H); grid on;
% Resonant values
f0 = 1/(2*pi*sqrt(L*C));
Q = (1/R)*sqrt(L/C);
disp([f0,Q]);
Python (scipy) code — Bode + compute f0
import numpy as np
from scipy import signal
import
matplotlib.pyplot as plt
R=1e3; L=10e-3; C=100e-9
# Series RLC transfer from Vin to VR: H(s)=R/(R + sL + 1/(sC))
# Convert to numerator/denominator polynomial
# Multiply numerator & denominator by s to remove 1/s term:
# H(s) = R*s / (R*s + s^2*L + 1/C)
num = [R, 0] # R*s -> coefficients for s^1 and s^0
den = [L, R, 1/C] # s^2*L + s*R + 1/C
sys = signal.TransferFunction(num, den)
w, mag, phase =
signal.bode(sys)
plt.figure(); plt.semilogx(w, mag);
plt.title('Magnitude (dB)');
plt.grid(True)
plt.figure(); plt.semilogx(w, phase);
plt.title('Phase (deg)');
plt.grid(True)
f0 = 1/(2*
np.pi*
np.sqrt(L*C))
Q = (1/R)*
np.sqrt(L/C)
print('f0=', f0, 'Hz Q=', Q)
plt.show()
---
Experimental setup (practical validation)
1. Build series R-L-C on breadboard using recommended values.
2. Use Arduino as a low-frequency function generator (pwm + rc smoothing or use dac on some boards), or use pc audio output (with series coupling cap) for 20 hz–20 khz. Output amplitude ~1Vpp into circuit.
3. Measure Vin and Vout using:
Oscilloscope (best); or
Arduino ADC (sample Vin and Vout using two analog inputs) — send samples over Serial to PC and plot.
4. Sweep frequency from 100 Hz to 100 kHz (log sweep) and record amplitudes; plot Bode (mag vs freq). Compare measured f0 and bandwidth with theoretical values.
Arduino measurement note: Arduino ADC max sample rate 5 kHz Arduino can still sample small sets but use Nyquist caution.
---
What to include in the final deliverable (I will prepare if you want)
1. PDF report (6–10 pages): Abstract, Introduction, Theory (derivations), Component selection, Simulation setup & results, Experimental setup & photos, Results comparison (table + plots), Conclusion, References.
2. Code files: MATLAB .m, Python .py, LTspice .asc or .net file.
3. Breadboard wiring images + annotated schematic.
4. Presentation (8 slides) — ready for university/job demo.
5. Grading rubric & test cases.
---
Presentation (8 slides) — quick outline
1. Title + Author + Objective
2. Background & Theory (key equations)
3. Circuit Diagram & Components
4. Theoretical results (f0, Q, expected Bode)
5. Simulation (LTspice) — Bode & transient plots
6. Experimental setup — photos + measurement method
7. Results comparison (table + overlay plots)
8. Conclusion + Future Improvements
---
Evaluation rubric (for interview / evaluator)
Theory correctness & derivation — 25%
Simulation match with theory — 20%
Experimental implementation & data quality — 25%
Code quality & reproducibility — 15%
Presentation & documentation — 15%
---
Extensions / Advanced options (pick any)
Make the filter active using op-amp ⇒ higher Q, gain control.
Implement automatic frequency sweep and logging with Arduino + Python GUI.
Replace passive with multiple feedback band-pass (narrower band, higher Q).
Add noise analysis and SNR measurements (important for robotics sensors).
---
Quick next steps — main choices (no need to answer but pick one to get files)
I can now (pick one and I’ll produce immediately in this turn): A. Generate full pdf report + 8-slide presentation + code (matlab & python) + ltspice netlist.
B. Give only circuit diagram + LTspice file + MATLAB/Python code (lighter).
C. Provide Arduino measurement code + sample data logger + plotting script (for the experimental part).
Delivery term: Not specified