0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【技能秒get】如何使用MATLAB一键制作mif文件

NJ90_gh_bee81f8 来源:未知 作者:steve 2018-05-09 15:22 次阅读

这里讲解实现一个16384(2^14)点的14位正弦波数据mif格式文件的生成,使用此文件,我们便可以在FPGA上基于直接数字合成(DDS)原理生成标准的正弦波,即实现信号发生器的功能。

关于DDS原理的相关内容,请参考由北航出版社出版的《FPGA自学笔记——设计与验证》一书第六章第6.2节—— “双通道幅频相可调DDS信号发生器” 一节的内容。

在很早之前,我曾编写过一个生成1024点16位正弦波mif文件的方法,不过那时候我的matlab技术还特别特别菜(现在也很菜),只是在matlab中简单的实现了正弦波数据的生成,关于四舍五入取整以及mif文件的最终生成,我用了excel和quartus两个软件经过了复杂的操作才最终完成。

如今,自己都对那种方法没有了耐心,刚好新做的一个双通道14位高速DAC模块在做DDS实验时需要用到14位的mif数据,因此今天对matlab的脚本文件重新编写了下,实现了仅通过Matlab就可以一键生成mif文件的功能。

首先,打开MATLAB软件,小梅哥这里使用的版本为MATLAB 2012b。新建一个Script文件,操作为File —>New—>Script。在该文件中输入以下内容:

F1=1;%信号的频率

Fs=2^14;%采样频率

P1=0;%信号初始相位

N=2^14;%采样点数为N

t=[0:1/Fs:(N-1)/Fs];%采样时刻

ADC=2^13 - 1;%直流分量

A=2^13;%信号幅度

s=A*sin(2*pi*F1*t +pi*P1/180) + ADC;%生成信号

plot(s);%绘制图形

fild =fopen('d:/sin14bit_16384.mif','wt');%创建mif文件

%写入mif文件文件头

fprintf(fild,'%s ','WIDTH=14;');%位宽

fprintf(fild,'%s ','DEPTH=16384;');%深度

fprintf(fild,'%s ','ADDRESS_RADIX=UNS;');%地址格式

fprintf(fild,'%s ','DATA_RADIX=HEX;');%数据格式

fprintf(fild,'%s ','CONTENT');%地址

fprintf(fild,'%s ','BEGIN');%

fori= 1:N

s2(i) =round(s(i));%对小数四舍五入以取整

ifs2(i) <0     %强制将负1置0,

s2(i) = 0

end

% addr : data;

fprintf(fild,' %g ',i-1);%地址,从0开始编码

fprintf(fild,'%s ',':');

fprintf(fild,'%x',s2(i));

fprintf(fild,'%s ',';');

end

用户如果想自己生成其他深度和位宽的数据,只需要对应修改采样频率(Fs)、采样点数(N)、直流分量(ADC)和信号幅度(A)即可。

保存文件,点击运行按钮,即可生成我们所需要的正弦波数据,并在电脑的D盘根目录生成一个名为“sin14bit_16384 .mif”的文件。

【技能秒get】如何使用MATLAB一键制作mif文件

随后,会弹出如下图1所示的界面,该界面便是以我们生产的数据为值,t为时间轴绘制出来的波形,从波形可知为标准的正弦波,你也可以通过放大缩小来具体查看几个顶点的值,以确定数据是否在自己预期的范围内。这里,我们直接关掉该界面即可。

下图2为使用该文件设计的DDS信号发生器系统,输出频率为3.448Mhz(随机设置的一个值),通过示波器的FFT功能可以看到,谐波量并不大。

【技能秒get】如何使用MATLAB一键制作mif文件

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • matlab
    +关注

    关注

    185

    文章

    2974

    浏览量

    230424
  • mif文件
    +关注

    关注

    0

    文章

    3

    浏览量

    6248

原文标题:使用MATLAB一键制作mif文件

文章出处:【微信号:gh_bee81f890fc1,微信公众号:面包板社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    一键校准你的电脑时间(精确到哦!)

    一键校准你的电脑时间(精确到哦!) [此贴子已经被作者于2008-10-15 13:19:44编辑过]
    发表于 10-15 12:58

    一键校准你的电脑时间(精确到哦!)

    一键校准你的电脑时间(精确到哦!)珍藏了很久的个小软件,很小很强大很方便...今天这个版块终于出来了,小小的修改了下,拿出来给大家分享下!
    发表于 03-02 16:23

    一键还原小工具

    删除文件夹、隐藏备份分区、设置热键启动、重建主引导记录、一键重装系统等等。1、 启用超级模块,能在系统崩溃时DOS状态下恢复系统,建议启用。超级模块允许用户自定义系统备份文件夹的属性,可以创建普通
    发表于 05-14 16:14

    系统一键还原工具

    删除文件夹、隐藏备份分区、设置热键启动、重建主引导记录、一键重装系统等等。1、 启用超级模块,能在系统崩溃时DOS状态下恢复系统,建议启用。超级模块允许用户自定义系统备份文件夹的属性,可以创建普通
    发表于 05-27 12:46

    一键还原系统

    一键还原高级和扩展功能说除了简便易操作的一键备份和还原功能,本程序还具有高级增强扩展功能,例如设置启动密码、创建防删除文件夹、隐藏备份分区、设置热键启动、重建主引导记录、一键重装系统等
    发表于 06-18 20:41

    一键还原系统工具2.0

    的GHO/ISO镜像。重启之后会执行重装系统的后续步骤老毛桃一键还原高级和扩展功能说除了简便易操作的一键备份和还原功能,本程序还具有高级增强扩展功能,例如设置启动密码、创建防删除文件夹、隐藏备份分区、设置
    发表于 08-05 19:53

    一键还原系统工具

    的GHO/ISO镜像。重启之后会执行重装系统的后续步骤老毛桃一键还原高级和扩展功能说除了简便易操作的一键备份和还原功能,本程序还具有高级增强扩展功能,例如设置启动密码、创建防删除文件夹、隐藏备份分区、设置
    发表于 08-08 16:59

    一键还原V2.0

    的GHO/ISO镜像。重启之后会执行重装系统的后续步骤老毛桃一键还原高级和扩展功能说明 除了简便易操作的一键备份和还原功能,本程序还具有高级增强扩展功能,例如设置启动密码、创建防删除文件夹、隐藏备份
    发表于 10-27 16:50

    小梅哥和你起深入学习FPGA之mif文件制作

    实现信号发生器的功能。小梅哥的DDS实验已经做完,目前还没有进行文档的编写。朋友今天邀请我为他制作个1024点的16位的正弦波mif文件,实现之后,发现过程中涉及到
    发表于 11-10 00:01

    【小梅哥FPGA】使用Matlab一键制作mif文件

    由于是纯文档型内容,这里就不发帖了,直接发文档源文件出来,大家自行下载使用即可。
    发表于 04-30 10:42

    一键生效的BI智能分析功能,专治数据分析效率低

    ,提高报表制作操作效率,让分析人员得以将时间、精力投入到数据深度分析中去。 奥威BI软件_一键生效的分析功能(部分)BI软件拥有众多智能数据分析功能,包括行计算、智能钻取、高效联动、公共筛选等,这些智能
    发表于 11-25 17:14

    基于FPGA的mif文件怎么创建?

    本文详细讨论了基于FPGA的mif文件创建与使用,对于mif文件创建与使用均给出了两种可行性的方法。mif
    发表于 05-06 06:04

    基于FPGA的mif文件创建与使用

     mif文件的创建与使用是在基于FPGA的系统设计中引入ROM的关键环节。对mif文件的创建与使用展开详细讨论,给出两种可行性方法,并引入实例在MAX+PLUS Ⅱ环境下做了
    发表于 12-13 17:47 42次下载

    移动叔叔一键制移动叔叔一键制作MTK智能机IMEI串号工具作MT

    移动叔叔一键制作MTK智能机IMEI串号工具
    发表于 11-02 17:30 15次下载

    MIF文件生成器下载

    MIF文件生成器,可以依据自己需要生成正弦波、三角波、锯齿波、方波的MIF文件。自定义宽度、点数、初始相位。
    发表于 02-15 11:56 18次下载