Difference between bode and my calculation of amplitude of the frequency response

Hi every one, I want to calculate the frequency response of a system, for example :
I dont know why my answer is different from tf and bode function of MATLAB: I substitute s with jw and use abs function as below: fre=linspace(1e-1,100,100); omg=2*1i*pi.*fre; H=tf([1,0],[1,2,3]); bode(H) figure Hm=(omg)./((omg).^2+2.*omg+3); semilogx(fre,20.*log10(abs(Hm))) (I mean the amplitude part). It seems my calculation is wrong but I need to use my method instead of tf function. How can I fix it? Sorry. I am not an electrical engeering student and perhaps my question is very simple!! many thanks in advance

 Accepted Answer

The ‘fre’ vector needs to be created in logspace and it then needs to be divided by because the frequency axis is in rad/sec. Then, it matches reasonably closely to the bode result.
fre=logspace(-1,2,100)/(2*pi);
omg=2*1i*pi.*fre;
H=tf([1,0],[1,2,3]);
bode(H)
figure
Hm=omg./((omg).^2 + 2.*omg + 3);
semilogx(fre*2*pi,20.*log10(abs(Hm)))
.

4 Comments

OMG!!
Dear Star Strider, you ve helped me alot. I don't know how to thank you. I didnt recognise the problem and it took me in the trouble.
I really appreciate and hope you the best
As always, my pleasure!
The solution was not immediately obvious to me, and it took a bit of experimenting to figure it out.

Sign in to comment.

More Answers (0)

Categories

Products

Release

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!