老古开发网首页
导航:老古开发网首页文章索引文章分类嵌入式系统→[用Matlab产生Max + plusII的仿真输入信号]
| -文章搜索 - 最新文章 - |

用Matlab产生Max + plusII的仿真输入信号

发布时间:2006年9月11日 点击次数:1785
来源:   作者: 何曰光
 
随着CPLD/FPGA被越来越多应用于通信、DSP、微机等系统,对设计软件的仿真功能提出了更高的要求。MAX+PLUS II是Altera公司推出的功能强大的设计及仿真软件,提供了从多种方法输入、编译一直到仿真的一系列配套功能,其中手工设计仿真输入节点只适用于输入信号比较简单的情况,对于象随机噪声这样的复杂信号就无能为力了。MATLAB是Mathworks公司推出的一种面向科学与工程计算的高级语言软件,它集科学计算、自动控制、信号处理、神经网络、图像处理等于一体,可以方便地产生各种信号,进行各种变换、统计。它的这些特点正好可以弥补MAX+PLUS II在仿真功能上的缺陷。因此,可以利用MATLAB来产生MAX+PLUS II复杂仿真的输入信号。
      MATLAB与MAX+PLUS II联合产生仿真信号流程如下。
   (1)先在MATLAB中产生原始信号,并转换为2/16进制序列;
   (2)利用编写的MATLAB函数按一定格式生成向量文件(*.vec,纯文本文件);
   (3)在MAX+PLUS II中,打开要仿真的FPGA源文件,设置为“当前工程”并作编译;
   (4)打开simulator,选“File\Inputs/Outputs”,输入在MATLAB中生成的向量文件名,按“确定”按钮生成*.scf文件;
   (5)进行仿真。
      在MAX+PLUS II中的仿真输入文件中有一种文本形式的向量文件(Vector File),这种文件是用一定格式的文本来描述仿真信号,可以方便地用任何纯文本编辑器来书写文件,定义仿真时间长度,用相对/绝对时间单位来定义复杂的输入信号。
      MATLAB提供了两个基本的函数rand与randn用于产生随机数,在统计工具箱中还提供了产生各种分布随机数的函数,如正态分布和泊松分布等等。可以在MATLAB中用编程的方法产生一系列噪声数据,并且用向量文件的格式将数据保存在向量文件中,供MAX+PLUS II仿真时调用。下面以服从(0,1)间均匀分布的随机信号为例加以说明。
      产生随机信号的noise.m文件如下。
   fid=fopen(''file.vec'',''w'');
   fprintf(fid,''UNIT ns;\n'');
   fprintf(fid,''START 0;\n'');
   fprintf(fid,''STOP 1000;\n'');
   fprintf(fid,''INTERVAL 40;\n'')
   fprintf(fid,''INPUTS d1 d2 d3;\n'');
   fprintf(fid,''PATTERN\n'');
    random=rand(25,1);
   for i=1:25
   if random(i)>=7/8
    fprintf(fid,''1 1 1\n'');
    elseif random(i)>=6/8&random(i)<7/8
    fprintf(fid,''1 1 0\n'');
    elseif random(i)>=5/8&random(i)<6/8
   fprintf(fid,''1 0 1\n'');
   elseif random(i)>=4/8&random(i)<5/8
    fprintf(fid,''1 0 0\n'');
    elseif random(i)>=3/8&random(i)<4/8
    fprintf(fid,''0 1 1\n'');
    elseif random(i)<=2/8&random(i)>3/8
    fprintf(fid,''0 1 0\n'');
   elseif random(i)<=1/8&random(i)>2/8
    fprintf(fid,''0 0 1\n'');
    elseif random(i)<=1/8
   fprintf(fid,''0 0 0\n'');
   end;
   end;
   fprintf(fid,'';'');
   fclose(''all'');
   fopen()函数的功能是以写入方式打开一个file.vec文件,用于存储随机信号数据,fprintf()函数用来向打开的文件中写数据;rand(25,1)函数用来产生25个服从(0,1)间均匀分布的随机信号;程序中for循环部分用来对随机信号进行量化编码,量化是采用均匀量化,编码是3位二进制编码。该例在MAX+PLUS II中的一个仿真波形如图所示。
      衡量一个通信系统的主要指标是其抗各种干扰的能力,而实际信号中的噪声并不能定量测量,所以可以人为加入参数已知的正态分布随机噪声来定量地测出某个系统的误码率。将本文叙述的方法应用在数字通信系统的误码率测量中,较好地衡量了系统的抗随机噪声的能力,收到了很好的效果。
   参考文献
      1 范影乐.MATLAB仿真应用详解.人民邮电出版社.2001
      2 顺天.MATLAB程序设计语言.西安电子科技大学出版社.1998
      3 MaxplusII Datebook


欢迎进入老古论坛进行讨论
[嵌入式系统] 相关文章:
基于PSTN的家用电器远程控制系统
简介:
引言 随着生活水平的不断提高,人们希望有一种自动化、智能化程度高的控制系统对所有的家用电器能实施远程控制。本文介绍了一种基于PSTN(Public Switched Telephone Network,公众电话网)实现对家用电器的远程控制,通过电话可以随时随地控制多种家用电器的开关和各种设定,诸如将空调提前升降温、电热水器提前预热等,应用前景相当广泛。 系统组成及工作原理 为了简化电路、降低成本、提高可靠性,本系统采用AT89C51作为主控制器,它是一款与MCS51完全兼容且内部自带有4KB的Flash存......

用VHDL语言在CPLD上实现串行通信
PCI-1711数据采集卡及其应用
系统芯片nRF24E1及其在无绳电话中的应用
基于LabView的虚拟仪器实现频率稳定度的测量
MAX2206/MAX2208功率检测器在CDMA中的应用
高速嵌入式PXITM/CompactPCI控制器
融合运动和图像的运动控制卡
A/D PMC卡是首个12bit,100MHz的A/D卡
微型PCI无线通信插卡
 
下一个:[嵌入式系统]用MSP430单片机实现微波成像系统的扫描控制与数据采集
简介:
引言 ----在无源微波遥感中,微波辐射计是一种获取场景微波特征的重要手段。微波辐射计通常是一部超外差接收机,通过接收被测场景在一定频带内的电磁辐射,转换为输出的低频信号,来表征被测场景的地物信息。利用微波辐射计来探测、接收被测目标、背景在微波波段的电磁辐射,并把接收到的辐射信号按比例用伪彩色图像直观地显现出来的系统称为微波辐射成像系统。 ----微波辐射成像系统要求在恶劣的环境和天气下长期稳定地进行天线扫描成像,所以要求系统设备用于天线扫描控制及数据采集的电路尽量简单、稳定。基于以上的要求,采用了TI公司所生产的MSP430F149型超低功耗FLASH单片机作为这套系统的从机部分......
 

上一个:[嵌入式系统]Motorola微处理器的bootloader分析与应用

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:10分钟 执行时间:47毫秒