作业帮 > 综合 > 作业

matlab 用bode()命令绘制的bode图 如何提取bode图 有什么命令吗?亲,或者操作步骤也行;就是把里面每条

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/05/26 01:40:05

matlab 用bode()命令绘制的bode图 如何提取bode图 有什么命令吗?亲,或者操作步骤也行;就是把里面每条曲线的数据都要提取出来;感谢你的解答.
matlab 用bode()命令绘制的bode图 如何提取bode图 有什么命令吗?亲,或者操作步骤也行;就是把里面每条
比较好的方式是你在调用bode函数时不要让它绘图,而是直接返回数据,例如:
[mag,phase,w] = bode(sys);
如果画出图再想从图中提取信息,虽然也能做到,但要繁琐很多,而且在不同MATLAB版本上可能还存在兼容性问题.
再问: 您好!按照你的思路,我试了一遍,但是发现 Workspace 里面有变量mag 是double类型数据,有变量phase 是double类型数据,以及变量w 是是double类型数据;那么我想问的是 这个图中共有25个小图,如何用刚才在Workspace 里面得到的变量数据来依次绘图呢?深表感谢!本人菜鸟。
再答: w是频率,mag是幅频特性,phase是相频特性。 想用这些数据来绘图,需要注意几个问题:1、如果要绘制第i个输出对第j个输入的幅频特性曲线,应该用mag(i,j,:)。但直接引用上面的表达式会得到3维数组(尽管其前两维的长度都是1,本质上还是一个向量),需要注意转换。2、幅频特性的数据mag是普通意义的放大倍数,而Bode图的纵轴用的是分贝值,需要按照20倍log律进行换算。3、横坐标(频率轴)通常用对数分度,应使用semilogx函数绘图。 示例:如果要画图中第1行第2列的那个图,可以用:dB=20*log10(mag(1,2,:));
semilogx(w,dB(:))