matlab 用bode()命令绘制的bode图 如何提取bode图 数据啊?

matlab用bode()命令绘制的bode图如何提取bode图数据啊?有什么命令吗?亲,或者操作步骤也行;就是把里面每条曲线的数据都要提取出来;感谢你的解答。... matlab 用bode()命令绘制的bode图 如何提取bode图 数据啊?有什么命令吗?亲,或者操作步骤也行;就是把里面每条曲线的数据都要提取出来;感谢你的解答。 展开
 我来答
百度网友78939ef
2019-06-10 · TA获得超过493个赞
知道答主
回答量:27
采纳率:0%
帮助的人:4172
展开全部

在matlab 提取bode图数据如下:

1丶我们现在matlab里面编写好自己要绘制图形的代码。

2丶在代码后面加上[mag,phase,w] = bode(sys);

3丶这时候我们在workplace界面就可以看到我们需要的数据了。

这样就解决了在matlab 提取bode图数据的问题。

tianxiawulang
推荐于2017-12-16 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2647万
展开全部

比较好的方式是你在调用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(:))
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
新版菜园小敏
2021-01-11
知道答主
回答量:1
采纳率:0%
帮助的人:534
展开全部
你好,我想请问您多输入多输出的伯德图怎么输出的?我正好遇到这样的问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式