【技能秒get】如何使用MATLAB一键制作mif文件.doc
《【技能秒get】如何使用MATLAB一键制作mif文件.doc》由会员分享,可在线阅读,更多相关《【技能秒get】如何使用MATLAB一键制作mif文件.doc(4页珍藏版)》请在三一文库上搜索。
1、【技能秒get】如何使用MATLAB一键制作mif文件这里讲解实现一个16384(2)点的14位正弦波数据mif格式文件的生成,使用此文件,我们便可以在FPGA上基于直接数字合成(DDS)原理生成标准的正弦波,即实现信号发生器的功能。关于DDS原理的相关内容,请参考由北航出版社出版的FPGA自学笔记设计与验证一书第六章第6.2节 “双通道幅频相可调DDS信号发生器” 一节的内容。在很早之前,我曾编写过一个生成1024点16位正弦波mif文件的方法,不过那时候我的matlab技术还特别特别菜(现在也很菜),只是在matlab中简单的实现了正弦波数据的生成,关于四舍五入取整以及mif文件的最终生成
2、,我用了excel和quartus两个软件经过了复杂的操作才最终完成。如今,自己都对那种方法没有了耐心,刚好新做的一个双通道14位高速DAC模块在做DDS实验时需要用到14位的mif数据,因此今天对matlab的脚本文件重新编写了下,实现了仅通过Matlab就可以一键生成mif文件的功能。首先,打开MATLAB软件,小梅哥这里使用的版本为MATLAB 2012b。新建一个Script文件,操作为File NewScript。在该文件中输入以下内容:F1=1;%信号的频率Fs=2;%采样频率P1=0;%信号初始相位N=2;%采样点数为Nt=0:1/Fs:(N-1)/Fs;%采样时刻ADC=2 -
3、 1;%直流分量A=2;%信号幅度s=A*sin(2*pi*F1*t +pi*P1/180) + ADC;%生成信号plot(s);%绘制图形fild =fopen(d:/sin14bit_16384.mif,wt);%创建mif文件%写入mif文件文件头fprintf(fild,%sn,WIDTH=14;);%位宽fprintf(fild,%snn,DEPTH=16384;);%深度fprintf(fild,%sn,ADDRESS_RADIX=UNS;);%地址格式fprintf(fild,%snn,DATA_RADIX=HEX;);%数据格式fprintf(fild,%st,CONTENT);%地址fprintf(fild,%sn,BEGIN);%fori= 1:Ns2(i) =round(s(i);%对小数四舍五入以取整ifs2(i) 随后,会弹出如下图1所示的界面,该界面便是以我们生产的数据为值,t为时间轴绘制出来的波形,从波形可知为标准的正弦波,你也可以通过放大缩小来具体查看几个顶点的值,以确定数据是否在自己预期的范围内。这里,我们直接关掉该界面即可。下图2为使用该文件设计的DDS信号发生器系统,输出频率为3.448Mhz(随机设置的一个值),通过示波器的FFT功能可以看到,谐波量并不大。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 技能秒get 技能 get 如何 使用 MATLAB 制作 mif 文件
链接地址:https://www.31doc.com/p-3361524.html