浅说Mathworks的算法开发解决方案和MBD

         感谢慷慨和伟大的Mathworks!创造了伟大的Matlab&Simulink,提供了优秀解决方案,还让那些买了自己都买不起它的能够正常的用上它。我的梦想--有一天我有套自己的Matlab&Simulink。

           Matlab&Simulink 在通信、信号处理、图像处理、航空航天、汽车电子、控制系统、生命科学、金融财务、科学计算领域都用重要的应用,应该说有很大的贡献吧,Mathworks总共只有2000余员工,但全球却有百万正版用户和无数的D版用户,并在多个领域拥有优秀的解决方案,包括labview在内多款重要的专业软件都购买了Matlab作为核心。07年中国分公司成立,中文网站的东西也多是今年翻译成中文的,不过大多数资料都是英文,包括其帮助文档,不过有日文版的帮助文档,估计是国人D版太多缘故吧。有一次有个机会和他们的经理聊到,为什么没有大力推广他们的强大工具的,他说中国用户很多,大学基本上都有用。我又问我说的是你们的高级的功能,他说的很委婉:那一般用于前端(意思就是前沿领域了,呵呵)。不少人要问我那么先进的工具箱,怎么得到,其实Mathworks是仁慈的,一般的里面都有只是你没有注意罢了,像他们Ployspace看看你能不能找得到下载不?不过一般人也用不找,那个是航空航天、汽车电子和医疗领域的代码安全测试的,搞那些的有的是钱了。我说了解的关于Matlab的应用和开发方式以及解决方案都是从他们网站上找到的。在这儿给大家介绍几个重要的资料:Matlab的Help(国内的书大多是翻译这个)、Demos(学习这个很容易上手,有不少例子工程上改下就可以用了,我觉得国人要更开放一点)、网站上的研讨会(录制的和在线的)、各领域解决方案白皮书(很多东西相当前沿)。还有就是他们会参加Altera,Xilinx之类组织技术巡回,以及一些受邀请作专门的讲座(10.28在成都有一次,这样的机会是不能错过的,其他的培训收费很高的了),你就可以和他们的工程师交流了,里面有一些高手了像陈炜工程师(科学计算)、陈建平工程师(通信和信号处理)、金文思工程师(汽车电子)等,国内还有恒润也很厉害,不过主要针对军工了,国内也有一些大型企业用蛮厉害的,像搞大飞机的那个。

下面说Matlab在通信和信号处理方面的应用和解决方案:(如下图所示)

1、Matlab可以提供从算法的研究--〉到系统设计--〉(代码生成)——〉测试(PIL和HIL下面具体再介绍)

2、另外一个角度Matlab&Simulink提供从基带数字信号到射频(SimRF支持从数据手册倒入参数到射频放大器,这个很有用的哦)

3、Simulink擅长做连续的信号处理(还有强大的EML,带了不少方便了)、Stateflow用于设计状态机,两者结合可以完成物理层建模和仿真;SimEvent可以作为MAC和更高层的建模。

4、信号处理工具、滤波器设计工具(非常的强大)、定点工具(做定点信号处理太有用了)为信号处理提供了几乎完美的解决方案,尤其是其滤波器设计工具。

5、自动代码生成:支持C、HDL,通过RTW、ERTW和其Coder可以生成直接使用的C代码,Simulink HDLCoder 和Filter Design HDL Coder 支持生成C,当然你的模型需要符合一些规范了。

6、自动的工程生成:不但可以生成代码,可以针对ARM(还支持intel、AMD、PowerPC、MIPS,不过要GreenHill Muilt[这个很难搞到的]支持,或者Eslipc的工程),DSP,FPGA直接生成其工程,当然要有其对应的开发工具支持。

7、支持联合仿真:可以自动生成测试用的联合仿真甚至PIL的方针模型,如DSP 可以支持PIL(一般程序在目标处理器运行一部分在Matlab&Simulink上运行),比如TI的通过Linkforccs(Embaded IDE Link还支持ADI和飞思卡尔的dsp)连接到CCS可以直接让代码在硬件上来用。当然工程不限于是生成的也可以是用户自己的建立。像FPGA的话可以通过LinkforMQ(EDA Link支持Mentor Graphics®, Cadence®, and Synopsys)生成和ModelSim的联合仿真模型,当然也可以用于仿真自己的HDL了,这样就不用写Testbench了,呵呵~~

8、强大的第三方工具:只说FPGA方面Xilinx的SystemGenerator 、Altera的DSPbuiler、还有Synplify DSP 及HLS,还不包括仿真工具,实在是太多了。模拟的电路的仿真在SimElectronics甚至支持spice。尤其Altera和Xilnix的工具支持直接在FPGA上做HIL(就是一般程序在Simulink里面跑,另外一半在发FPGA上运行)。

            其实还有很多东西,我只浅浅的说了一点点功能,需要完整的话,去www.mathworks.cn 吧。你说说这样的强大的工具是不是能让你很多的时候做到事半功倍,节省写testbench的时间,你可以专注于你的HDL代码;如果你是DSP软件工程师,就不用为CCS输入数据测试的二浪费时间了,可以专注于DSP程序的优化和bug修复。如果你是算法工程师或者你专注是实现其功能,而不是其性能的话,你是不是可以先不用去管写代码。当然实际应用的要在手写代码、生成代码和IPcore之间来寻找平衡性能、开发速度和成本之间的问题了。不过也不是说,不需要学习些代码,毕竟那是基础,像驱动这类的问题还是要自己解决的。

          想要掌握容易,全部掌握就不容易了,一个版本更新,你以前的方式就可能不是最好了,一般来说只要你想到,后面的Matlab就会给你解决的~~~呵呵~~~真的,我很有体会~~

            总之思想才是最重要,工具只是帮助你能够高效实现,基础还是要扎实的,毕竟软件的还不是完全的智能。不能本末倒置,缘木求鱼。

 

MBD(Model Based Design)和MDD(基于模型驱动的设计有一些类似),简单的就是给你的算法研究到系统设计,再到代码生成实现和测试都搬到Matlab&Simulink为中心的工具中实现。

Mathworks中文网站:www.mathworks.cn

Mathworkd英文网站:www.mathworks.com

录制的研讨会和教学:http://www.mathworks.cn/company/events/webinars/index.html?s_cid=HP_E_RW

FileExchange(大量用户上传的源文件,可以和全球的高手交流):http://www.mathworks.cn/matlabcentral/

通信解决方案技术文档:http://www.mathworks.cn/communications/technicalliterature.html

数字信号处理解决方案技术文档:http://www.mathworks.cn/dsp/

FPGA设计解决方案:http://www.mathworks.cn/fpga-design/

控制系统:http://www.mathworks.cn/control-systems/ 

嵌入式系统:http://www.mathworks.cn/embedded-systems/ 

视频图像处理:http://www.mathworks.cn/image-video-processing/ 

基于模型的设计和仿真:http://www.mathworks.cn/model-based-design/

解决方案首页:http://www.mathworks.cn/solutions/

你可能感兴趣的:(浅说Mathworks的算法开发解决方案和MBD)