DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 79|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 16:53:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

                    随着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)=5/8&random(i)=4/8&random(i)=3/8&random(i)3/8
? ? fprintf(fid,'0 1 0\n');
? ?elseif 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

            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-6-8 20:00 , 耗时 0.098931 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表