matlab fdatool教程,[Matlab]Fdatool与s-function c builder的使用
自从用了Matlab以后,很多事情都交给这款强大的软件进行处理,例如撰写M文件批量处理excel表格数据,数据计算(嗯,其实MathCAD也挺好用,不过更习惯在Matlab中计算)等。今天介绍最近用到的两个Matlab中的工具:FDAtool和s-function中的c builder。
在嵌入式产品中,免不了很多硬件信号的采样,尤其是电源类产品,有电压,电流等。虽然硬件线路上会有运放+RC电路进行滤波,但是如果器件参数未匹配好或者PCB走线不合理等,难免还是会有杂波涌入到MCU的采样端口,所以往往在软件端也需要对信号做一些滤波处理。以下以一阶Butterworth低通滤波器设计为例,讲一讲如何使用Matlab FDATool。
进入FDATool页面:直接在命令行窗口输入fdatool即可
界面很明晰,根据你想要的滤波器类型,填写相应的参数。下图为一阶Butterworth IIR滤波器的配置页面,假设采样频率为50kHz,截止频率为5kHz,制定一阶。参数确认好以后,点击Design Filter即可。
如果想要查看该滤波器的分析结果,可以选择Analysis菜单,下面可以查看各种分析结果,例如幅值响应,阶跃响应。
4. 如果想要得到设计出的IIR系数,可以选择Analysis下的Filter Coefficients,其中Numerator和Denominator即为滤波器的A,B参数,以下图为例可得:Y(n) = 0.52528X(n)+ 0.52528X(n-1)+0.5095254494944Y(n-1)
5. 得到滤波器参数以后即可按照IIR的公式通过软件实现。由于并非所有的芯片都支持浮点运算,那么可以进一步将浮点运算转为Q格式的整型运算,方法与前面几期内容类似,详细可以参看:
S-Function Builder
在Matlab/Simulink中虽然有很多模块供我们使用,但是还是有许多复杂的逻辑时序运算难以用现成的模块进行仿真模拟。
此外还有不少应用场景难以在实际硬件平台中模拟,尤其是一些极端条件的发生场景。所以要想验证这部分的代码功能就比较困难。
这个时候不妨尝试下使用Matlab的s-function模块来进行测试。s-function支持载入C语言代码,通常可以分为两种形式:
一种是按照s-function的规则,在其提供的初始化,输出,终止等函数接口中配置输入输出参数,时间参数,更新函数等,这个方法对于初学者来说,理解上有一定难度,因为其中涉及很多simulink中特定函数与参数。
另外一种为s-function builder,通过可视化界面配置参数,完成配置后只要在更新窗口中放入我们自己的功能函数即可,相对来说简单了很多。
以上面的例子为例,讲一讲如何通过s-function builder实现一阶IIR。
新建一个model,然后在simulink中找到s-function。另外如果有使用上的问题,也可以打开S-function Examples,里面有很多例子可以供参考。
2. 拖一个s-function builder到你的model中,打开:
由于我们有四个状态量:Xn, Xn-1, Yn, Yn-1, 因此discrete states设定为4,初始值都为0;采样模式设定为离散模式,时间为1/50000, 这个对应我们实际代码中IIR的运行频率对应的周期。
3. 加入我们的功能函数。在s-function builder中,用xD[n]表示对应的离散状态量,如下代码的注释。
/* xD[0]: x(n) * xD[1]: x(n-1) * xD[2]: y(n-1) * xD[3]: y(n)*/
所以滤波值为:xD[3] = 0.2452*xD[0] + 0.2452*xD[1]+0.94944*xD[2];
4. 将滤波值赋值给s-function输出
注意:要编译C代码,先要通mex设定,进行编译器关联。关联方法,请参考前面几期内容。
6. 为了验证代码是否ok,我们可以也加入step信号,看看响应是否跟FDAtool中的一样。
对比一下,可以认为是一致的。
7. 另外还可以注入高频杂波,看看滤波效果:
matlab fdatool教程,[Matlab]Fdatool与s-function c builder的使用相关推荐
- matlab 图 教程,Matlab图形
本章将继续探讨MATLAB的绘图和图形函数功能.下面将会讨论 - 绘制条形图 绘制轮廓 三维图 绘制条形图 bar命令绘制二维条形图,下面举个例子来演示如何使用. 示例 假设有10名学生,这些学生某次 ...
- matlab项目实例教程,matlab简明实例教程.doc
matlab简明实例教程.doc 南京航空航天大学王正盛1MATLAB数学工具软件实例简明教程王正盛编写南京航空航天大学南京航空航天大学王正盛2第一章MATLAB简介MALAB译于矩阵实验室MATri ...
- matlab nntool教程,Matlab nntool 应用实例教材.doc
Matlab nntool 应用实例 在MATLAB命令窗口中键入nntool再按enter,会自动弹出下面的Network/Data Manager窗口画面 Inputs:输入值 Targets:目 ...
- matlab语音处理教程,Matlab声音处理教程 / 声音处理 / 声音处理教程 / 声音处理软件...
Matlab声音处理教程 / 声音处理 / 声音处理教程 1)用mp3录音,生成文件cricket.wav,把该文件放到matlab文件夹里面(就是你打开matlab后中间顶部的地址). 2)使用如下 ...
- matlab r2010a教程,MATLAB教程R2010a(十二五)
第1章 基础准备及入门 1.1 MATLAB的安装和工具包选择 1.2 Desktop操作桌面的启动 1.2.1 MATLAB的启动 1.2.2 Desktop操作桌面简介 1.3 Command W ...
- matlab 信号处理 教程,MATLAB信号处理仿真 实验_教程-学习文件.pdf
MATLAB信号处理仿真实验 从观察正弦波开始 用绳量给我的地界 坐落在佳美之处 我的产业实在美好 杜伟韬 duweitao@ 广播电视数字化教育部工程研究中心 2013年 4月23 日于 北京定福庄 ...
- matlab中fdyn,Matlab的用法总结
1. 对序列进行洗牌 randperm() randperm()产生随机的序列 %if filepaths 是一个5*1的结构体,then cshuffle = randperm(length(fil ...
- matlab中文论坛视频谷普教程MATLAB压缩包介绍
matlab中文论坛视频谷普教程MATLAB压缩包介绍 我也正在学习这个软件 ,看到这个教程就在这里分享了,希望大家喜欢! Matlab 初学者视频教学 1. Matlab视频:Matlab中文论坛为 ...
- disp语句怎么格式 matlab_讲座回顾:Matlab使用教程
12月13日晚19:30,Matlab使用教程讲座在学院楼323如期举行.本次讲座的主讲人是来自大二的王海诚同学,他主要从基础知识.矩阵运算.流程控制和作图四个方面展开,介绍了Matlab的使用方法. ...
最新文章
- 2021年春季学期-信号与系统-第四次作业参考答案-第七小题
- 首个生物医疗开放大数据研究中心在沪成立
- 开发环境下jboss 7.1.1 Final 的jsp热部署解决方案--转
- win7 oracle启动监听,win7系统oracle监听服务无法打开的解决方法
- 去IOE:去掉“IE”就Ok?
- python linux 时间格式化,Python3 格式化日期
- 可以使用中文作为变量名_次氯酸可以作为伤口消毒使用吗?
- 前端学习(1485):restful接口规则
- cloudflare 利用API将域名批量解析到cloudflare
- markdown 本地链接_记录笔记、markdown工具推荐
- python安装在哪个盘比较好_python编写器用哪个比较好?
- windows 读写锁 python_用Python实现读写锁的示例代码
- 搭建sendmail邮件服务器
- (转)IE劫持原理 BHO
- Python流程控制
- C++ STL map插入效率优化
- tmp ubuntu 自动删除吗_如何清理/tmp?
- ZZUNOJ 1008 美元和人民币
- Power BI应用案例:销售帕累托分析(28法则)
- CSS3第二日--2D转换