Bode Plot Matlab Homework: High Pass Filter

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
3 replies · 4K views
roam
Messages
1,265
Reaction score
12

Homework Statement



I'm trying to make a theoretical Bode plot of a High pass filter (made up of a capacitor and a resistor). The transfer function is:

##T=\frac{V_{out}}{V_{in}}= \frac{R}{R+1/(j\omega C)} = \frac{1}{1-j\omega_0 / \omega}##

With a corner frequency of 5 kHz or in radians:

##\omega_0 = \frac{1}{RC} = \frac{1}{(1440.96 \Omega)(22 \ nF)}##

The Attempt at a Solution



I rewrote the transfer function as:

##\frac{s}{s+\omega_0}## where s=jω

And used the following code:

w=1/(1440.96*(22e-9))

N=[1];
D=[1 w];
sys = rss(5);
h = bodeplot(sys);
setoptions(h,'FreqUnits','Hz','PhaseVisible','off');
h=bode(N,D);

And here is what I got:

qrdjc7.jpg


Clearly this is wrong, it is not the graph of a high-pass filter. Here is my experimental result (how the curve should look like):

iqg9vp.jpg


So what is wrong with my code? :confused:

Any help is greatly appreciated.
 

Attachments

  • theoretical.jpg
    theoretical.jpg
    10.5 KB · Views: 597
  • experimental.jpg
    experimental.jpg
    13.2 KB · Views: 550
Physics news on Phys.org
MATLAB usually expects that when you're working with transfer functions, they're expressed in the complex variable of the Laplace transform. You can make things easier for yourself if you instead use:
[tex] \frac{V_\mathrm{out}}{V_\mathrm{in}} = \frac{R}{R + \frac{1}{s C}}[/tex]
Both commands 'bodeplot' and 'bode' expect an argument of 'Dynamic System Model' type. Here's a trick you can use to make your code more readable when creating these objects:
Code:
s = tf('s');
sys = R/(R + 1/(s*C));

Maybe give that a try.
 
  • Like
Likes   Reactions: 1 person
Thank you so much for the prompt reply. I modified my code as you instructed, and the resulting curve looks correct (I get the 5kHz corner frequency where required). :)
 
I'm late to the party, but the problem is you've defined the transfer function incorrectly.
Code:
N=[1];
D=[1 w];
will produce[tex]\frac{1}{s+\omega_0};[/tex]to get the desired TF of[tex]\frac{s}{s+\omega_0}[/tex]you need to do
Code:
N=[1 0];
D=[1 w];

The vectors defining the numerator and denominator of the TF are descending powers of [itex]s[/itex], so you need [itex][s^1\;s^0][/itex].
 
  • Like
Likes   Reactions: 1 person