matlab 用bode()命令绘制的bode图 如何提取bode图 数据啊?
matlab用bode()命令绘制的bode图如何提取bode图数据啊?有什么命令吗?亲,或者操作步骤也行;就是把里面每条曲线的数据都要提取出来;感谢你的解答。...
matlab 用bode()命令绘制的bode图 如何提取bode图 数据啊?有什么命令吗?亲,或者操作步骤也行;就是把里面每条曲线的数据都要提取出来;感谢你的解答。
展开
3个回答
展开全部
比较好的方式是你在调用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(:))
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好,我想请问您多输入多输出的伯德图怎么输出的?我正好遇到这样的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询