clc;                                             %全屏清零
clear all;                                        %变量清零
N=2^8;                                             %设置ROM深度(字变量)的变量参数,
s_p=0:255;                                        %正弦波一个周期的采样点数
sin_data=sin(2*pi*s_p/N);                        %离散正弦波数据,这里的N决定了由ROM的深度决定,如果要更多的采样点,需要把N增大%打印我们的波形
%plot(sin_data,'r*');                            %红色r*打印
%hold on;                                        %保持
%plot(sin_data);                                %打印原来的波形%定点化
fix_p_sin_data=fix(sin_data*127);                 %调用fix函数,原来幅度是1,扩展到127——(-127)为什么乘127呢?因为每一个采样点%的位数是8位,而定点化前,正负的点的个数各占一半,也就是7位,2^7-1 = 127。%若需要精度更高的定点化数据,那么需要把幅度乘的数加大。%由于使用的DAC位数只有8位,因此定点化8位就可以了,也就是乘以2^(8-1)-1=127即可
for i=1:N                                        %总共1:2^8,即1:256,共256个点(深度),对每个点进行定点化if fix_p_sin_data(i)<0                        %如果得到的值小于零,那么就加上256(定点化位数的幅度)进行取正值fix_p_sin_data(i)=N+fix_p_sin_data(i);    %记住这里是负数用加号即可elsefix_p_sin_data(i)=fix_p_sin_data(i);    %若大于0,不需要修正end
end%打印定点化后的波形
%plot(sin_data,'r*');                             %红色r*打印
%hold on;                                        %保持
%plot(127*sin_data);                            %打印原来的波形
fid=fopen('sp_ram_256x8.mif','w+');             %创建并打开名字叫‘p_ram_256x8.mif'的文件,'w+'进行写数据
fprintf(fid,'WIDTH=8;\n');                      %打印(写) WIDTH=8; 然后 /n  换行
fprintf(fid,'DEPTH=256;\n');                    %
fprintf(fid,'ADDRESS_RADIX=UNS;\n');            %
fprintf(fid,'DATA_RADIX=UNS;\n');               %
fprintf(fid,'CONTENT BEGIN \n');                %上面的print都是写.mif文件的固定格式
for i=1:N                                       %这里开始写数据
fprintf(fid,'%d:%d; \n',i-1,fix_p_sin_data(i)); %数据格式是  行:数据
end                                             %行从0~255,数据则从sin的第一个数(没有0个)写到256个数,12行可以看出
fprintf(fid,'END; \n');                         %文件格式'END;'
fclose(fid);                                    %关闭文件

转载于:https://www.cnblogs.com/IClearner/p/7273366.html

定点化_mif文件生成相关推荐

  1. Simulink 自动代码生成电机控制:自动定点化Fixed-Point Tool 使用

    目录 1. 定点化前模型准备及注意事项 2.定点化步骤 3.生成代码 1. 定点化前模型准备及注意事项 1)模型参数设置 创建两组完全一样的电机参数,一组是浮点数放到电机模型里面,一组是算法的参数,由 ...

  2. DSP定点运算之数字信号处理算法的定点化及其C语言仿真(转)

    DSP广义上指数字信号处理理论(Digital Signal Processing),狭义上指数字 信号处理器(Digital Signal Processor).数字信号处理理论广泛应用于语音.图象 ...

  3. gsoap 学习 1-由wsdl文件生成h头文件

    开始前先看一下用户向导吧 http://www.cs.fsu.edu/~engelen/soap.html 中左侧点击Documentation 英语水平确实有限,有些内容可能说的不准确,敬请参考向导 ...

  4. 惊了!7 行代码优雅地实现 Excel 文件生成下载功能

    欢迎关注个人微信公众号: 小哈学Java 个人网站: www.exception.site/essay/how-t- 目录 一.前言 二.Apache poi.jxl 的缺陷 三.阿里出品的 Easy ...

  5. 使用C#从图片文件生成图标ICON文件(附源文件)

    使用C#从图片文件生成图标ICON文件(附源文件) 看到网上有一些网站做图标转换工具,挺好的,所以研究了一下在C#中是如何实现的.其实很简单几行代码就可以搞定. 主要是使用System.Drawing ...

  6. 【C/C++基础进阶系列】实战记录 -- Dump 文件生成与分析

    [C/C++基础进阶系列]实战记录 -- Dump 文件生成与分析 [1]Windows 端 Dump 文件的捕获与分析 [1.1]添加 Windows 端 Dump 捕获的代码 代码下载,windo ...

  7. 一文搞定B站弹幕生成云图

    一文搞定B站弹幕生成云图 最近学了词云图, 感觉非常有趣,我们做一些图试试, 最近我们遭受了新冠疫情 , 关于这个点,去看看b站弹幕都在说什么? B站的弹幕接口 直接从B站某视频源中找半天没找到弹幕的 ...

  8. Android适配--最详细的限定符屏幕适配方案解析 附带values-Dimens文件生成工具

    屏幕适配 前言 适配缘由 相关概念 适配方案 db适配 设计最大分辨率图片 屏幕分辨率限定符(宽高限定符) dimens文件生成原理 使用样例1 使用样例2 dimens文件生成脚本 总结 最小宽度限 ...

  9. 制作PDF模板实现PDF文件生成

    制作PDF模板实现PDF文件生成 最近开发的需求的时候,突然发现需要制作PDF,并且需要根据不同的用户制作不同的PDF,所以,为了提高效率,就想到了,制作PDF模板,然后赋值的这种方法,所幸,效果不错 ...

最新文章

  1. 通知 | 2017年清华-青岛数据科学研究院“RONG”奖学金即将开放申请
  2. mybatis与mysql的优点_mybatis和hibernate比较_区别_优缺点
  3. python for in语句 index_使用for循环查找句子中的单词及其索引位置
  4. cygwin 远程连接linux,Cygwin解决Windows远程登录linux服务器
  5. 日常撕逼:React和Vue到底谁更牛?
  6. 第八章 数据结构与算法
  7. js递归树结构计算每个节点的叶子节点的数量并且输出
  8. 初入NLP领域的一些小建议
  9. 凸优化第二章凸集 2.1 仿射集合和凸集
  10. 祖传CMOS走出家门,佳能将在传感器供应圈中决战索尼
  11. 推荐5款超实用的小软件,建议先收藏再下载
  12. matlab获取图片上的字,Matlab读取图片代码
  13. 计算机桌面运维问题分类,桌面运维工程师常见面试问题汇总
  14. centos7 80端口被占用导致nginx或httpd无法启用的解决方法
  15. css筋斗云,JavaScript实现精美个性导航栏筋斗云效果
  16. 基于51单片机的火焰报警器
  17. oracle根据约束名查找具体信息,如是哪张表的哪个字段约束信息
  18. Spring Cloud:熔断器Hystrix
  19. C primer plus编程练习-第7章
  20. 计算机论文图表,核心方法:自动生成毕业论文标题目录和图表目录的方法

热门文章

  1. 关系代数基本运算_关系代数的基本和附加运算
  2. Java SecurityManager getSecurityContext()方法与示例
  3. php排序地区,怎么在php项目中实现一个地区分类排序算法
  4. 忘记手势密码的解决办法
  5. PyCharm安装和配置教程
  6. C++ STL 容器之stack简单使用
  7. 开启一个新的命令行窗口
  8. mysql 组合索引 or_Mysql_组合索引和单列索引
  9. (C++版)链表(一)——实现单向链表创建、插入、删除等相关操作
  10. Linux下Modules的概念及使用详解