Bode Plot in Matlab

1. Aug 15, 2014

roam

1. The problem statement, all variables and given/known data

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)}$

3. The attempt at a solution

I rewrote the transfer function as:

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

And used the following code:

And here is what I got:

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):

So what is wrong with my code?

Any help is greatly appreciated.

Attached Files:

File size:
10.5 KB
Views:
50
• experimental.jpg
File size:
13.2 KB
Views:
66
2. Aug 15, 2014

milesyoung

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:
$$\frac{V_\mathrm{out}}{V_\mathrm{in}} = \frac{R}{R + \frac{1}{s C}}$$
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 (Text):

s = tf('s');
sys = R/(R + 1/(s*C));

Maybe give that a try.

3. Aug 16, 2014

roam

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. Aug 23, 2014

jhae2.718

I'm late to the party, but the problem is you've defined the transfer function incorrectly.
Code (Text):

N=[1];
D=[1 w];

will produce$$\frac{1}{s+\omega_0};$$to get the desired TF of$$\frac{s}{s+\omega_0}$$you need to do
Code (Text):

N=[1 0];
D=[1 w];

The vectors defining the numerator and denominator of the TF are descending powers of $s$, so you need $[s^1\;s^0]$.