当前位置:首页 > MATLAB
  • 基于Matlab和VC混合编程的DSP数据采集系统

    基于Matlab和VC混合编程的DSP数据采集系统

    前言 在开发DSP数据采集和处理系统的过程中.通常需要采用DSP汇编语言开发一些复杂的算法(如FFT分析、相关分析等),但是,实现这些算法的程序一般都很复杂,尤其需要图形显示时,程序的编写就更复杂了。此外,这些程序还将占用DSP的内存资源。Matlab提供了矩阵处理、数值计算、图形显示等强大功能,同时还带有功能丰富的软件工具箱.若能把Matlab的高效、便捷算法和图形显示工具应用于DSP数据采集和处理系统.即把采集到的数据上传到Matlab平台进行相应的处理和图形显示.这样.不仅减少了DSP的负荷和开销.而且还可以加快系统的研发进度。1 系统设计 基于Matlab平台的DSP数据采集和处理系统的主要功能是:在Matlab平台上控制底层DSP目标板进行数据的采集和处理,并把采集到的数据上传到Matlab平台上进行相应的数值处理和图形显示然后再把处理后的数据回传给底层DSP目标板,完成后续任务。1.1硬件结构 DSP数据采集系统主要由PC计算机、TMS320C6202 DSP目标板、AD16模块、MOT模块、数字I/O口和Timer模块组成,如图1所示。①DSP目标板选用ll(Innovative Integration)公司M6x系列的TMS320C6202开发板。DSP目标板通过计算机主板上的PCI插槽装在计算机内部,DSP程序通过JTAG进行在线调试:DSP目标板提供了许多动态连接库函数.可直接完成对目标板的底层操作,如Target_Open()--打开目标板驱动、iicoffld()--下载程序列DSP中、Target_Close()--关闭目标板驱动等;②AD16是Ⅱ公司的16通道16位的数据采集模块.双端差动输入,输入范围是-10V至+10V,可同时采集16路外部模拟信号,采样频率为5~195KHz; 图1系统硬件结构③MOT是一个集成有4个16位DA转换器的信号产生模块,DA输出电压范围是-10V到+10V.可输出4路测试需要的模拟信号.DA转换频率最高可达200KHz:④数字I/O模块是一个32位数字I/O连接端口。系统可以通过这个数字I/O接口与外界进行数字通信:⑤Timer模块提供了三个外部定时器,其定时参考时钟可以是DSP目标板上的时钟,也可以是外部提供的时钟。其定时输出信号可满足系统测试的定时要求。1.2软件设计 图2是DSP数据采集和处理系统的软件设计模块图。其中:Matlab平台主要完成对目标板的操作和控制,处理DSP目标板上传的数据.再回传给DSP目标板,并进行图形显示。 图2系统的软件模块图 visual C++平台作为Matlab与底层DSP目标板的连接中介,主要完成对DSP目标板的具体操作。由于DSP目标板自带了对板卡进行操作的动态连接库函数,因此在Vishal C++平台中就可利用这些函数,完成对目标板的一些控制和操作。例如:用户界面(图4)上的Open按钮就是在Visual C++中利用Target_Open()函数完成目标板驱动的打开。 DSP数据采集和处理程序主要控制AD16采集外界模拟信号,并经过相应处理之后.上传到Matlab平台,然后再从Matlab平台接收处理后的数据.控制MOT模块输出系统所需的模拟信号。完成一个完整的数据采集—数据处理一系统控制的全过程。2 系统实现的关键技术 Matlab作为高级应用程序语言.并不能直接控制和操作所有的底层板卡。Matlab仿真模块里面带有一些可以直接控制和操作的DSP板卡.但是这些板卡都是一些固定型号的DSP板卡,而对用户自行设计和其它一些型号的DSP板卡并没提供这种功能.因此要实现在Matlab平台上控制一般的DSP板卡进行数据的采集和处理还必须借助中介软件.这个中介软件就是Visual C++。这样便可实现Matlab与DSP底层板卡的无缝连接。具体技术包括:DSP目标板和主机的数据交换,Matlab与Visual C++的接口。2.1 DSP目标板和丰机的数据交换 TI公司提供DSP与PC主机之间的实时数据传输技术RTDX(Real Time Data Exchange)协议.并在主机中提供了工业标准的目标连接与嵌入应用程序接口OLE API(Application Program Interface).因而能方便地与符合OLE API标准的第三方软件接口。实现与DSP的数据交换。完整的RTDX协议包含4个部分:主机应用程序、主机软件库、目标机软件库和目标机程序。图3是实现计算机和DSP之间数据传输的关系图。 图3 RTDX数据传输关系 微软公司(Microsoft)提供的Visual C++软件开发环境封装了,TI公司的RTDX协议,配合DSP程序可方便、实时地与Pc主机进行数据通信。因此通过visual c++软件就有可能实现在MATLAB平台上完成对DSP数据采集和处理的控制。实现PC主机与DSP目标板的数据交换。 PC主机和DSP目标板通过RTDX协议实现数据交换需要在PC主机程序和DSP程序中定义同名的一条RTDX通道,数据通过该通道在PC主机和DSP目标板之间传输。PC主机程序和目标板上的DSP程序需要严格的配合,PC主机的读操作和DSP目标板的写操作通过定义一个“写RTDX”通道实现:而PC主机的写操作与DSP目标板的读操作通过定义一个“读RTDX”通道实现.必须一一对应,这样才能实现主机与DSP目标板的数据交换。2.2 Matlab与Visual C++的接口 Matlab作为一种工具软件.通常是不能直接控制DSP目标板。但是Matlab软件为了扩充自身软件的功能,提供了一种与其它开发工具或开发语言进行交互的应用程序接口 (API)。其中.MEX文件就是MATLAB软件提供的一种与Visual c++沟通的接口文件。 在MEX文件中使用c语言编写以mexFunction (int nlhs,mxArray *nlhs[ ],int nrhs,const mxArray * plhs[ ])函数为主函数的动态连接库程序(*.dll).然后只需在Matlab命令提示符下键入此MEX文件名(*.dll)即可完成调用.这与Matlab的内建函数的调用方式完全相同。mexFunction函数中的参数说明如下:①int nlhs是左边输出参数的个数,即visual c++向Matlab传递的参数个数;②mxArray *nlhs [ ]是左边参数的数组。它是一个mxArray结构体类型的指针数组.这个数组的元素按顺序(nlhs[0].nlhs[1]?)指向所有的输出参数:③int nrhs是右边输入参数的个数,即Matlab向VisualC++传递的参数个数;④const mxArray *plhs [ ]是右边参数的数组,它是一个mxArray结构体类型的指针数组,这个数组的元素按顺序(plhs[0],plhs[1]??)指向所有的输入参数。在MEX文件中.利用DSP目标板提供的动态连接库函数,编写对目标板进行操作的动态连接库程序.然后在Matlab平台上调用这些动态连接库函数既町实现Matlab和底层DSP目标板的无缝连接。 图4系统测试结果 具体过程是:在Matlab平台上.以传递参数的形式调用动态连接库程序。把需要传送给DSP目标板处理的数据,通过mexFunction函数的右边参数数组先传送给动态连接库程序。然后通过Visual C++程序和DSP程序共同定义的“写RTDX通道”把数据传送给DSP目标板:需要上传到Matlab平台的数据,首先被DSP应用程序写入到“读RTDX通道”中.然后在Visual C++中的动态连接库程序读取该R31DX通道中的数据,再经过MexFunction函数的左边参数数组把数据上传到Matlab平台。这样.就实现了在Matlab平台上控制和操作DSP目标板,并与之进行数据交换。图4是按照上述方法编写的软件界面和对系统进行测试所得到的结果。3 结束语 基于Matlab平台的DSP数据采集和处理系统,在Matlab强大的数据分析和绘图功能的基础上,结合了Visual c++易于实现操作和控制的性能。改善了Matlab在控制底层板卡方面的不足。该系统的研究不仅是把Matlab应用于DSP数据采集和处理系统的一次尝试.也为一些半实物仿真系统提供了新的思路。Matlab/Simulink本身就是一种功能强大的系统仿真工具,因此,如果能在该系统的基础上把Matlat/Simulink的仿真功能添加上来。则可实现硬件在环的半实物仿真。相信Matlab丰富的函数库和众多的专业工具箱.必会为今后系统的完善以及扩展提供充分的条件。本文作者创新点:通过在Matlab平台上直接控制DSP数据采集系统.把Matlab的优良算法应用于系统中。简化了系统的数据处理过程。提高了,系统数据处理速度,缩短了系统设计周期,具有广泛的应用前景。

    时间:2018-09-17 关键词: DSP 数据采集 vc matlab 嵌入式处理器

  • DSP与MATLAB的语音数据采集和处理系统

    DSP与MATLAB的语音数据采集和处理系统

    1 引言目前迅速发展的数字信号处理器已在数据采集、通信及多媒体等领域中得到广泛的应用。本系统采用TI公司16位定点高速芯片TMS320C5410和专用语音采集芯片TLC320AD50进行数据采集和相关滤波、压缩处理,并将最终的数据流经串口送入计算机。在计算机中使用MATLAB控制串口接收数据并完成解压、回放、编码、通信仿真等处理。2 硬件接口电路2.1 TMS320C5410外部扩展电路TMS320C5410是TI公司于1996年推出的定点数字信号处理器。它运行速度快,单周期定点指令执行时间10ns或8.3ns,远大于语音采集和处理的要求。另外它采用修正的哈佛结构,程序与数据分开存放,内部具有8条高度并行性的总线。其中,一组程序总线,三组16位数据总线和四组地址总线。允许数据存放在程序存储器中,并被算术指令直接使用,大大提高了运行速度和灵活性。CPU具有40位算术逻辑单元,两个独立的40位累加器,17×17位并行乘法器,一个40位桶形移位寄存器、8个辅助寄存器、2个辅助寄存器算术逻辑单元。最大可有8M字可寻址程序存储空间,可访问的数据存储空间有64K字,I/O存储器空间有64KB。其中片内64KB的RAM包括两块2KB的DARAM,七块8KB的SARAM以及片内16KB的ROM配置位程序存储器。片上集成一个16位定时器、软件可编程等待状态发生器、六通道直接存储器访问(DMA)控制器、三个多通道缓冲串口(McBSP)以及一个8位增强型主机接口(HPI8)。图1为DSP与存储器的接口电路,其中PS、DS、IS分别为程序、数据和I/O空间选择信号。MSTRB、IOSTRB分别为存储器和I/O选通信号。另外,由于FLASH存储器与EPROM相比有更高的性价比,而且体积小,功耗低,可电擦写,使用较方便。因此,本系统也扩展了一片FLASH存储器,图2为DSP与FLASH的接口电路。FLASH芯片为AMD公司的AM29LV400B,该芯片为单电源供电,支持整片擦除,每个分区有保护,避免意外擦除,并且使用寿命很长。2.2 TMS320C5410与TLC320AD50的接口电路AD转换是本系统的重要组成部分,要着重考虑转换精度和抗干扰问题。本系统所用AD和DA转换芯片为TI公司的TLC320AD50,它在一个封装中集成了两种功能,可同时进行AD和DA转换。图3为TMS320C5410和TLC320AD50的接口电路。AD50采用16位过采样sigma-delta技术,以8K的采样率对输入的语音信号进行采样、量化,按同步串行方式传给5410进行处理。AD50向CPU发出帧同步和移位时钟信号来控制数据的串行传输。在此需说明一下,本系统主要用来将语音信号通过AD转换采集进来,然后串行发送给PC,在PC中用MATLAB接收信号并进行处理。整个过程中DA转换并不在信号处理的主要流程中,DA转换只是用来验证采集数据时所用到的滤波、压缩算法的正确性与合理性。所以,在编写系统软件时并没有将DA转换写入。此外,把DA转换加进来也是为了丰富系统硬件资源利于今后进行功能扩展。2.3 TMS320C5410与PC机的串口通信本系统采用MAX232E构成5410与PC间的通信接口。MAXIM公司的MAX232E采用单5V电源供电,使用时只需外接4个电容就能完成TTL与RS232间的电平和逻辑关系的转换。经过DSP系统处理的语音信号通过串口以9600b/s的速率送入计算机,在计算机中通过MATLAB控制串口接收数据,并且利用MATLAB强大的数据处理能力对语音信号进行处理。3 软件实现本系统的软件由上位机部分和下位机部分组成。其中,下位机部分主要是针对DSP编程完成语音信号的采样、量化、滤波、压缩编码、以及与PC的串行通信。上位机部分主要是采用MATLAB语言编程进行串口数据接收、解压缩、以文件的形式存储数据并且最终将该数据文件送入本人用MATLAB语言完成的一个通信信号处理系统进行进一步处理。3.1 下位机部分整个下位机部分的程序流程图如图4所示,其中滤波部分为一个FIR高通滤波算法。这是因为主要采集的对象为语音信号,而TLC320AD50内部只有一个低通滤波器,可以用于滤除高于3.4kHz的干扰信号,但是对于低于300Hz的干扰则无能为力,所以针对DSP编程设计一个FIR高通滤波器滤除低频干扰。FIR滤波器在数学上可表示为:式(1)中x(n)为最近的输入信号,x(n-k)为延时了k个取样周期的输入信号,y(n)为时刻t=nT的滤波器输出信号,N为滤波器的阶数。h(k)是第k个延时节的加权值,既滤波器系数,可由MATLAB的kaiserord函数和fir1函数共同算得。从计算结果可以看出,一个N(设N为偶数)阶的FIR滤波器具有系数对称性,从而其输出方程可进一步简写为:y(n)=h0[x(k)+x(k-N+1)]+h1[x(k-1)+x(k-N+2)]+Λ+nH/2-1[x(k-N/2+1)+x(k-vN/2)] (2)根据(2)式可以编写相应程序完成FIR高通滤波。语音压缩部分采用的是非失真的压缩算法。具体为:当有两个以上连续相等的数据时,可以用3字节表示,即前2字节相等表示被压缩的数据值,后1字节表示被重复次数。由于语音信号自身的特点,即冗余度大,这就为此种压缩提供了可能。同样,在解压时,程序读入数据流,当遇到两个相等数据时则重复此数,重复次数由后一个数据决定。3.2 上位机部分本次设计中比较新颖的地方就是上位机部分采用MATLAB控制串口接收并处理数据。比起VC或者VB,用MATLAB作上位机程序有其独特的优势。MATLAB自带很庞大的函数库,控制串口有serial等函数,语音的回放有wavread函数,至于信号处理更是MATLAB的强项,它自带的信号处理工具箱函数大大的缩短了系统软件开发的周期。另外,MATLAB作人机交互界面也很方便,其自带的GUI工具包使整个过程快捷、流畅,比起VB也逊色不了多少。3.1.1 MATLAB的人机交互软件设计用MATLAB控制串口接收数据有以下几步:1. 先进行串口的初始化操作,然后打开串口,用到的函数为:serial和open。2. 设定MATLAB和DSP的握手方式,可通过串口目标的FlowControl属性设定。3. 接收和发送数据,用到fread和fwrite函数。界面如图5所示,调试时注意MATLAB本身的GUI环境下设计的软件界面不能使用全局变量,若是使用会出现函数使用错误。另外,接收和发送数据之前要清PC的数据缓冲区,以免接收到或发送的数据不是当前数据。最后,接收到的数据应以文件的形式存储下来,以便后续的系统处理。3.1.2 信号处理系统设计上位机的信号处理系统的设计思路是这样的,信号首先以文件的形式输入处理系统进行频谱分析,观察信号是否被噪声污染。若其频谱含有噪声谱则马上进入滤波器模块进行滤波,以滤除信号中的噪声。然后,再将滤波后的信号送入编解码模块进行编码或解码(在这里用户可以选择不同的编解码方式)。最后将信号送入通信仿真模块进行各种调制或解调处理及相应波形的显示。结束语TMS320C5410作为高速数字信号处理器具有快速的运算能力,结合MATLAB强大的信号处理能力,完全可以达到较复杂的语音信号处理要求。而且系统的可扩展能力很强,可对软件进行修改或者添加新的快速的算法提高系统信号处理的实时性

    时间:2018-09-21 关键词: DSP matlab 处理系统 嵌入式处理器 语音数据采集

  • 基于DSP和MATLAB的语音数据采集和处理系统

    基于DSP和MATLAB的语音数据采集和处理系统

    1 引言---目前迅速发展的数字信号处理器已在数据采集、通信及多媒体等领域中得到广泛的应用。本系统采用TI公司16位定点高速芯片TMS320C5410和专用语音采集芯片TLC320AD50进行数据采集和相关滤波、压缩处理,并将最终的数据流经串口送入计算机。在计算机中使用MATLAB控制串口接收数据并完成解压、回放、编码、通信仿真等处理。2 硬件接口电路---2.1 TMS320C5410外部扩展电路---TMS320C5410是TI公司于1996年推出的定点数字信号处理器。它运行速度快,单周期定点指令执行时间10ns或8.3ns,远大于语音采集和处理的要求。另外它采用修正的哈佛结构,程序与数据分开存放,内部具有8条高度并行性的总线。其中,一组程序总线,三组16位数据总线和四组地址总线。允许数据存放在程序存储器中,并被算术指令直接使用,大大提高了运行速度和灵活性。CPU具有40位算术逻辑单元,两个独立的40位累加器,17×17位并行乘法器,一个40位桶形移位寄存器、8个辅助寄存器、2个辅助寄存器算术逻辑单元。最大可有8M字可寻址程序存储空间,可访问的数据存储空间有64K字,I/O存储器空间有64KB。其中片内64KB的RAM包括两块2KB的DARAM,七块8KB的SARAM以及片内16KB的ROM配置位程序存储器。片上集成一个16位定时器、软件可编程等待状态发生器、六通道直接存储器访问(DMA)控制器、三个多通道缓冲串口(McBSP)以及一个8位增强型主机接口(HPI8)。---图1为DSP与存储器的接口电路,其中PS、DS、IS分别为程序、数据和I/O空间选择信号。MSTRB、IOSTRB分别为存储器和I/O选通信号。---另外,由于FLASH存储器与EPROM相比有更高的性价比,而且体积小,功耗低,可电擦写,使用较方便。因此,本系统也扩展了一片FLASH存储器,图2为DSP与FLASH的接口电路。FLASH芯片为AMD公司的AM29LV400B,该芯片为单电源供电,支持整片擦除,每个分区有保护,避免意外擦除,并且使用寿命很长。---2.2 TMS320C5410与TLC320AD50的接口电路---AD转换是本系统的重要组成部分,要着重考虑转换精度和抗干扰问题。本系统所用AD和DA转换芯片为TI公司的TLC320AD50,它在一个封装中集成了两种功能,可同时进行AD和DA转换。图3为TMS320C5410和TLC320AD50的接口电路。---AD50采用16位过采样sigma-delta技术,以8K的采样率对输入的语音信号进行采样、量化,按同步串行方式传给5410进行处理。AD50向CPU发出帧同步和移位时钟信号来控制数据的串行传输。在此需说明一下,本系统主要用来将语音信号通过AD转换采集进来,然后串行发送给PC,在PC中用MATLAB接收信号并进行处理。整个过程中DA转换并不在信号处理的主要流程中,DA转换只是用来验证采集数据时所用到的滤波、压缩算法的正确性与合理性。所以,在编写系统软件时并没有将DA转换写入。此外,把DA转换加进来也是为了丰富系统硬件资源利于今后进行功能扩展。---2.3 TMS320C5410与PC机的串口通信---本系统采用MAX232E构成5410与PC间的通信接口。MAXIM公司的MAX232E采用单5V电源供电,使用时只需外接4个电容就能完成TTL与RS232间的电平和逻辑关系的转换。经过DSP系统处理的语音信号通过串口以9600b/s的速率送入计算机,在计算机中通过MATLAB控制串口接收数据,并且利用MATLAB强大的数据处理能力对语音信号进行处理。3 软件实现---本系统的软件由上位机部分和下位机部分组成。其中,下位机部分主要是针对DSP编程完成语音信号的采样、量化、滤波、压缩编码、以及与PC的串行通信。上位机部分主要是采用MATLAB语言编程进行串口数据接收、解压缩、以文件的形式存储数据并且最终将该数据文件送入本人用MATLAB语言完成的一个通信信号处理系统进行进一步处理。 ---3.1 下位机部分---整个下位机部分的程序流程图如图4所示,其中滤波部分为一个FIR高通滤波算法。这是因为主要采集的对象为语音信号,而TLC320AD50内部只有一个低通滤波器,可以用于滤除高于3.4kHz的干扰信号,但是对于低于300Hz的干扰则无能为力,所以针对DSP编程设计一个FIR高通滤波器滤除低频干扰。FIR滤波器在数学上可表示为:---式(1)中x(n)为最近的输入信号,x(n-k)为延时了k个取样周期的输入信号,y(n)为时刻t=nT的滤波器输出信号,N为滤波器的阶数。h(k)是第k个延时节的加权值,既滤波器系数,可由MATLAB的kaiserord函数和fir1函数共同算得。从计算结果可以看出,一个N(设N为偶数)阶的FIR滤波器具有系数对称性,从而其输出方程可进一步简写为: ---y(n)=h0[x(k)+x(k-N+1)]+h1[x---(k-1)+x(k-N+2)]+Λ+ ---nH/2-1[x(k-N/2+1)+x(k-v---N/2)] (2)---根据(2)式可以编写相应程序完成FIR高通滤波。---语音压缩部分采用的是非失真的压缩算法。具体为:当有两个以上连续相等的数据时,可以用3字节表示,即前2字节相等表示被压缩的数据值,后1字节表示被重复次数。由于语音信号自身的特点,即冗余度大,这就为此种压缩提供了可能。同样,在解压时,程序读入数据流,当遇到两个相等数据时则重复此数,重复次数由后一个数据决定。3.2 上位机部分---本次设计中比较新颖的地方就是上位机部分采用MATLAB控制串口接收并处理数据。比起VC或者VB,用MATLAB作上位机程序有其独特的优势。MATLAB自带很庞大的函数库,控制串口有serial等函数,语音的回放有wavread函数,至于信号处理更是MATLAB的强项,它自带的信号处理工具箱函数大大的缩短了系统软件开发的周期。另外,MATLAB作人机交互界面也很方便,其自带的GUI工具包使整个过程快捷、流畅,比起VB也逊色不了多少。---3.1.1 MATLAB的人机交互软件设计---用MATLAB控制串口接收数据有以下几步:---1. 先进行串口的初始化操作,然后打开串口,用到的函数为:serial和open。---2. 设定MATLAB和DSP的握手方式,可通过串口目标的FlowControl属性设定。---3. 接收和发送数据,用到fread和fwrite函数。---界面如图5所示,调试时注意MATLAB本身的GUI环境下设计的软件界面不能使用全局变量,若是使用会出现函数使用错误。另外,接收和发送数据之前要清PC的数据缓冲区,以免接收到或发送的数据不是当前数据。最后,接收到的数据应以文件的形式存储下来,以便后续的系统处理。---3.1.2 信号处理系统设计---上位机的信号处理系统的设计思路是这样的,信号首先以文件的形式输入处理系统进行频谱分析,观察信号是否被噪声污染。若其频谱含有噪声谱则马上进入滤波器模块进行滤波,以滤除信号中的噪声。然后,再将滤波后的信号送入编解码模块进行编码或解码(在这里用户可以选择不同的编解码方式)。最后将信号送入通信仿真模块进行各种调制或解调处理及相应波形的显示。结束语---TMS320C5410作为高速数字信号处理器具有快速的运算能力,结合MATLAB强大的信号处理能力,完全可以达到较复杂的语音信号处理要求。而且系统的可扩展能力很强,可对软件进行修改或者添加新的快速的算法提高系统信号处理的实时性。

    时间:2018-09-21 关键词: DSP matlab 嵌入式处理器 语音数据采集

  • 基于DSP56805 的拟人机器人臂部智能控制系

    基于DSP56805 的拟人机器人臂部智能控制系

    摘要 拟人机器人是机构学、运动学、控制理论等学科发展水平的综合体现,是当前国内外研究的热点问题之一。论文在已有的TH-1拟人机器人手臂的机械结构和机电设计的基础上,基于Motorola DSP56805及PC机设计并实现了拟人机器人臂部多关节控制系统。 论文以DSP56805为核心设计并实现了拟人机器人TH-1臂部关节控制节点的硬件电路,并在此基础上利用Codewarrior + Embedded SDK编制了臂部关节的DSP控制程序,控制程序中采用了经典的PID控制算法,论文中提出了一种利用Matlab模拟仿真来初步确定PID控制参数(Kp、Ki、Kd)的方法。 在关节控制节点硬件及软件设计的基础上,论文给出了多节点通过CAN总线进行协调控制的设计与实现,并在PC机上利用VC 6.0实现了多节点主控软件。 最后进行了系统联合调试,结果表明:系统的软、硬件设计合理可行,为后续的研究工作奠定了基础。 点击此处下载

    时间:2018-09-24 关键词: matlab 嵌入式处理器 can总线 pid控制算法 控制节点 pid控制参数 dsp56805

  • MATLAB首次支持NVIDIA具有CUDA的GPU

    近日在 GPU 技术大会 (GTC) 上,MathWorks 宣布通过使用 Parallel Computing 或 Distributed Computing 实现在 应用中提供对 图形处理器(GPU) 的支持。这项支持可使工程师和科学家加快多种 计算的速度,而无需执行底层编程。 现在,越来越多的工程师和科学家可以借助MATLAB使用 的 具有支持 CUDA 的 GPU,其中包括基于 Fermi 架构的最新 20 系列 GPU。Parallel Computing 可以使用户无需学习 CUDA 编程或对其应用程序进行重大修改,即可访问 CUDA 库。 MathWorks 公司的并行计算市场部经理 Silvina Grad-Freilich 说:“MATLAB 使用方便, 它使工程和科学界能快速地采用 GPU 进行科学计算。MathWorks 首次支持 NVIDIA 具有 CUDA 的 GPU,这使 MATLAB 用户能利用 GPU 极大地提速其应用程序。Parallel Computing 使 MATLAB 的工程师和科学家只需进行少量编程,即可访问所有开放给他们的计算资源,从本地桌面的多核和 GPU 到集群和网格等等。” GPU 最初设计用于图像密集型视频游戏产业中的图形渲染,但近年来 GPU 不断发展壮大,现可用于更广泛的用途。研究人员可对其进行编程以执行计算和复杂图形效果,用于数据分析、数据可视化,以及金融建模和生物建模等应用。 NVIDIA 公司 产品部高级经理 Sumit Gupta 说:“MATLAB 是工程师和科学家工具箱中的基本工具。使用 GPU 可使 MATLAB 用户加速其各种应用,这为工程与科学应用领域中的突破性创新提供了基础。” MATLAB用户可以使用MathWorks提供的Parallel Computing Toolbox在GPU上轻松实现具有GPU计算特色的代码加速。

    时间:2019-04-19 关键词: NVIDIA matlab GPU 嵌入式处理器 首次

  • VB与MATLAB混合编程探讨

    摘要:介绍了VB与MATLAB混合编程的方法,二者结合可以充分利用VB的方便快捷和MATLAB软件工具箱的强大功能。 关键词: VB VC++ MATLAB DLL 编译 MATLAB Add-in MATLAB是MathWorks公司开发的科学计算环境,具有强大的计算绘图能力,提供大量的函数库、工具箱,几乎涵盖了所有的工程计算领域,被誉为“演算纸”式的工程计算工具。但是MATLAB语言是一种解释执行的脚本语言,运算速度较慢是一个比较突出的问题。 Visual Basic作为一门易学易用的编程语言,受到很多工程技术人员的青睐,其执行速度相对较快,界面友好。因此实现VB与MATLAB混合编程,可以为科研工作和工程应用提供有力的技术支持。 1 基本思路及实现方法 MATLAB提供了与C++、Fortran的程序接口,并没有提供直接与VB的接口。目前VB与MATLAB混合编程方面主要使用以下一些方法: (1)在VB中通过调用MATLAB的引擎(Engine)接口,使用Windows的OLE或ActiveX通道与MATLAB通信。 通过Object.Execute?MATLAB语句在程序中直接使用MATLAB提供的函数库和图形库。这种方法可以较快地编写出程序;但在调用引擎时,会在后台启动一个MATLAB进程,影响程序运行速度,占用内存。 (2)通过使用嵌入VB的矩阵函数库MatrixVB的方法。MatrixVB是由原MathTools公司开发的第三方插件,利用与MATLAB相似的函数、语法嵌入到VB中,可以象使用VB的函数、命令一样使用MATLAB函数。这种方法语法和函数使用比较简单,编程效率很高,几乎完全融入VB语言,特别对图形的处理非常方便,弥补了其他方法在图形处理上的弱点。安装后,只需在打开的工程中添加MatrixVB库即可(在工程->引用对话框中选中MMatrix)。但由于其仍然采用解释执行,执行效率较低,实时运算难以实现。 (3)借助Visual C++与MATLAB的接口,将MATLAB的程序文件(.M)编译为动态链接库(.DLL),VB在代码中调用生成的.DLL中的函数,实现算法,便于用户脱离MATLAB环境使用。由于算法部分采用C++语句,运行速度较快,可应用于实时运算。这种方法对开发者在设置和编程上有一定要求,本文将详细阐述具体实现步骤。其基本思路如图1所示。 第一步,编写M文件。在MATLAB中打开Editor,按照MATLAB程序格式输入代码,实现算法,调试成功。注意:M文件必须以Function开始,避免在VC++中出现转换错误。 第二步,使用MATLAB6.0新提供的编译插件MATLAB Add-in在VC++中转换为C文件。在转换前做好MATLAB与VC++的接口连接。步骤如下: %26;#183;在MATLAB中运行“mex -setup”,选择Microsoft Visual C/C++ version 6.0选项,安装MATLAB Add-in文件到VC++目录,确认;接着运行“mbuild -setup”,选择Microsoft Visual C/C++ version 6.0作为本地默认编译器;然后在MATLAB下运行“cd?prefdir”和“mccsavepath”命令,MATLAB Add-in可以脱离MATLAB环境找到MATLAB路径。 %26;#183;在VC++中选择“工具?tools->定制(customize)->附加项和宏文件?Add-ins and Macro Files页”,选中“MATLAB Add-in”。这样,在VC++工具栏出现MATLAB Add-in图标,在VC++新建工程对话框中会出现“MATLAB Project Wizard”。至此连接工作完成。 %26;#183;打开VC++,在新建工程中选择“MATLAB Project Wizard”,按照提示,选择“Shalled M-dll”,输入M文件位置,VC++开始转换。如果M文件没有错误,在工程文件夹中会生成一系列.C文件。其中与M文件同名的.C文件即为转换的C代码。 第三步,编译DLL文件(强烈建议不要对刚刚生成的C代码作任何修改)。选择“编译”菜单,构建.DLL文件,在文件夹中会生成与工程名相同的DLL文件。 第四步,在VB中调用DLL文件。在第二步生成的C代码中找到所要的接口函数,注意大小写,记下函数名。在VB中使用Declare语句声明这个函数。在窗体的“通用-声明”输入如下语法: Declare Function /Sub <函数名> Lib “”Alias “<函数名>” ?<参数表> as (具体语法可参看VB使用手册)。 在程序代码中直接调用声明的函数即可。需要注意的是函数调用过程中的参数传递问题。由于VB和C的数据类型以及参数传递形式不太一样,传递不当,可能会造成调试困难。特别是MATLAB中用到的大量矩阵(数组)参数,调用需十分当心。本文在下面例子中采用文件方式传递参数,利用VB和MATLAB的文件读写功能传递数组参数,对于实时性要求不高的应用,可以方便稳妥地实现数据传递。 2 应用举例 在VB中利用随机数生成16个10以内的整数,作为一个信号序列,利用MATLAB的快速傅立叶变换函数(FFT())对序列进行变换,再将变换结果传递回VB,并显示在窗体上。 在MATLAB中编辑好M文件(test.m),实现读取序列文件及FFT并写回序列文件,调试成功。代码如下: function t fid=fopen?‘t.txt‘?‘rt+‘? %以读写文本方式打开 文件 ?a?count?=fscanf?fid?‘%d‘? %文件以整数格式读入 矩阵a m=fft?a?count? %FFT运算 frewind?fid? %文件指针指向文件头 fprintf?fid?‘%fn‘?m? %向文件写入矩阵m fclose?fid? 按照前述步骤在VC++中转换为test.c文件,找到接口函数,本例为mlfTest()。 void mlfTest(void){ ? mlfEnterNewContext(0,0);? Mtest(); mlfRestorePreviousContext(0,0);? } 编译生成test.dll文件。 在VB中生成随机序列并写入文件: Private Sub Command1_Click() Randomize Dim i As Integer Dim a As Integer Dim b As String Text1.Text = ″″ Open App.Path & ″t.txt ″ For Output As #1 For i = 1 To 16 a = Int(10 * Rnd) Print #1, LTrim(a) b = b & Str(a) & Chr(13) & Chr(10) Next i Text1.Text = b Close #1 End Sub 声明mlfTest()函数: Private Declare Sub mlfTest Lib ″G?testdlldll.dll″ ? 调用该函数的事件代码: Private Sub Command2_Click() MlfTest ‘调用函数 End Sub 本例中未向函数传递参数,也无需函数返回运算结果,故采用调用子程序过程(Sub)方式直接调用。结果由VB读取文件获得: Private Sub Command3_Click() Dim str1 As String Dim str2 As String Text2.Text = ″″ Open App.Path & ″t.txt″ For Input As #1 Do While Not EOF?1 Line Input #1? str1 str2 = str2 & str1 & Chr(13) & Chr(10) Loop Text2.Text = str2 Close #1 End Sub 本例在Windows XP、VB6.0、VC++6.0、MATLAB6.5下调试通过。VB与MATLAB的混合编程,可以脱离MATLAB环境运行,有利于程序发布及使用。通过二者结合,减少了设计算法的时间,降低了编程难度,同时兼顾了代码安全和界面友好。程序界面如图2所示。

    时间:2014-07-09 关键词: matlab 嵌入式开发 编程 vb

  • The MathWorks 发布最新版本的MATLAB

    The MathWorks近日宣布发布最新版本2008b(R2008b)的MATLAB 和Simulink产品家族。R2008b包含MATLAB和Simulink的新功能、2个新产品、19个主要产品的升级以及增强的PolySpace代码验证产品。 此次版本的最重大的突破功能是: The MathWorks推出 Simscape 语言,可在 Simulink 环境中创建物理建模的组件和非因果仿真域。另外,Parallel Computing Toolbox(并行计算工具箱)现在能让用户制作并发布并行MATLAB应用程序,这些程序既可作为独立的可执行文件,也可作为计算机集群使用的软件组件。 新版本R2008b其他的新增功能: · Symbolic Math Toolbox (符号数学工具箱)-新版本对符号计算提供了新的notebook接口,并支持从MATLAB直接访问 MuPAD 符号引擎和语言。 · Simulink Fixed Point(Simulink定点工具箱)-新版本提供最高128 位字长的定点类型,可精确进行设计和仿真,支持C和HDL代码的自动生成。 · SimElectronics-该新产品用于在Simulink环境下进行电子和电动机械系统的建模与仿真。 · Econometrics Toolbox(计量经济学工具箱)- 这个新产品整合了 GARCH Toolbox (GARCH 工具箱)的功能,用于经济预测和风险管理。 · Statistics Toolbox(统计工具箱)-新版本支持在计算生物学以及其他应用领域的非线性混合效果(NLME)模型。

    时间:2014-09-20 关键词: mathworks matlab 嵌入式开发 the 新版本

  • MathWorks 推出 MATLAB 的重要新版本

    所有用户均可从新增的图形、大数据功能和改进的协作功能受益。  MathWorks今日宣布,推出MATLAB的重要新版本。作为2014b版本的一部分,重大的更新功能包括了全新的图形系统、大数据功能以及经过改进用于打包和分享代码及源控制集成的协作功能。工程师和科学家利用这些新增功能,能够在所有主要工业领域更加轻松地分析数据并实现数据可视化。 图形系统 MATLAB 全新图形系统中的默认颜色、字体和样式经过更新,可以更加轻松地解释数据,使用户能够进行深入的了解。使用更改图形对象属性的新语法,可以更加方便地自定义可视化。新增功能包括可旋转的轴勾选标签、多语言文本和符号支持以及日期和时间勾选标签的自动更新。 大数据支持 MATLAB 中新增的大数据功能为不适合放入内存的数据集提供了更有效的处理方式。这包括简化大数据文本文件和数据库访问及分析的方式,以及支持在 MATLAB 中直接使用 MapReduce 编程技术。这些功能还可应用于大数据平台 Hadoop。 协作和共享 MATLAB 2014b 现在通过 Current Folder 浏览器集成 Git 和 Subversion 源控制系统,包括从 Web 托管的存储库(如 GitHub 上的存储库)同步。自定义工具箱可以打包为一个可安装文件,方便分发,以及安装和管理共享代码。 MathWorks 产品市场经理 Kevin Cohan 说道:“2014b版本 是众多团队多年辛勤工作的结晶。该版本契合客户需求,提供了能够支持关键行业需求的新增功能,例如能够更加方便地处理和分析大数据。” MATLAB R2014b 现已上市。

    时间:2015-03-10 关键词: mathworks matlab 嵌入式开发 新版本

  • MathWorks 在 MATLAB 和 Simulink 中推出新功能

    2014b 版本包含全新的 MATLAB 图形和大数据功能,并且能够在 Simulink 中更快速地运行连续仿真。 中国北京 – 2014 年10月9日 – MathWorks今日宣布推出2014b版本。该新版本在MATLAB中新增了一系列功能,包括图形和大数据,以及在Simulink中新增加速建模和运行连续仿真的选项。 MATLAB 产品系列 新增的 MATLAB 功能提供了全新的图形系统,增加了对大数据的支持、打包和共享代码的功能以及源控制集成。新增功能包括: 全新 MATLAB 图形系统 新增可以在桌面上处理大数据的功能,可与 Hadoop 结合使用 Git 和 Subversion 源控制集成以及从 GitHub 上的文件交换区访问项目 MATLAB 工具箱打包为单个、可安装文件,便于共享和下载自定义工具箱 具有时区和显示选项的日期和时间数据类型 Arduino 和 Android硬件支持,实现与电机和执行机构的交互及访问传感器数据 MATLAB Production Server:客户端库,可用于 C/C++ 和 Python 环境 Statistics Toolbox:二进制分类器(如 SVM)以及广义混合线性(GLME) 模型的多类机器学习框架 Datafeed Toolbox:Bloomberg B-PIPE 和 Thomson Reuters Eikon 的连接支持 Image Processing Toolbox:图像分割应用程序、区域分析应用程序以及可使用 MATLAB Coder进行19 个函数的C 代码生成 MATLAB Report Generator:填空式 Word 和 HTML 表单,增强自定义报告功能 Simulink 产品系列 Simulink 中的新增功能可以更加快速地运行连续仿真、加速建模: 加速建模的智能编辑提示以及批注和界面的编辑器视图 快速仿真重新启动,可快速运行连续仿真 Simulink 函数可从 Simulink 和 Stateflow 中的任意位置创建和调用可重用函数 仿真数据检查器中的实时流和数据光标 Simscape:表示物理连接的域特定直线样式 Stateflow:用于加速调试过程的条件断点、观察数据以及快速动画模式 Simulink Report Generator:填空式 Word 和 HTML 表单,增强自定义报告功能 信号处理和通信 Computer Vision System Toolbox:立体相机校正应用程序、3D 点云查看器和 用于大量图像的imageset 类 DSP System Toolbox:使用 Embedded Coder 和多级采样速率转换器,基于 NE10 生成 ARM Cortex-A 代码 Communications System Toolbox:RTL-SDR 无线接收器连接、基于 Zynq 的无线连接和目标定位、I/Q 不平衡补偿器以及新眼图 Phased Array System Toolbox:Simulink 中相控阵列系统设计的模块库 LTE System Toolbox:LTE Release 11 支持,包括下行控制信道 (E-PDCCH) 和解调参考信号 (DMRS) 生成 SimRF:仿真加速的频域模式 代码生成 Embedded Coder:AUTOSAR 目标更新,包括 4/1 ARXML、具备 Simulink 函数的客户端/服务器以及多实例组件和 IFL/IFX 库 HDL Coder:Xilinx Vivado 集成和 IP 核,可以为 Altera SoC 生成 AXI 接口 HDL Verifier:Xilinx Vivado 支持 FPGA 在环仿真 Verification and Validation Simulink Verification and Validation:关系边界值的模型覆盖率 Simulink Design Verifier:关系边界值测试生成和引导组件分析的测试生成顾问 Polyspace Bug Finder 和 Polyspace Code Prover:MISRA C:2012 合规性检查 R2014b 现已上市。

    时间:2015-03-10 关键词: mathworks matlab 嵌入式开发 simulink

  • MathWorks发布2015a版MATLAB 和 Simulink 产品系列

    Release 2015a为无线通讯和雷达系统提供从天线到数字的(antenna-to-bits) 仿真和测试。 中国北京 – 2015 年 3 月 11 日 – MathWorks 今日推出了包含一系列 MATLAB 和 Simulink 新功能的 Release 2015a (R2015a)。在此版本中,MathWorks 推出了从天线到数字的 (antenna-to-bits) 无线设计解决方案。该解决方案可帮助无线和雷达系统工程师仿真集成多个天线、智能射频 (RF) 设备和高级接收器算法的设计。新的软件无线电 (SDR) 硬件支持允许通过 LTE 及其他波形进行无线测试。 除了新版 MATLAB 和 Simulink, R2015a还包括四个新产品: Antenna Toolbox,用于设计、分析和可视化天线阵元和天线阵列 Robotics System Toolbox,用于为机器人应用程序设计和测试算法 Simulink Test,用于创建测试用具、创作复杂的测试序列和管理基于仿真的测试 Vision HDL Toolbox,用于为 FPGA 和 ASIC 设计图像处理、视频和计算机视觉系统 MATLAB 产品系列 MATLAB:将自定义工具箱的文档集成到 MATLAB 帮助浏览器 MATLAB:将 mapreduce 算法扩展到用于数据密集型应用的 MATLAB Distributed Computing Server MATLAB: 支持Arduino Leonardo 和其他Arduino开发板 MATLAB Compiler:包括为 Microsoft Excel 桌面应用程序创建插件的功能 MATLAB Compiler SDK:MATLAB Compile 的扩展,用于创建 C/C++、Java 和 .NET 共享库,还可用作 MATLAB Production Server 的开发框架 Statistics and Machine Learning Toolbox:分类学习器应用程序,用于使用监督机器学习来训练模型和分类数据 Partial Differential Equation Toolbox:三维有限元分析,包括几何结构导入、网格划分、PDE 求解和查看结果 Simulink 产品系列 Simulink:用于调节、测试和可视化仿真的刻度盘、标尺和范围 Simulink:使用即时 (JIT) 编译实现快速模型更新,适用于 MATLAB 函数块和 Stateflow 图 Simulink:针对 Apple iOS 设备的硬件支持包,用于创建运行 Simulink 模型和算法的应用程序 Simulink:通过 GitHub、电子邮件或以封装的自定义工具箱的形式共享项目 SimDriveline:用于 Gears 组件库中所有模块的热变量 信号处理和通信 Signal Processing Toolbox:非均匀采样数据的信号分析;简化的界面和示例,以及增强的信号测量 Communications System Toolbox:基于 Zynq 的 SDR 的互连和定向,用于无线接收器的新同步方法,以及端对端 QAM 链路示例 DSP System Toolbox:适用于 ARM Cortex-A 的低延时音频设备 I/O、多速率和可调滤波器类型、增强的流范围以及 Embedded Coder 优化的算法库 Phased Array System Toolbox:简化了多雷达目标、阵列校准和高级驾驶辅助系统 (ADAS) 示例的建模和评估 LTE System Toolbox:LTE Release 11 版本中的协同多点 (CoMP) 仿真和 UMTS 波形生成 Antenna Toolbox:一款用于设计、分析和可视化天线元件和天线阵列的新产品 机器人 Robotics System Toolbox:一款用于为机器人应用程序设计和测试算法的新产品 代码生成 MATLAB Coder:改进的 MATLAB Coder:应用程序,具有集成的编辑器和简化的工作流程,以及用于逻辑索引的更高效的代码 HDL Coder:无需综合的关键路径评估 Vision HDL Toolbox:一款用于为 FPGA 和 ASIC 设计图像处理、视频和计算机视觉系统的新产品 Simulink Desktop Real-Time:包括 Real-Time Windows Target 功能,并增加了 Mac OS X 和 Thunderbolt 接口支持 测试和验证 Simulink Test:一款用于创建测试用具、创作复杂的测试序列和管理基于仿真的测试的新产品 Simulink Verification and Validation:用于 C 编码的 S 函数和 MATLAB 编码的系统对象的覆盖率衡量 Simulink Design Verifier:用于简化和分割复杂模型的模型切片,以便调试和分析 R2015a 现已上市。有关详细信息,请参阅 R2015a 版本亮点。

    时间:2015-04-21 关键词: matlab 嵌入式开发 simulink

  • 如何将System generator与MATLAB进行匹配?

    如何将System generator与MATLAB进行匹配?

    system generator是xilinx公司的系统级建模工具,它是扩展mathworks公司的MATLAB下面的simulink平台,添加了XILINX FPGA专用的一些模块。加速简化了FPGA的DSP系统级硬件设计。 但是对于初学者来说,不知道什么版本的matlab和什么版本的sytem generator相匹配,以及如何将他们关联在一起?让我来告诉你吧! For System Generator for DSP Release Notes and Known Issues, see (Xilinx Answer 29595). 版本匹配:OperaTIng System Support: Windows 7 Professional Windows XP Professional Windows Server 2008 Red Hat Enterprise 6 WorkstaTIon Red Hat Enterprise 5 WorkstaTIon SUSE Linux Enterprise 11 Support for 32-bit and 64-bit on all OS Required: OpTIonal: Synopsys Synplify Pro H-2013.03 Mentor Graphics ModelSim 10.1b System Generator for DSP 14.5Operating System Support: Windows 7 Professional Windows XP Professional Windows Server 2008 Red Hat Enterprise 6 Workstation Red Hat Enterprise 5 Workstation SUSE Linux Enterprise Support for 32-bit and 64-bit on all OS Required: ISE Design Suite 14.5 System Edition MATLAB 2012a and 2012b from the MathWorks (requires Simulink Fixed-Point Toolbox for bus-widths greater than 53 bits) Optional: Synopsys Synplify Pro H-2013.03 Mentor Graphics ModelSim 10.1b System Generator for DSP 14.4 and Vivado System Generator 2012.4Operating System Support: Windows 7 Professional Windows XP Professional Red Hat Enterprise 5 Workstation Red Hat Enterprise 4 Workstation SUSE Linux Enterprise Support for 32-bit and 64-bit on all OS Required: ISE Design Suite 14.4 System Edition MATLAB R2011a, R2011b, 2012a and 2012b from the MathWorks (requires Simulink Fixed-Point Toolbox for bus-widths greater than 53 bits) Optional: Synopsys Synplify Pro F-2011.12 Mentor Graphics ModelSim 10.1a System Generator for DSP 14.3 and Vivado System Generator 2012.3Operating System Support: Windows 7 Professional Windows XP Professional Red Hat Enterprise 5 Workstation Red Hat Enterprise 4 Workstation SUSE Linux Enterprise Support for 32-bit and 64-bit on all OS Required: ISE Design Suite 14.3 System Edition MATLAB R2011a, R2011b, 2012a and 2012b from the MathWorks (requires Simulink Fixed-Point Toolbox for bus-widths greater than 53 bits) Optional: Synopsys Synplify Pro F-2012.03-SP1 Mentor Graphics ModelSim 10.1a System Generator for DSP 14.2Operating System Support: Windows 7 Professional Windows XP Professional Red Hat Enterprise 5 Workstation Red Hat Enterprise 4 Workstation SUSE Linux Enterprise Support for 32-bit and 64-bit on all OS Required: ISE Design Suite 14.2 System Edition MATLAB R2011a, R2011b and 2012a from the MathWorks (requires Simulink Fixed-Point Toolbox for bus-widths greater than 53 bits) Optional: Synopsys Synplify Pro E-2010.09-1 Mentor Graphics ModelSim 10.1a System Generator for DSP 14.1Operating System Support: Windows 7 Professional Windows XP Professional Red Hat Enterprise 5 Workstation Red Hat Enterprise 4 Workstation SUSE Linux Enterprize Support for 32-bit and 64-bit on all OS Required: ISE Design Suite 14.1 System Edition MATLAB R2011a and R2011bfrom the MathWorks (requires Simulink Fixed-Point Toolbox for bus-widths greater than 53 bits) Optional: Synopsys Synplify Pro E-2010.09-1 Mentor Graphics ModelSim 10.1a System Generator for DSP 13.4Operating System Support: Windows 7 Professional Windows XP Professional Red Hat Enterprise 5 Workstation Red Hat Enterprise 4 Workstation SUSE Linux Enterprise Support for 32-bit and 64-bit on all OS Required: ISE Design Suite 13.4 Logic Edition MATLAB R2011a and Beta support for R2011b from the MathWorks (requires Simulink Fixed-Point Toolbox for bus-widths greater than 53 bits) Optional: ISE Design Suite 13.4 - Embedded/System Editions Synopsys Synplify Pro E-2010.09-1 Mentor Graphics ModelSim 6.6d System Generator for DSP 13.3Operating System Support: Windows 7 Professional Windows XP Professional Red Hat Enterprise 5 Workstation Red Hat Enterprise 4 Workstation SUSE Linux Enterprise Support for 32-bit and 64-bit on all OS Required: ISE Design Suite 13.3 Logic Edition MATLAB R2010a, R2010b, or R2010bSP1 and R2011a from the MathWorks (requires Simulink Fixed-Point Toolbox for bus-widths greater than 53 bits) Optional: ISE Design Suite 13.3 - Embedded/System Editions[!--empirenews.page--] Synopsys Synplify Pro E-2010.09-1 Mentor Graphics ModelSim 6.6d System Generator for DSP 13.2Operating System Support: Windows 7 Professional Windows XP Professional Red Hat Enterprise 5 Workstation Red Hat Enterprise 4 Workstation SUSE Linux Enterprise Support for 32-bit and 64-bit on all OS Required: ISE Design Suite 13.2 Logic Edition MATLAB R2010a, R2010b, or R2010bSP1 from the MathWorks (requires Simulink Fixed-Point Toolbox for bus-widths greater than 53 bits) Optional: ISE Design Suite 13.2 - Embedded/System Editions Synopsys Synplify Pro E-2010.09-1 Mentor Graphics ModelSim 6.6d Beta support is provided for MATLAB 2011a System Generator for DSP 13.1Operating System Support: Windows 7 Windows XP Windows Vista Red Hat Linux 4u7 Red Hat Linux 5u2 SUSE Linux 10.1 Support for 32-bit and 64-bit on all OS Required: ISE Design Suite 13.1 Logic Edition MATLAB R2010a or R2010b from the MathWorks (requires Simulink Fixed-Point Toolbox for bus-widths greater than 53 bits) Optional: ISE Design Suite 13.1 - Embedded/System Editions Beta support is provided for MATLAB 2011a Synopsys Synplify Pro E-2010.09-1 Mentor Graphics ModelSim 6.6d System Generator for DSP 12.4Operating System Support: Windows XP Windows Vista Red Hat Linux 4u7 Red Hat Linux 5u2 SUSE Linux 10.1 Support for 32-bit and 64-bit on all OS Required: ISE Design Suite 12.4 Logic Edition MATLAB R2010a or R2010b from the MathWorks (requires Simulink Fixed-Point Toolbox for bus-widths greater than 53 bits) Optional: ISE Design Suite 12.4 - Embedded/System Editions Synopsys Synplify Pro E-2010.09-1 Mentor Graphics ModelSim 6.5c System Generator for DSP 12.3Operating System Support: Windows XP Windows Vista Red Hat Linux 4u7 Red Hat Linux 5u2 SUSE Linux 10.1 Support for 32-bit and 64-bit on all OS Required: ISE Design Suite 12.3 Logic Edition MATLAB R2009b or R2010a from the MathWorks (requires Simulink Fixed-Point Toolbox for bus-widths greater than 53 bits) Beta support for MATLAB 2010b Optional: ISE Design Suite 12.3 - Embedded/System Editions Synopsys Synplify Pro E-2010.09-1 Mentor Graphics ModelSim 6.5c System Generator for DSP 12.2Operating System Support: Windows XP Windows Vista Red Hat Linux 4u7 Red Hat Linux 5u2 SUSE Linux 10.1 Support for 32-bit and 64-bit on all OS Required: ISE Design Suite 12.2 Logic Edition MATLAB R2009b or R2010a from the MathWorks (requires Simulink Fixed-Point Toolbox for bus-widths greater than 53 bits) Optional: ISE Design Suite 12.2 - Embedded/System Editions Synopsys Synplify Pro D-2010.03 Mentor Graphics ModelSim 6.5c System Generator for DSP 12.1Operating System Support: Windows XP Windows Vista Red Hat Linux 4u7 Red Hat Linux 5u2 SUSE Linux 10.1 * Support for 32-bit and 64-bit on all OS Required: ISE Design Suite 12.1 Logic Edition MATLAB R2009a or R2009b from the MathWorks Optional: ISE Design Suite 12.1 - Embedded/System Editions Synopsys Synplify Pro D-2010.03 Mentor Graphics ModelSim 6.5c System Generator for DSP and AccelDSP 11.4/11.5Operating System Support:System Generator and AccelDSP Windows XP System Generator only: Windows Vista Red Hat Linux 4u7 Red Hat Linux 5u2 SUSE Linux 10.1 Required: ISE Design Suite 11.4 Logic Edition MATLAB R2008a R2008b, R2009a or R2009b from The MathWorks Optional: ISE Design Suite 11.4 - Embedded/System Editions Synopsys Synplify Pro 8.9 Mentor Graphics ModelSim 6.4b System Generator for DSP and AccelDSP 11.3Operating System Support:System Generator and AccelDSP Windows XP System Generator only: Windows Vista Red Hat Linux 4u7 Red Hat Linux 5u2 SUSE Linux 10 Required: ISE Design Suite 11.3 Logic Edition MATLAB R2008a R2008b, or R2009a from the MathWorks Optional: ISE Design Suite 11.3 - Embedded/System Editions Synopsys Synplify Pro 8.9 Mentor Graphics ModelSim 6.4b System Generator for DSP and AccelDSP 11.2Operating System Support: Windows XP (32 bit only) - Both System Generator and AccelDSP Red Hat Linux 4u7 (32 and 64 bit) - System Generator only Required: ISE Design Suite 11.2 Logic Edition MATLAB R2008a R2008b, or R2009a from the MathWorks[!--empirenews.page--] Optional: ISE Design Suite 11.2 - Embedded/System Editions Synopsys Synplify Pro 8.9 Mentor Graphics ModelSim 6.4b System Generator for DSP and AccelDSP 11.1Operating System Support: Windows XP (32 bit only) - Both System Generator and AccelDSP Red Hat Linux 4u7 (32 and 64 bit) - System Generator only Required: ISE Design Suite 11.1 Logic Edition MATLAB R2008a or R2008b from the MathWorks Optional: ISE Design Suite 11.1 - Embedded/System Editions Synopsys Synplify Pro 8.9 Mentor Graphics ModelSim 6.4b System Generator for DSP and AccelDSP 10.1.03Required: Windows XP (32 bit only) ISE 10.1.03 ISE 10.1 IP Update 3 MATLAB R2007a, R2007b or R2008a from the MathWorks Optional: EDK 10.1.03 ChipScope 10.1.03 Synplicity Synplify Pro 8.8.0.4 Model Technology ModelSim 6.3c System Generator for DSP and AccelDSP 10.1.02Required: Windows XP (32 bit only) ISE 10.1.02 ISE 10.1 IP Update 2 MATLAB R2007a, R2007b or R2008a from the MathWorks Optional: EDK 10.1.02 ChipScope 10.1.02 Synplicity Synplify Pro 8.8.0.4 Model Technology ModelSim 6.3c System Generator for DSP and AccelDSP 10.1.01Required: Windows XP (32 bit only) ISE 10.1.01 ISE 10.1 IP Update 1 MATLAB R2007a or R2007b from the MathWorks Optional: EDK 10.1.01 ChipScope 10.1.01 Synplicity Synplify Pro 8.8.0.4 Model Technology ModelSim 6.3c System Generator for DSP and AccelDSP 10.1.00.1134Required: Windows XP (32 bit only) ISE 10.1 ISE 10.1 IP Update 0 MATLAB R2007a or R2007b from MathWorks Optional: EDK 10.1 ChipScope 10.1 Synplicity Synplify Pro 8.8.0.4 Model Technology ModelSim 6.3c System Generator for DSP 9.2.01.1028Required: Windows XP ISE 9.2i Service Pack 3 or later ISE 9.2i IP Update 2 or later MATLAB R2006b or R2007a from MathWorks Optional: AccelDSP 9.2i ISE 9.2i Service Pack 3 Virtex-5 LX220T/SXT Installer EDK 9.2i ChipScope 9.2i Synplicity Synplify Pro 8.8.0.4 Model Technology ModelSim 6.1f System Generator for DSP 9.2.00.967Required: Windows XP ISE 9.2i Service Pack 2 or later ISE 9.2i IP Update 1 or later MATLAB R2006b or R2007a from MathWorks Optional: ISE 9.2i Service Pack 2 Virtex-5 LX220T/SXT Installer ChipScope 9.2i Synplicity Synplify Pro 8.8.0.4 Model Technology ModelSim 6.1f System Generator for DSP 9.1.01Required: Windows XP ISE 9.1i Service Pack 3 or later ISE 9.1i IP Update 2 or later MATLAB R2006a or R2006b from MathWorks; see (Xilinx Answer 23145) for the required MATLAB 2006a patch. Optional: ISE 9.1i Service Pack 3 Virtex-5 LX220T/SXT Installer ChipScope 9.1i EDK 9.1i Synplicity Synplify Pro 8.6.2 Model Technology ModelSim 6.1f System Generator for DSP 9.1Required: Windows XP (Windows XP 64 bit is not currently supported) ISE 9.1i Service Pack 2 or later ISE 9.1i IP Update 1 or later MATLAB R2006a or R2006b from MathWorks; see (Xilinx Answer 23145) for the required MATLAB 2006a patch. Optional: ISE 9.1i Service Pack 2 Virtex-5 LX220T/SXT Installer ChipScope 9.1i EDK 9.1i Synplicity Synplify Pro 8.6.2 Model Technology ModelSim 6.1f System Generator for DSP 8.2.x PC Only ISE 8.2i Service Pack 3 or later ISE 8.2i IP Update 2 ChipScope 8.2i EDK 8.2i R14 SP3 and R2006a from MathWorks; see (Xilinx Answer 23145) for the required MATLAB 2006a patch. Synplicity Synplify Pro 8.4 Model Technology ModelSim 6.1b Windows XP System Generator for DSP 8.2 PC Only ISE 8.2i Service Pack 1 or later ISE 8.2i IP Update 1 ChipScope 8.2i EDK 8.2i R14 SP3 and R2006a from MathWorks; see (Xilinx Answer 23145) for the required MATLAB 2006a patch. Synplicity Synplify Pro 8.4 Model Technology ModelSim 6.1b Windows XP System Generator for DSP 8.1.01 PC Only ISE 8.1i Service Pack 2 or later ISE 8.1i IP Update 1 ChipScope 8.1i EDK 8.1i R14 SP1, R14 SP2, R14 SP3, and R2006a from MathWorks; see (Xilinx Answer 23145) for the required MATLAB 2006a patch. Synplicity Synplify Pro 8.4 Model Technology ModelSim 6.1b Windows XP System Generator for DSP 8.1 PC Only ISE 8.1i Service Pack 1 or later PC Only ISE 7.1i Service Pack 4 or later ChipScope 8.1i ChipScope 7.1i[!--empirenews.page--] EDK 7.1i R14 SP1, R14 SP2 and R14 SP3 from MathWorks Windows XP System Generator for DSP 7.1 PC Only ISE 7.1i Service Pack 1 or later ChipScope 7.1i EDK 7.1i SP2 R14, R14 SP1, R14 SP2 from MathWorks Windows XP System Generator for DSP 6.1 PC Only ISE 6.3i Service Pack 1 or later IP Update 4 ChipScope 6.3i EDK 6.3i R13 SP1 or R14 from MathWorks For information on installing System Generator for DSP 6.1.1 with ISE 6.2i, see (Xilinx Answer 18964) Windows XP System Generator for DSP 3.1 PC Only ISE 5.2i Service Pack 1 or later R13 from MathWorks Synplify 7.2 Leonardo Spectrum 2002e Windows 2000 and Windows XP System Generator for DSP 2.3 PC Only ISE 5.1i IP Update 1 R12 SP1 or R13 from MathWorks Synplify 7.2 Leonardo Spectrum 2002d Windows NT 4.0 Service Pack 6, Windows 2000, and Windows XP System Generator for DSP 2.2 PC Only ISE 4.2i IP Update 2 R12 SP1 from MathWorks Synplify 7.1 Leonardo Spectrum 2002a Windows NT 4.0 Service Pack 6 or greater, Windows 2000, and Windows ME System Generator for DSP 2.1 PC Only ISE 4.1i Service Pack 1 or later IP Update 1 R12 or R12 SP1 from MathWorks Windows NT 4.0 Service Pack 6 or greater, Windows 2000, and Windows 98 System Generator for DSP 1.1 PC Only ISE 3.xi Service Pack 7 or later IP Update 3 R11 SP1 or R12 from MathWorks Windows NT 4.0 and Windows 98 System Generator for DSP 1.0 PC Only ISE 3.1i Service Pack 1 or later IP Update 1 (d_ip1) R11 SP1 from MathWorks Windows NT 4.0 and Windows 98 也可以参考 如果安装好了system generator(安装ISE套件的时候一般会一起安装的)和相应的MATLAB后还需要做如下操作方能成功使用system generator 1、打开“我的程序 ——> Xilinx Design Tools——> Xilinx Design Suit 14.2——>system generator MATLAB Configurator出现如下界面   一开始出现的是no configured,Xilinx Suite选择IDS,并在前面方框勾上,并确保MATLABD的安装路径是正确的,注意MATLAB的安装路径不能出现中文和空格。最后点击Apply,稍等一会...Status就会出现Configured。 说明system generator和MATLAB已经关联成功!

    时间:2017-02-19 关键词: Xilinx 赛灵思 matlab 嵌入式开发

  • python和matlab哪个好?

    python和matlab哪个好?

    一、Python简介 Python是一种面向对象的解释型计算机程序设计语言。Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议[2] 。Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。 Python执行: Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。这种机制的基本思想跟Java,.NET是一致的。然而,Python Virtual Machine与Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的Virtual Machine。这里的高级并不是通常意义上的高级,不是说Python的Virtual Machine比Java或.NET的功能更强大,而是说和Java 或.NET相比,Python的Virtual Machine距离真实机器的距离更远。或者可以这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine。 基于C的Python编译出的字节码文件,通常是.pyc格式。除此之外,Python还可以以交互模式运行,比如主流操作系统Unix/Linux、Mac、Windows都可以直接在命令模式下直接运行Python交互环境。直接下达操作指令即可实现交互操作。   Python的优势: Python相对于Matlab最大的优势:免费。但既然你已经能用上Matlab,想必不在乎这个了。 Python次大的优势:开源。你可以大量更改科学计算的算法细节。 可移植性,Matlab必然不如Python。但你主要做Research,这方面需求应当不高。 第三方生态,Matlab不如Python。比如3D的绘图工具包,比如GUI,比如更方便的并行,使用GPU,FuncTIonal等等。长期来看,Python的科学计算生态会比Matlab好。 语言更加优美。另外如果有一定的OOP需求,构建较大一点的科学计算系统,直接用Python比用Matlab混合的方案肯定要简洁不少。 毕竟是通用的编程语言,做做Web,搞个爬虫,编个脚本,写个小工具啥的用处广。   二、MATLAB简介 MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。 MATLAB和MathemaTIca、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。   Matlab的优势: Community. 既然你们实验室用Matlab,说明搞你们这个领域的大部分学者可能都用Matlab。交流起来必然更加方便。 Simulink, 只能说这是个良心作品,不过题主好像用不着…… Matlab本来号称更快,但实际上由于Python越来越完善的生态,这个优势已经逐渐丧失了   三、python和matlab区别 Python相比于Matlab的最大优势是:Python是一门通用编程语言,实现科学计算功能的numpy、scipy、matplotlib只是Python的库和Package而已,除此之外Python还有用于各种用途的库和包,比如用于GUI的PyQt和wxPython,用于Web的Django和Flask Matlab相比于Python最大的优势是:它专门就是给数值计算开发的,在数值计算这个领域库最多、用的人最多、出的书最多   四、如何选择python和matlab 如果你做策略研究,做数据分析,两者功能上差不多,但是应该选择matlab,因为: 1 Python的文档没有Matlab的详细。 2 Matlab将所有的功能整合了在一起,而Python需要自己一个一个安装所需要的包,不同的包的代码风格还不太一样。 如果你还要做网络爬虫,数据清洗等偏IT的工作,那么Python更优。 简单的说,Python是通用语言,什么都能做,而matlab擅长计算。

    时间:2017-11-20 关键词: matlab 嵌入式开发 python

  • matlab是什么编程语言?matlab是编程语言吗

    matlab是什么编程语言?matlab是编程语言吗

    一、matlab定义 The MathWorks公司的MATLAB 是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。使用 MATLAB,您可以较使用传统的编程语言(如 C、C++ 和 Fortran)更快地解决技术计算问题。MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。 MATLAB是矩阵实验室(Matrix Laboratory)的简称,和MathemaTIca、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。   二、matlab是编程语言吗? 严格的来说matlab不算是编程语言。只有你有C语言的基础,Matlab就很容易。Matlab是边解释边执行。另外Matlab集成了大量的自带函数,比如矩阵计算,画图,谱分析。这就不符合标准编程语言的特点。你如果明白类和对象的概念,对用好Matlab很有帮助。所以Matlab属于科学计算工具,而不是严格的一门编程语言。 三、MATLAB优势特点 1) 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来; 2) 具有完备的图形处理功能,实现计算结果和编程的可视化; 3) 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握; 4) 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。 编程环境 MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。 简单易用 Matlab是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。 强大处理 MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而且经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++ 。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。   图形处理 MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。 模块工具 MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。[!--empirenews.page--] 程序接口 新版本的MATLAB可以利用MATLAB编译器和C/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码。允许用户编写可以和MATLAB进行交互的C或C++语言程序。另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。 软件开发 在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支持了函数嵌套,有条件中断等;在图形化方面,有了更强大的图形标注和处理功能,包括对性对起连接注释等;在输入输出方面,可以直接向Excel和HDF5进行连接。   四、matlab的应用 MATLAB®是一种对技术计算高性能的语言。它集成了计算,可视化和编程于一个易用的环境中,在此环境下,问题和解答都表达为我们熟悉的数学符号。典型的应用有: 数学和计算 算法开发 建模,模拟和原形化 数据分析,探索和可视化 科学与工程制图 应用开发,包括图形用户界面的建立 MATLAB是一个交互式的系统,其基本数据元素是无须定义维数的数组。这让你能解决很多技术计算的问题,尤其是那些要用到矩阵和向量表达式的问题。而要花的时间则只是用一种标量非交互语言(例如C或Fortran)写一个程序的时间的一小部分。 名称“MATLAB”代表matrix laboratory(矩阵实验室)。MATLAB最初是编写来提供给对由LINPACK和EINPACK工程开发的矩阵软件简易访问的。今天,MATLAB使用由LAPACK和ARPACK工程开发的软件,这些工程共同表现了矩阵计算的软件中的技术发展。 MATLAB已经与许多用户输入一同发展了多年。在大学环境中,它是很多数学类、工程和科学类的初等和高等课程的标准指导工具。在工业上,MATLAB是高产研究、开发和分析所选择的工具。 MATLAB以一系列称为工具箱的应用指定解答为特征。对多数用户十分重要的是,工具箱使你能学习和应用专门的技术。工具箱是是MATLAB函数(M-文件)的全面的综合,这些文件把MATLAB的环境扩展到解决特殊类型问题上。具有可用工具箱的领域有:信号处理,控制系统神经网络,模糊逻辑,小波分析,模拟等等。

    时间:2017-11-20 关键词: matlab 嵌入式开发 编程

  • matlab和c语言的区别

    matlab和c语言的区别

    一、MATLAB简介 MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB和MathemaTIca、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。   MATLAB功能特性: 数值分析 数值和符号计算 工程与科学绘图 控制系统的设计与仿真 数字图像处理 数字信号处理 通讯系统设计与仿真 财务与金融工程   MATLAB应用: MATLAB产品族可以用来进行以下各种工作: ●数值分析 ●数值和符号计算 ●工程与科学绘图 ●控制系统的设计与仿真 ●数字图像处理技术 ●数字信号处理技术MATLAB在通讯系统设计与仿真的应用 ●通讯系统设计与仿真 ●财务与金融工程 ●管理与调度优化计算(运筹学) MATLAB的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用MATLAB函数集)扩展了MATLAB 环境,以解决这些应用领域内特定类型的问题。 二、C语言简介 C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。 C语言基本特性: 1、高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元 2、结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 3、代码级别的跨平台:由于标准的存在,使得几乎同样的C代码可用于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要进行硬件操作的场合,优于其它高级语言。 4、使用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。   特有特点: C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。 C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。 不同的变量类型可以用结构体(struct)组合在一起。 只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。 部份的变量类型可以转换,例如整型和字符型变量。 通过指针(pointer),C语言可以容易的对存储器进行低级控制。 预编译处理(preprocessor)让C语言的编译更具有弹性。   三、MATLAB语言与C语言的区别 MatLab的底层是C写的,C的效率比MatLab要高,但MatLab语法简单多了,而且简单,但执行效率不高 MATLAB是用于特定的方面的,比如说矩阵运算方面、DSP就很有优势,而C语言不同,很多软件的底层都是C编写的 matlab提供的是一种基于解释的语言,虽然也是一种高级语言,但是还是很简单的,它的目标在于用户方便,开发简单。而实际上这些方便也是有代价的,编译器承受了这些代价,程序执行效率方面也有损失。另一方面matlab这么做也是基于其专用于科学计算的目的来考虑的,无法应用于通用的程序设计。c语言这么做保持了其编译的速度,便于大型程序设计,执行效率也很高,如os等百万行以上的代码。同时c语言来做很多计算以外的应用环境,如逻辑判断,I/o操作等嵌入式应用,如matlab编译器。。。 显然基于向量的计算优化,对于这些应用反而是负担。当然还有别的原因,我暂时还想不完整,但是这些已经足够说明了两者的不同啦。一句话,应用的范围、目的不同,语言的设计也当然风格迥异了。 matlab是一种解释性语言,集成化,专门用于和数学相关的工程计算,数值运算matlab是很简便强大,用起来很方便,比如: 求数组A的最大值的程序如下: A=[1 2 3 4 5 6];%把值赋给A max(A)%求最大值 结果就出来了 而C语言就麻烦的多 C语言是面向对象的基础语言。更多的用于底层函数开发,软件开发,单片机控制等,matlab能做的C语言肯定能做,但是一般要麻烦的多,而C语言能做的 matlab不一定能做。 形式上最容易发现的区别是,matlab是一句一句编译的,而c语言是对一个完整的代码段进行编译的,并且c中有头文件(#include(。。。)),而matlab中没有,对于数值运算matlab是很简便强大的,c就有点繁琐,对于算法要求c相对更高点。[!--empirenews.page--] matlab主要优势是集成了强大的数学计算功能,对大规模数据的计算精度和效率可以保证。matlab中集成了很多数学计算函数,能很方便的调用,而c语言,你一定知道,任何一个算法都需要自己设计,并调试,以保证程序能正确执行。 matlab优势在于大规模矩阵运算,解常微分、偏微分方程,包括图像识别,人工智能,滤波等等,可以说,matlab是一个专业的数学软件,一个高效的专业工具。 一句话概括,matlab集成了很多数学计算功能,专注于数学计算领域,而c语言,是一个更大众化的程序平台。 matlab是解释型脚本,c语言是编译执行的语言,简单说matlab的解释程序是看一句代码执行一次,而C语言的编译器必须编译好源文件生成目标代码,再执行整个目标代码。 matlab底层是C/C++实现的。.m文件可以使用matlab内置的mcc命令编译成exe文件。

    时间:2017-11-20 关键词: matlab 嵌入式开发 C语言

  • MathWorks主张使用Matlab和Simulink开发工具进行基于模型的设计

    MathWorks主张使用Matlab和Simulink开发工具进行基于模型的设计

    相信大家和小编一样,都了解Matlab以及FPGA开发,但是你有想过使用Matlab来对你的FPGA进行开发吗?一段时间以来,MathWorks一直主张使用Matlab和Simulink开发工具进行基于模型的设计,因为好的设计技术使您能够在更短的时间内开发更高质量的复杂软件。(参见MathWorks 白皮书:“小型团队如何采用基于模块的设计“)。基于模块的设计采用了数学和可视化的方法,通过整个开发过程中使用的系统级建模(从初始设计到设计分析,仿真,自动代码生成和开发和验证)来开发复杂的控制和信号处理系统。这些模块是由框图,文本程序和其他图形元素组成的可执行规范。基于模型的设计鼓励对比其他设计方法更广泛的设计空间的快速探索,因为您可以在设计周期的早期更快地迭代设计。而且,由于这些模型是可执行的,所以验证成为每一步开发过程中不可或缺的一部分。 Xilinx通过新的Xilinx模型编辑器(一种集成到Matlab和Simulink环境中的设计工具),Matlab和Simulink支持模块化设计。Xilinx Model Composer 包含80多个库,包含80多个高性能的优化Xilinx专用的模块,包括用于计算机视觉,图像处理和线性代数的专用模块。并且您还可以导入C和C++编写的自定义IP块,随后Vivado HLS进行处理。 下面的程序框图显示了MathWorks 的Matlab,Simulink和Xilinx Model Composer之间的关系   随着开发系统不断的复杂,模块化的设计将是未来设计的一个趋势,这将会给设计者不管是在设计还是在debug方面都带来了很大的方便,随着Xilinx FPGA的模块化设计的推广,相信在FPGA端设计的门槛也会降低,这是硬件开发者的一个福利。

    时间:2018-03-20 关键词: 开发工具 模型 mathworks matlab 嵌入式开发

  • 基于模型的无刷电机控制代码快速生成

    基于模型的无刷电机控制代码快速生成

    引言随着软硬件技术的不断发展,以及用户对产品安全性,可靠性的要求,嵌入式应用的开发难度与代码体积都在迅速增加,传统的基于文本的开发方式已经越来越难以满足这种高性能与快节奏研发的要求。基于模型的设计方法利用Mathworks提供的一系列工具,可直接实现从设计理念到算法模型,再由模型自动生成嵌入式代码的高效开发流程。对于本例来说,在LPC2124芯片上实现无刷电机控制(BLDC),设计者无需考虑如何将电机状态的变换用C或汇编语言体现,仅需关注算法本身,将繁琐的代码生成工作交给计算机完成。这样可以大大缩短产品开发周期,显著提高工作效率。1 原理分析直流无刷电机的工作离不开电子开关电路,因此由电动机本体、转子位置传感器和电子开关电路3部分组成了直流无刷电机的控制系统,其结构框图如图1所示。直流电源通过开关电路向电动机定子绕组供电,位置传感器随时检测转子所处的位置,并根据位置信号来控制开关管的导通和截止,从而自动地控制哪些绕组通电、哪些绕组断电,实现了电子换相。图1 无刷电机控制系统结构框图下面以一个三相绕组的无刷电机为例,简要介绍其工作原理。图2为三相全桥式驱动电路原理图,对其采用二相通电的方式驱动,即有两个绕阻同时通电。图中包含6个晶体管、二极管组成的三相逆变电路,Ha、Hb、Hc为霍尔元件反馈的转子位置信号。控制电路会根据位置信号决定6路PWM信号的通断,进而使功率管导通或关断,使绕阻按一定顺序导通,驱动电机连续旋转。当采用二相导通方式驱动电机时,功率管的导通或关断情况经过1/6周期(即60°)。在直流无刷电机的内部嵌有3个霍尔位置传感器,它们在空间上相差120°。由于电机的转子是永磁体,当它在转动的时候,其磁场将发生变化形成旋转磁场,每个霍尔传感器都会产生180°脉宽的输出信号。图2 三相全桥式驱动电路原理图假设当前功率管V1、V6导通,则电流从A相流入电机,从C相流出电机,由电流经绕阻产生的磁场方向为(A,?C)。由A和?C的合磁场产生的转矩使转子转动到AC位置。转子的转动使霍尔传感器的输出发生变化,控制电路会据此调整功率管的导通情况,将V6关断,V5导通。这时,电流从A相流入电机,从B相流出电机,经绕阻产生的磁场方向为(A,?B)。由A和?B的合磁场产生的转矩使转子转动到AB位置。同样,霍尔器件又会输出一个不同的值,控制电路作出相应的处理,完成一个完整的换相周期。2 模型搭建根据上述原理简介可知,无刷电机由一组PWM信号驱动。PWM信号按霍尔元件传送的位置信号决定其通断状态,以驱动电机连续旋转;而PWM信号占空比可用于调节电机转速。在Stateflow中创建状态图,模型共设置PWM1~6六路PWM信号,并以按键key的值控制电机的开关,由此可得无刷电机的状态图,如图3所示。图3 无刷电机状态图MotorOff子状态中,将6路PWM信号的占空比调至0,以达到关闭电机的作用,如图4所示。图4 MotorOff子状态MotorOn子状态与MotorOff子状态基本类似,不同之处在于:模型接收霍尔元件传送回的电机转子位置信号,并以此判断PWM信号的通断。当霍尔元件返回值为1时,第2、6路PWM信号导通;值为2时,第3、4路PWM信号导通;值为3时,第2、4路PWM信号导通;值为4时,第1、5路PWM信号导通;值为5时,第1、6路PWM信号导通;值为6时,第3、5路PWM信号导通。Stateflow状态图中的变量pinsel0、pinsel1、io0dir为芯片设置位,pwmmr0~pwmmr6联合控制PWM输出,sensor表示霍尔器件的值,key控制电机是否工作,变量speed用于接收外部的控制信号(例如电位器和ADC),调节PWM占空比,实现电机调速。完成Stateflow状态图之后,再配合Simulink中的库模块即可完成如图5所示的算法模型。当key=1,电机处于打开状态时,若霍尔传感器状态为1,则第2和第6路PWM信号导通,输出512。信号占空比是由pwmmr0~pwmmr6联合控制的,pwmmr0已将PWM波的周期定义为1 024,则输出512即表示占空比为1:1,这证明算法模型达到了预期目的。图5 算法模型3代码快速生成RTW生成实时代码的过程大致可分为成4个阶段:① 用户在MATLAB/Simulink/Stateflow建立算法模型。② TLC目标语言编译器读取.rtw文件中的信息,将模型转化成源代码。③ 生成指定目标的代码。④ 连接开发目标程序所需的环境。由上述过程可知,需要对模型作部分修改。图5所示模型中,设计者需要将各个信号源模块和显示器模块替换为输入/输出端口模块,这样才能在生成的代码中为硬件预留数据接口。在模型配置页面中需要将硬件类型指定为ARM compatible,求解器设置为离散型,RTW中的模板文件设置为ert.tlc。完成上述设置后,将模型保存为arm_BLDC.mdl,按下模型工具栏的按钮即可生成代码。如果计算机上已经安装了TASKING IE FOR ARM软件,并与MATLAB平台正确关联后,系统会自动生成工程,并编译生成可执行文件,非常快捷方便。未安装该软件的用户可用自己熟悉的IDE自行创建工程并加入自动生成的C代码,之后对ert_main.c文件的代码作部分修改(有注释的部分为修改内容):……#include "LPC2124.h"/*添加LPC2124头文件*/extern void PWM_Init(void);/*声明外部函数PWM_Init*/extern void AD_Read(void);/*声明外部函数AD_Read*/……//模型输入口与硬件相关联arm_BLDC_U.In1=(IO0PIN&0x03800000)>>23;arm_BLDC_U.In2=(IO0PIN&0x8000)>>15;……//模型输出口与硬件相关联PINSEL0=arm_BLDC_Y.Out1;PINSEL1=arm_BLDC_Y.Out2;IO0DIR=arm_BLDC_Y.Out3;PWMMR0=arm_BLDC_Y.Out4;PWMMR1=arm_BLDC_Y.Out5;PWMMR2=arm_BLDC_Y.Out6;PWMMR3=arm_BLDC_Y.Out7;PWMMR4=arm_BLDC_Y.Out8;PWMMR5=arm_BLDC_Y.Out9;PWMMR6=arm_BLDC_Y.Out10;PWMLER=arm_BLDC_Y.Out11;……int_T main(int_T argc, const char_T *argv[]);int_T main(int_T argc, const char_T *argv[]){/* Initialize model */arm_BLDC_initialize();PWM_Init();//调用PWM_Iint()ADCR=0x002E0401;//ADC初始化/* Simulating step behavior */while (rtmGetErrorStatus(arm_BLDC_M) == (NULL)) {AD_Read();//调用A/D_Read()arm_BLDC_U.In3=(ADDR>>6) & 0x3FF;// AD结果赋值到In3口rt_OneStep();//调用rt_OneStep()}……//删除printf与fflush代码……BLDC控制模型利用了芯片中的PWM发生和ADC功能,因此还需要这两个模块的初始化代码。将初始化代码保存为BLDC_init.c并加入到工程中即可进行编译。#include"LPC2124.h"void PWM_Init(void){//初始化LPC2124芯片的PWM功能PWMPR=1200; //设置分频系数PWMMR0=1024;//PWMMR0~PWMMR6控制初始占空比PWMMR1=PWMMR2=PWMMR3=PWMMR4=PWMMR5=PWMMR6=0;PWMMCR=0x00000002; //重置MR0时钟PWMPCR=0x7E00; //使能PWM1~PWM6输出PWMLER=0x7F; //使能PWM0~PWM6锁存PWMTCR=0x09; //使能PWM模式并启动定时器}void AD_Read(void){ADCR=(ADCR&0x00FFFF00)|0x01|(1<<24);//设置通道1,并进行第1次转换while((ADDR&0x80000000)==0);//等待转换结束ADCR &=~0x01000000;//停止转换}4 虚拟硬件测试在Proteus7.7平台下,可以方便地对设计进行虚拟硬件测试。根据前述原理简介,不难搭建如图6所示的Proteus硬件原理图。左侧的按键控制电机的运行/停止,电位器与ADC控制电机转速;中部为三相电桥,分别与电机的三相相连;下方是由3个IR2112构成的放大电路;上方为示波器。图6 Proteus硬件原理图在LPC2124芯片中加载编译生成的hex文件进行测试,即可正确实现对电机的控制。结语基于模型设计为设计者提供了一个通用的开发与测试平台,可将算法模型自动转换为嵌入式C代码,大大降低嵌入式系统开发的门槛,设计者可轻松生成优化的自定义C代码,缩短了开发周期,避免了过多的人为错误。在开发过程的各个环节都进行不断的测试,与传统方法相比,测试得更为彻底,并且在后期更进行了Proteus虚拟硬件测试,进一步确保了设计的可靠性。这种由概念到实现的开发方式在国外已经有广泛应用,本文也对其优势有所论述,相信该方法在国内会受到越来越多的青睐。

    时间:2018-10-09 关键词: matlab 嵌入式开发 无刷电机控制 lpc2124

  • MATLAB辅助DSP设计的研究与实现

    MATLAB辅助DSP设计的研究与实现

    提出结合MATLAB来开发DSP系统的思想,阐述了实现该思想的两种工具,并详细介绍了使用MATLAB Link for Code Composer Studio辅助DSP设计的相关内容,包括其功能特点、实现方式、工作原理等。最后结合典型的FIR滤波器实例,探讨了使用该工具的方法,并设计了图形用户界面。结果表明应用MATLAB辅助开发DSP系统可以发挥二者的优势,缩短开发周期,降低开发门槛,优化开发过程。1 引言数字信号处理器(Digital Signal Processor,DSP)是指一类具有专门为完成数字信号处理任务而优化设计的系统体系结构、硬件和软件资源的单片可编程处理器件。数字信号处理器是实现数字信号处理任务的一个重要而有效的手段,随着通信和信息技术的飞速发展,数字信号处理器件在最近20年得到了空前的发展和应用。MATLAB是美国MathWorks公司开发的一种科学计算软件,专门以矩阵的形式处理数据,在科学计算、控制系统、信息处理等多种领域有着广泛的应用。MATLAB具有强大的计算、分析和可视化功能,但MATLAB语言是解释执行的,执行速度较慢;而DSP是为了完成实时数字信号处理任务而设计的,算法的高效实现是DSP器件的显著特点,但是其开发门槛高。如果能把MATLAB和DSP开发工具结合在一起,取长补短,相辅相成,将是DSP设计人员梦寐以求的一种新的开发思想。MathWorks公司和TI公司联合开发的MATLAB Link for Code Composer Studio(简称CCSLink)和Embedded Target for TI TMS320C6000 DSP工具正是这一思想的完美实现。本文所作研究是以自行研制的DSP教学实验箱为平台进行的,其DSP采用TMS320VC5416芯片实现。本文内容安排如下:第1部分在介绍相关背景知识的基础上,引入使用MATLAB辅助DSP设计的思想;第2部分介绍了MATALB中实现这一思想的两种工具;第3部分介绍了工具之一CCSLink的实现方式及工作原理;第4部分结合实验平台给出了CCSLink的应用实例。第五部分对本文作了总结。2 MATLAB辅助DSP设计的方法概述实现MATLAB辅助DSP设计的方法有两种,即CCSLink和Embedded Target for TI TMS320C6000 DSP。前者可实现MATLAB与C2000/C5000/C6000 DSP之间的数据交互和程序控制;后者可实现从Simulink模型自动生成DSP目标代码,但仅支持C6000系列的部分DSP器件。考虑到实验平台是以C5000 DSP为基础的,并且第二种工具较容易操作等因素,下面主要研究利用CCSLink辅助DSP设计的方法。2.1 Embedded Target for TI TMS320C6000 DSPCode Composer Studio(CCS)是TI提供的DSP的集成开发环境。对于C6000系列而言,利用工具Embedded Target for TI TMS320C6000 DSP,用户可以从Simulink模型直接生成针对DSP目标板的可执行文件或者CCS工程文件,实现了MATLAB/Simulink与CCS集成开发环境(IDE)的无缝连接,从而把设计人员从繁杂的DSP编程中解脱出来,将主要的精力放在设计而不是DSP编程上,所以极大地缩短了系统的测试和开发周期,进而保证了所设计系统的高性能。2.2 MATLAB Link for Code Composer Studio集成在MATLAB6.5或更高版本中的CCSLink工具把MATLAB、TI DSP及其集成开发环境CCS连接在一起,使得我们可以在MATLAB环境下就可以完成对CCS和DSP目标板的操作,包括与目标内存之间的数据交互,检测处理器的状态,控制DSP程序的运行等。它提供了MATLAB、CCS和目标DSP板的双向连接,开发者可以利用MATLAB中强大的可视化、数据处理和分析工具对DSP中的数据进行分析和再处理,以辅助DSP系统设计,这样就极大地降低了开发人员编写DSP代码的难度和工作量,提高了整个DSP系统的性能和可行性。我们利用CCSLink提供的相关函数能够实现MATLAB与目标DSP的存储器及寄存器间的信息交互,如同操作MATLAB变量一样来读、写TI DSP中的存储器或寄存器,即整个目标DSP对于MATLAB而言是透明的。CCSLink支持TI的C2000/C5000/C6000等多系列DSP,应用广泛。3 CCSLink的实现方式及工作原理3.1 CCSLink的实现方式利用CCSLink即可实现MATLAB、CCS和目标DSP之间的信息交互。CCSLink共提供了3种实现方式:1)使用与CCS IDE的连接对象。利用此对象来创建CCS IDE和MATLAB的连接,从MATLAB命令窗中即可运行CCS IDE中的应用程序,查询目标DSP的状态信息,修改或读取目标DSP的存储器或寄存器中的数据,甚至可以调试DSP程序。其工作原理见3.2节。2)使用与RTDX(Real-Time Data Exchange)的连接对象。提供MATLAB和硬件DSP 之间的实时通信通道。利用此连接对象,可以打开、使能、关闭或禁止DSP的RTDX通道,利用此通道可以实时地向硬件目标DSP发送和取出数据而不必停止DSP上运行的程序。例如把原始数据发送给程序进行处理,并把处理结果取回到MATLAB空间中进行分析。RTDX连接对象实际上是CCS连接对象的一个子类,在创建CCS连接对象的同时创建RTDX连接对象,它们不能分别创建。3)使用嵌入式对象。在MATLAB环境中创建一个可以代表嵌入在目标C程序中的变量的对象。利用嵌入式对象可直接访问嵌入在目标DSP中的存储器和寄存器中的变量,即把目标C程序中的变量作为MATLAB的一个变量对待。3.2 CCSLink的工作原理上面的三种方式在具体实现时略有不同,但是其原理相似,不失一般性,我们通过第一种方式——与CCS IDE的连接对象,来介绍CCSLink的工作机理。1)选择目标DSP并创建CCS IDE连接对象在MATLAB环境下使用函数ccsdsp并配置相应的属性名和属性值即可创建一个CCS IDE连接对象cc:cc=ccsdsp(‘boardnum’, x, ‘procnum’, y, ‘timeout’, z);其中,boardnum、procnum、timeout都是属性名。分别表示创建连接对象时所使用的目标板编号、DSP处理器编号及全局超时值。2)在MATLAB环境下加载CCS工程文件projfile=fullfile(matlabroot, ‘toolbox’, ‘tiddk’, …, ‘ccsproject.pjt’);%取得工程文件projpath = fileparts(projfile); %取得工程文件路径open(cc, projfile);%加载工程文件,该函数实现把文件filename加载在CCS IDE中cd(cc, projpath);%改变CCS的工作路径3)在MATLAB环境下编译、连接并下载可执行文件创建了CCS IDE连接对象并加载工程文件后,即可通过函数build()编译和链接工程文件,以生成针对目标DSP的可执行文件(.out文件);通过函数load()下载可执行文件到目标DSP中。具体方法如下:build(cc);%编译、链接工程文件,生成目标DSP可执行文件load(cc, ‘ccsproject.out’);%下载可执行文件到目标DSP,可执行文件名与工程名相同4)在MATLAB环境下控制程序运行CCSLink提供了3个函数用于控制目标DSP的运行状态。通过这些函数,在MATLAB下对DSP的控制操作就像在CCS IDE中一样方便,实际上也确实是这样进行的。halt(cc);%中断处理器的运行restart(cc);%复位程序计数器PC,重新执行程序run(cc, ‘runtohalt’, 30); %执行程序到断点处,最后一个参数表示超时时间,此处为30s5)在MATLAB环境下对CCS IDE连接对象进行操作在MATLAB中可以方便的操作DSP存储器和寄存器中的数据,包括读操作和写操作。下面以读写目标DSP存储器和寄存器中的数据来说明。date=read(cc, [256,0], ‘double’, 100); %从目标存储器目的地址100H(即十进制数256)处开始,读取100个双精度数并赋给MATLAB对象datereg=regread(cc, ‘A0’, ‘2scomp’);%读取DSP寄存器A0中的数据,并转化成双精度数分配给MATLAB对象regwrite(cc, [256,0], double([1.0 2.0 3.0]));%向目标存储器100H开始的地址处,写入三个双精度数据6)关闭CCS IDE连接对象当一切操作执行完成后,需要删除ccsdsp对象,以收回系统资源。clear cc;%关闭CCS IDE连接对象4 CCSLink应用实例通过CCSLink工具,可以使用MATLAB来进行DSP的辅助设计。在此以FIR滤波器为例,介绍CCSLink在DSP设计中的应用。在该实例中,FIR滤波的核心内容由DSP实现,而算法仿真、系数产生、用户界面、结果验证等部分由MATLAB辅助完成。4.1 FIR滤波器设计设输入信号为x(n),输出信号为y(n),则FIR滤波器对应的差分方程可表示为:其中,h(k)(k=0,1,2,…,N-1)表示滤波器系数序列,是滤波器设计的关键。h(k)可以通过MATLAB工具箱提供的滤波器函数fir1()和fir2()来获取:首先通过建立MATLAB/Simulink模型,根据所需设计低通滤波器的性能要求来确定滤波器的阶数和截止频率等参数。本例所设计的FIR低通滤波器参数为:截止频率(Fc)2kHz,采样频率(Fs)8kHz,阶数(N)40。然后借助函数fir1(N, WN)即可返回对应滤波器的系数矩阵,其中N为阶数,WN为滤波器的归一化截止频率,即WN= 2Fc/Fs,且0≤WN≤1。4.2 DSP滤波算法实现结合MATLAB产生的滤波器系数,就可以编写DSP滤波主程序了,关键代码如下:FIR_TASK:STM#K_FIR_BFFR, BK; 设置FIR循环缓冲区的大小 LD*INBUF_P+, -1, A; 数据输入FIR_FILTER:STLA, *FIR_DATA_P+%; 最新数据替代最旧数据RPTZA, (K_FIR_BFFR-1)MAC*FIR_DATA_P+0%, *FIR_COFF_P+0%, A ; 乘累加STHA,*OUTBUF_P; 数据输出4.3 MATLAB辅助设计本设计中,算法仿真、系数产生、用户界面等部分由MATLAB辅助完成。算法仿真、系数产生方法在4.1中已详细介绍,本节重点介绍用户界面部分。本图形用户界面可以实现如下功能:修改参数,如滤波参数n和Wn,这种参数选取方法避免了反复修改DSP程序的弊端,可以满足不同层次使用者的使用;控制操作过程,如加载工程文件、下载可执行文件、运行程序等;绘制DSP输入数据的时域及频域信号;绘制滤波后DSP输出数据的时域及频域信号;使用MATLAB提供的滤波函数对输入数据进行滤波计算,并把所得结果与DSP输出信号进行比较,以验证或改良DSP算法。用户界面的流程图如图1所示,主要由图形界面和回调函数两大部分组成。其中,图形界面由文件FIR_BPF.m实现;回调函数总共由6个文件实现,分别是input.m,input2.m,output.m,output2.m,lvbopin.m和lvbohou.m。当输入带有干扰的方波信号后,分别查看输入波形、MATLAB滤波输出信号、DSP滤波输出信号,结果如图2所示。比较MATLAB滤波输出信号和DSP滤波输出信号,据此可以采用修改滤波器系数或DSP程序等措施来改进DSP滤波算法。图1 用户图形界面流程图图2 实验结果5 结束语本文探索并实现了利用CCSLink辅助DSP设计的完整过程。同时以FIR滤波器为例,利用CCSLink辅助设计了基于DSP TMS320VC5416的应用系统,该系统具有灵活的参数设置和快速的处理效率,很好地达到了辅助DSP设计的目的;再者,利用MATLAB的GUI工具设计了相应的图形用户界面,便于不同技术层次的用户操作,增强了DSP系统的适用性。本文作者创新点:1.发展了利用MATLAB辅助DSP设计的思想,把DSP系统设计中的算法仿真、系数产生、结果验证、用户界面等环节交由MATLAB完成,实现了二者的无缝连接。2.通过MATLAB设计的人机界面,增强了DSP系统的适用性,便于不同技术层次的用户操作。

    时间:2018-06-18 关键词: matlab 嵌入式开发 辅助 dsp设计

  • 基于MATLAB的车牌识别系统的研究

    基于MATLAB的车牌识别系统的研究

    1 引言车辆牌照是机动车唯一的管理标识符号,在交通管理中具有不可替代的作用,因此车辆牌照识别系统应具有很高的识别率,对环境光照条件、拍摄位置和车辆行驶速度等因素的影响应有较大的容阈,并应满足实时性要求。牌照自动识别是一项利用车辆的动态视频或静态图像进行牌照号码、牌照颜色自动识别的模式识别技术,其硬件一般包括触发、摄像、照明、图像采集等设备,其软件核心包括车牌定位、车牌字符分割和字符识别等算法。2 系统的实现2.1 系统简述一个完整的牌照识别系统应包括车辆检测、图像采集、图像预处理、车牌定位、字符分割、字符识别等单元。当车辆到达触发图像采集单元时,系统采集当前的视频图像,牌照识别单元对图像进行处理,定位出牌照位置,再将牌照中的字符分割出来进行识别,然后组成牌照号码输出。牌照识别系统原理如图1所示。2.2 图像预处理输入的彩色图像包含大量颜色信息,会占用较多的存储空间,且处理时也会降低系统的执行速度,因此对图像进行识别等处理时,常将彩色图像转换为灰度图像,以加快处理速度。对图像进行灰度化处理、提取背景图像、增强处理、图像二值化、边缘检测、滤波等处理的主要MATLAB语句如下所示:2.3 车牌定位自然环境下,汽车图像背景复杂,光照不均匀,在自然背景中准确地确定牌照区域是整个图像识别过程中的关键。首先对采集到的图像进行大范围相关搜索,找到符合汽车牌照特征的若干区域作为候选区,然后对这些侯选区域做进一步分析、评判,最后选定一个最佳区域作为牌照区域,将其从图像中分割出来,同时要考虑车牌倾斜问题。算法流程如下:(1)对二值图像进行区域提取,计算并比较区域特征参数,提取车牌区域。(2)计算包含所标记区域的最小宽和高,并根据先前知识,提取并显示更接近的车牌二子值图。(3)通过计算车牌旋转角度解决车牌倾斜问题。由于车牌倾斜导致投影效果峰谷不明显,需车牌矫正处理。采取线性拟合方法,计算出车牌上边或下边图像值为1 的点拟合直线与水平X轴的夹角。用MATLAB函数的旋转车牌图象函数Imrotate,计算车牌旋转角度和经旋转、二值化后的车牌二值子图处理结果如图 2所示。2.4 字符分割完成牌照区域的定位后,再将牌照区域分割为单个字符。一般采用垂直投影法。由于字符在垂直方向上的投影必然在字符间或字符内的间隙处取得局部最小值,并且该位置应满足牌照的字符书写格式、字符、尺寸限制等条件。利用垂直投影法实现复杂环境下汽车图像中的字符分割效果较好。通过分析计算字符的水平投影和垂直投影,可获得车牌字符高度、字符顶行与尾行、字符宽度、每个字符的中心位置,以方便提取分割字符。然后计算车牌垂直投影,去掉车牌垂直边框。获取车牌及字符平均宽度。最后计算车牌每个字符的中心位置和最大字符宽度,提取分割字符,其算法流程如图3所示,通过程序算法计算的车牌字符高度和宽度及分割的字符,如图4所示。3 结论从MATLAB编程运行结果看,这里采用的图像识别算法对车牌的定位非常有效,该算法可有效检测车牌图像的上下左右边框、旋转角度,准确分割及识别车牌字符。通过对多个车牌进行试验,正确率高,与传统的采用C++语言相比,工作量和开发周期都减少很多。实际应用中,牌照识别系统的识别率与牌照质量和图像拍摄质量密切相关,还会受到各种因素,需不断完善识别系统和算法。

    时间:2018-10-10 关键词: matlab 嵌入式开发 图像处理 车牌定位 字符分割 字符识别

  • 简化“算法到C代码”是软件业的一项挑战

    简化“算法到C代码”是软件业的一项挑战

    算法密集型电子和通信系统的设计需要大量算法和熟悉C/C++的人员。现在,从算法到C代码有望一键实现了。不久前,数学计算软件的领先软件供应商MathWorks公司发布了MATLAB Coder。该公司称是一个全新平台,是过去十年专注努力的结晶,特点是可以直接从 MATLAB 算法到实现一键完成。MathWorks中国教育业务发展总监陈炜博士解释道,传统上,算法密集型电子和通信系统的设计通常首先使用 MATLAB;MATLAB 算法最后需要转换为 C 代码,以集成到最终产品中。从 MATLAB 手动转换为 C 可能需要数天到数周的时间,有可能产生设计错误并造成投放市场的时间延迟。现在,设计工程师可以使用 MATLAB 加快开发任务(如定点设计和原型建立),然后使用 MATLAB Coder 自动生成 C 代码。传统软件分工MATLAB是矩阵实验室的缩写复合词,在MathWorks看来,所有算法都可以转化为矩阵,而MATLAB的目标是做算法易于开发的科学计算平台。现在的算法工程师或系统工程师可能是某个方面专家,例如信号处理、图像处理、通信处理以及其他算法密集型的开发应用。这些领域核心的工作需要一些创新或自己的IP(知识产权)。对于使用MATLAB的设计、系统和研发工程师/研究人员,当他们把新的构想和算法写出来后,真正实现需要硬件或软件工程师重新写C/C++代码来实现。传统的从算法到C代码的流程如图1。左侧是某一领域的专家,有新的想法后,例如想开发新的雷达系统(算法),或新一代的手机(不仅有蓝牙、WiFi和3G等,还要完成多任务处理等),在概念设计阶段最重要的任务是算法/想法是可以实现的。MATLAB可以快速地实现算法,因为优势是一种算法平台,无需专门针对某种硬件和考虑细节,例如数据类型、内存管理等(这些是C代码开发的人实现的),只需要考虑概念能否实现。用MATLAB写完程序,验证合格后,再由软硬件工程师手动地、重新基于这些算法,改写成C/C++代码。简化“算法到C代码”是软件业的一项挑战.pdf

    时间:2018-10-10 关键词: matlab 嵌入式开发 coder c代码 算法密集

  • 贝加莱Matlab/SIMULINK开发工具的建模与实现

    贝加莱Matlab/SIMULINK开发工具的建模与实现

    今天,无论是OEM机械制造业还是大型过程控制项目对于机器自动化程度的需求在不断提高,对于自动化系统的开发需求也越来越苛刻。除了产品系列的变化,还包括功能需求的变化以及适用生产范围的变化,而这些变化有时候往往跨度较大,工程师们必须面对各种变化的需求设计开发出不同的产品和系统方案。 如何使得机器的设计更加自动化?这是一个非常值得探讨的问题。目标、对象、方法与工具是能够更好完成项目的关键,谁能够提供这样的自动化功能并用实际的应用来证明?什么方式更为清晰?什么工具更为有效?——这些如何与自动化更好的结合,使机器的设计更加自动化?V型模式 V型模式是由需求分析、规范说明、概要设计、详细设计、编码、单元测试、集成测试、系统测试、验收测试等多个环节构成,并且在V字型的横向上一一对应,如:验收测试对应与需求分析阶段的内容,系统测试则对应于规范说明单元的内容,集成测试对应于概要设计的内容。 V型开发模式提供了一个很好的软件项目开发与测试的模型,使整个项目更为清晰有序地进行,并且严格地控制了软件项目的质量。 自上世纪80年代后期V型开发模式开始被广泛使用。在德国,采用V型模式做为软件开发与测试的标准模式,在奥地利与瑞典等国家,V型模式同样作为一个重要的标准与规范而广为使用。目前,V型模式已经广泛应用于汽车制造业、电力行业的水轮机、汽轮机设计与风力发电机组、大型变压器、工程机械与港口机械以及军事领域的太空探测器、雷达、定位系统等。MATLAB/SIMULINK集成在V型开发模式中 目前,由Mathworks公司提供的MATLAB/SIMULINK是最为广泛使用的建模与软件测试工具。B&R系统同样也支持Matlab/SIMULINK仿真模型的导入,它将仿真模型导入到Automation Studio这个开发工具中,使仿真系统可以在B&R控制器上进行硬件的仿真及系统功能的测试。 Matlab/SIMULINK可按系统内在的物理关联设计完整的复杂系统,可使传感器、控制器、机械单元、操作机构等构成一个整体。系统的各个组成部分在Matlab/SIMULINK中是以模块化的方式来构建的,可调用各种标准控制模型或自定义控制模型。各模型间相互关联成为一个整体,并通过仿真过程得到优化的系统参数。通过自动代码生成的功能,Matlab/SIMULINK的仿真模型可生成工程实例的代码,这种代码的效率可与人工代码相媲美,这就是为什么Matlab/SIMULINK被广泛使用的原因。带来的益处1.自动代码生成,节省开发周期 对于复杂算法的设计,自动代码生成是比较具有吸引力的。因为复杂的算法必须是一个经过测试的算法模型,通过人工编写的代码,可能需要反复的调试才能使用,而通过Matlab/SIMULINK生成的代码是使用经过无数次测试的代码生成器得出的代码,具有极高的可用性,并且通过MATLAB/SIMULINK提供的代码只需要较少的调试时间。2.系统仿真测试可直接应用于控制器 如果仿真的结果不能直接连到控制器中进行测试,而需要重新编写代码,就会造成人工的巨大浪费。而如果控制器可以直接接收来自MATLAB/SIMULINK的测试代码,那么就可以节省很多时间。3.系统测试可以降低实际机器调试的成本 对于机械系统而言,尤其是新机型的开发,如印刷机的调试,需要使用很多纸张或印刷材料。像包装机械、轮胎机械,都意味着需要巨大的调试成本。但通过仿真后的测试则会大量地降低调试成本,更重要的是,有些测试不仅仅是需要巨大的成本,还需要有时机——例如:在风力发电项目中遇到恶劣天气而引发的Safety动作,这个时机指的是现场并非随时都能获得25级风力,这就是为什么F1要投入巨大的费用在风洞测试上。4.机器的改型设计更加简单 对于MATLAB/SIMULINK而言,新机器的更高性能或者机器的新增功能将无需再进行复杂的测试,就可以快速的实现,这样对于新机型的设计来说,就可以很好的利用原有模型,而只增加一些新的电气开关或者传感器,或提升性能等级。对于那些需要开发机器的系列产品和机器的长远规划来说,这种方式就非常简单了。 因此,B&R对于MATLAB/SIMULINK的支持有着巨大的优势,特别是在机械设计领域,这意味着客户可以建立更为有效的自身的开发平台。Automation Studio——集成开发环境是关键 集成开发环境是一个很关键的因素,它能够将所有的控制对象完整的集成在一个开发平台上,否则,所谓的集成开发就是空洞的。而B&R Automation Studio很好的满足了这一关键需求,能够面向整个控制系统的硬件对象——HMI、PLC、I/O、Motion、Hydraulic、Safety等等,这样就包括了整个机器控制所需的对象,并能够接收仿真的结果去实现机器的功能。Automation Studio支持MATLAB/SIMULINK工具箱 下面列出了AS软件所支持的SIMULINK工具箱,都是机械设备领域控制系统开发所需的工具包软件,也都很常用。l Stateflow工具箱——用于生成代码l C-MEXs函数箱l 控制系统工具箱l 信号处理工具箱l 嵌入式m-filesl 模糊控制工具箱l 更多 总之,对于开发者来说,Matlab/SIMULINK是一个非常强大的开发工具,可以使机器的设计更加自动化。

    时间:2018-12-12 关键词: 开发工具 建模 matlab 嵌入式开发 贝加莱

发布文章

技术子站

更多

项目外包

更多

推荐博客