Changing magnitude to decibel in freqs plot
19 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I have the following transfer funtion for a analogue low pass filter:
39.476/(s^2+8.886 s+39.476)
I am using "freqs" to plot the frequency:
a=[1,8.886,39.476]
b=39.476
w=logspace(-1,3)
freqs(b,a,w)
However I want my plot to show magnitude in decibels, i have tried the mag2db command but that is messig with the results, any suggestions?
0 Kommentare
Antworten (1)
Roshni Garnayak
am 5 Nov. 2019
You can store the output of ‘freqs’ in a variable, say h. The following line of code would give you the magnitude in decibels:
mag = mag2db(abs(h));
For plotting the magnitude and phase response, you can use the ‘semilogx’ function which plots the x-axis in log scale and the y-axis in linear scale. You can find the code for that below:
h = freqs(b,a,w);
mag = mag2db(abs(h));
phase = angle(h);
phasedeg = phase*180/pi;
subplot(2,1,1), semilogx(w,mag), grid on
xlabel 'Frequency (rad/s)', ylabel Magnitude
subplot(2,1,2), semilogx(w,phasedeg), grid on
xlabel 'Frequency (rad/s)', ylabel 'Phase (degrees)'
For further capabilities of the ‘freqs’ function, refer to the examples in the following documentation:https://www.mathworks.com/help/signal/ref/freqs.html
0 Kommentare
Siehe auch
Kategorien
Mehr zu Digital Filter Analysis finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!