我是靠谱客的博主 喜悦鲜花,最近开发中收集的这篇文章主要介绍matlab里simulink,如何运用MATLAB中的Simulink?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

摘要:文中首先分析了MATLAB/Simulink中DSP Builder模块库在FPGA设计中优点,然后结合FSK信号的产生原理,给出了如何利用DSP Builder模块库建立FSK信号发生器模型,以及对FSK信号发生器模型进行算法级仿真和生成VHDL语言的方法,并在modelsim中对FSK信号发生器进行RTL级仿真,最后介绍了在FPGA芯片中实现FSK信号发生器的设计方法。关键词:Simulink/DSP Builder ;FSK建模;FGPA芯片实现1、 引言   计算机仿真技术是应用电子计算机对研究对象的数学模型进行计算和分析的方法。而MATLAB是功能强大的数学分析工具、广泛应用于科学计算和工程计算,可以进行复杂的数字信号处理系统的建模、参数估计、性能分析。Simulink是MATLAB的一个组成部分,用于图形化建模仿真。DSP Builder作为Simulink中的一个工具箱,使得用FPGA设计DSP系统完全可以通过Simulink的图形化界面进行,只要简单地进行DSP Builder工具箱的模块调用即可。从而使得一个复杂的电子系统设计变得相当容易而且直观。  将SIMULINK用于DSP系统的仿真研究近几年逐渐成为人们研究的热点。本文以此为基础,运用DSP Builder工具箱中的部分模块,建立了FSK信号的仿真模型,并通过了可靠的仿真实验直至下载到目标器件FPGA中,并进行了硬件测试。2 SIMULINK下FSK仿真模型的实现2.1  FSK调制原理     2FSK信号是用载波频率的变化来表征被传信息的状态的,被调载波的频率随二进制序列0、1状态而变化,即载频为f0代表传0,载频为f1时代表传1。显然,2FSK信号完全可以看成两个分别以f0 和f1为载频、以an和 为被传二进制序列的两种2ASK信号的合成。2FSK信号的典型时域数学表达式为:    2FSK信号的产生通常有两种方式:(1)频率选择法;(2)载波调频法。由于频率选择法产生的2FSK信号为两个彼此独立的载波振荡器输出信号之和,在二进制码元状态转换时刻,2FSK信号的相位通常是不连续的,这会不利于已调信号功率谱旁瓣分量的收敛。载波调频法是在一个直接调频器中产生2FSK信号,即用数字基带矩形脉冲控制一个振荡器的某些参数,直接改变振荡频率,输出不同频率的信号,这时的已调信号出自同一个振荡器,信号相位在载频变化时始终是连续的,这将有利于已调信号功率旁瓣分量的收敛,使信号功率更集中于信号带宽内,在这里,我们采用的是载波调频法。2.2  FSK模型建立根据FSK信号的产生原理,可以利用FPGA来实现FSK信号发生器,但是若采用传统的VHDL语言来编程实现,显然很复杂,在此采用嵌入在Matlab/simulink的DSP Builder来实现,DSP Builder设计流程的第一步是在MATLAB/Simulink中进行设计输入,即在MATLAB的Simulink环境中建立一个MDL模型文件,用图形方式调用Altera DSP Builder和其它的Simulink库中的图形模块,构成系统级或算法级设计框图(或称Simulink建模)。首先打开MATLAB,然后在MATLAB主窗口中键入:CD D:/Mkdir /myprj/sinwaveCd /myprj/sinwaveSimulink即在D盘下建立一个MATLAB的工作目录和启动Simulink,然后新建一个mdl 文件并取名为fskb.mdl,然后在Altera DSP Builder模块中找到相应的模块并调入Simulink窗口,并将相应模块连接在一起,其fsk模形如图1所示。2.3 基于Simulink的fsk模型的仿真    在FSK模型窗口中选择“simulink”菜单,再选“start”项开始仿真,待仿真结束,双击Scope模块,打开Scope观察窗。其中的仿真波形如图2所示:    从FSK调制的仿真结果可以看出,高电平控制的时候,正弦波的频率较高,而低电平的时候正好相反,至此完成了我们的模型仿真。2.4 将模型文件转化为VHDL语言文件    DSP Builder是一个数字信号处理(DSP)开发工具,它提供了Quartus? II软件和MATLAB/Simulink工具之间的接口,DSP Builder设计实现的关键一步,是通过SignalCompiler把Simulink的模型文件转化成通用的硬件描述语言VHDL文件。由于Quartus II不能直接处理MATLAB的.mdl文件,这就需要一个转换过程,在DSP Builder模块中有一个比较特殊的模块即SignalCompiler模块,双击此模块即打开Signal Compiler窗口,如图3所示。设置好相应项后,依次点击Hardware Compilation中的三个按钮即可完成将.mdl文件转化为.vhd文件。此时在工作目录下可以找到fsk.vhd和fsk.qpf两个文件,此文件正是我们在Quartus II中要用的工程文件。2.5 验证VHDL代码    在Simulink中进行的仿真是属于系统验证性质的,是对MDL文件进行的仿真,并没有对生成的VHDL代码进行过仿真,事实上,生成VHDL描述是RTL级的,是针对具体的硬件结构的,而在MATLAB的Simulink中的模型仿真是算法级(系统级)的,是针对算法实现的,这两者之间有可能存在软件理解上的差异,转换后的VHDL代码实现可能与MDL模型描述的情况不完全相符,这就需要针对生成的RTL级VHDL代码进行功能仿真。    在此我们利用Modelsim来对生成的VHDL代码进行功能仿真。设置好相应参数确定后,出现如图4所示的仿真波形,可以看到这与Simulink里的仿真结果基本一至。于是即可在Quartus II环境下对硬件设计。2.6  在FPGA器件中实现FSK信号    打开Quartus II环境,定位到FSKB模型所在的目录,打开DSP Builder建立的Quartus II项目文件:fsk.qpf。在Quartus II中进行再一次仿真,其仿真波形如图5所示,由此可以看出其波形符合要求,然后指定器件管脚、进行编译、最后下载到FPGA器件中,就可以对硬件进行测试,加上CLCOK信号和基带信号,用示波器检测D/A(DAC1210)的输出。将所有控制信号设为有效,就可以在示波器上看到产生的正弦波了。通过示波器我们得到了理想的正弦曲线,也就是FSK信号。需要调节频率时,仅修改FSK模型文件就可以实现,这样不仅避免了繁所的VHDL语言编程,而且便于进行调整。3 结语    由以上设计过程中,我们可以看到基于MATLAB/Simulink的DSP Builder模块库进行DSP系统建模,可以帮助设计者完成基于FPGA的DSP系统设计,设计者不至于陷于复杂的VHDL语言编程,只要对DSP Builder模块库中各模块的基本参数进行简单设置就可以实现复杂电子系统的设计。而不需要对各模块具体的实现过程进行详细的了解,甚至不需要了解FPGA本身和硬件描述语言。真正实现了电子系统设计的黑盒子化、积木化和简单化。参考文献:1、潘松.现代DSP技术[M]西安:西安电子科技大学出版社,20032、姚俊 马松辉.Simulink建模与仿真[M].西安:西安电子科技大学出版社,20023、陈怀琛 吴大正 高西全.MATLAB及在电子信息课程中的应用[M].北京:电子工业出版社,20044、薛年喜.MATLAB在数字信号处理中的应用[M].北京:清华大学出版社,20035、黄正瑾 徐坚等.CPLD系统设计技术入门与应用[M].北京:电子工业出版社,20026、金西.VHDL与复杂数字系统设计[M].西安:西安电子科技大学出版社,20037、褚振勇 翁木云.FPGA设计及应用[M].西安:西安电子科技大学出版社,2002

最后

以上就是喜悦鲜花为你收集整理的matlab里simulink,如何运用MATLAB中的Simulink?的全部内容,希望文章能够帮你解决matlab里simulink,如何运用MATLAB中的Simulink?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(82)

评论列表共有 0 条评论

立即
投稿
返回
顶部