Bode Plot in Matlab

  • Thread starter roam
  • Start date
  • #1
1,266
11

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

Answers and Replies

  • #2
818
67
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 1 person
  • #3
1,266
11
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). :)
 
  • #4
jhae2.718
Gold Member
1,161
20
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 1 person

Related Threads on Bode Plot in Matlab

  • Last Post
Replies
0
Views
2K
  • Last Post
Replies
1
Views
4K
  • Last Post
Replies
5
Views
1K
  • Last Post
Replies
4
Views
665
  • Last Post
Replies
4
Views
15K
  • Last Post
Replies
2
Views
1K
  • Last Post
Replies
2
Views
806
  • Last Post
2
Replies
40
Views
4K
  • Last Post
Replies
0
Views
1K
  • Last Post
Replies
4
Views
3K
Top