sin查找表 matlab,利用Xilinx中的ROM构造查找表来计算sin和cos的方法探讨

1.使用matlab制作.coe文件

查找表的构造

构造256点的正余弦表

exp(-j*2*pi*(0:255)/256),分别得到 cos和sin的查找表

matlab代码: 求sin

fid = fopen('sin.txt','a' );

str1 = 'MEMORY_INITIALIZATION_RADIX=10;';

str2 = 'MEMORY_INITIALIZATION_VECTOR=';

fprintf(fid,'\t%s\n \t%s\n', str1,str2);

for k=:;

y(k) =sin(*pi*k/);

y(k) = int16(y(k)*^); // 这一步主要是考虑是表中数据的格式Q(s,,),完成浮点数到定点数之间的转换.

fprintf(fid,'\t%d%c\n',y(k),',');

end

fclose(fid);

matlab代码:求cos

fid = fopen('cos.txt','a' );

str1 = 'MEMORY_INITIALIZATION_RADIX=10;';

str2 = 'MEMORY_INITIALIZATION_VECTOR=';

fprintf(fid,'\t%s\n \t%s\n', str1,str2);

for k=:;

y(k) =cos(*pi*k/);

y(k) = int16(y(k)*^);

fprintf(fid,'\t%d%c\n',y(k),',');

end

fclose(fid);

运行这两个matlab程序可以得到cos.txt, sin.txt文件,里面存放了适合放在ROM中的数据格式。

注意点:

(1). COE文件格式

在txt文件开头:

MEMORY_INITIALIZATION_RADIX=10;    //表示ROM内容的数据格式是10进制

MEMORY_INITIALIZATION_VECTOR=

在txt文件的最后一个数字后加入分号“;”。这里需要修改cos.txt,sin.txt,将最后的,改为;

(2)将cos.txt, sin.txt文件后缀直接改为coe文件类型。

-->如何修改txt 文件类型?

默认情况下,Windows的文件后辍名是隐藏的,因此,为了更改文件的后辍名,首先必须让文件名的后辍显示出来。

方法如下:在文件窗口下选择工具>文件夹选项>查看>高级设置中不勾选隐藏已知文件类型的扩展名,即可显示文件后缀名,然后直接更改为.coe后缀即可!

2. 定制rom

注意点:

(1)memory type :single port ROM

(2)memory size :

width 为数据的宽度

Depth 为数据的个数,它决定了输入的addr的位数。比如,depth = 256, addr则为8位。

(3)选择初始化文件。cos.coe, sin.coe ,选择旁边的show 可以查看添加是否正确。

这一步会生成对应的.mig、.vhd 文件。

3. 仿真验证ROM是否正常工作

(1)新建top文件

entity look_up_sin is

port(

clk: in std_logic;

rst: in std_logic;

addr:in std_logic_vector( downto ); --Q(,)

sin_out:out std_logic_vector( downto )--Q(,)

);

end look_up_sin;

architecture Behavioral of look_up_sin is

COMPONENT sin_rom

PORT (

clka : IN STD_LOGIC;

addra : IN STD_LOGIC_VECTOR( DOWNTO );

douta : OUT STD_LOGIC_VECTOR( DOWNTO )

);

END COMPONENT;

begin

Inst_sin_rom : sin_rom

PORT MAP (

clka => clk,

addra => addr,

douta => sin_out

);

end Behavioral;

(2)remove sin_rom.XCO ip核文件,添加sin_rom.vhd文件。当文件sin.coe放在ipcore_dir目录下面时,不需要这一步。应直接用sin_rom.xco,不然仿真会提醒

sin.mif文件找不到!!

(3)新建testbench文件。

仿真结果如下:

6a08c149847b016f58b17fc7fa7333b9.png

对比sin_txt文件

a4da5874afe28abd6e6e0f6a01440e69.png

利用.Net中Process类调用netstat命令来判断计算端口的使用情况

利用.Net中Process类调用netstat命令来判断计算端口的使用情况: Process p = new Process();p.StartInfo = new ProcessStartInfo ...

Lua查找表元素过程(元表、__index方法是如何工作的)

近日开始研究Lua,在元表的使用上照猫画虎地搞了两下,实现了“面向对象”,但究其本质却略有不解,后咨询牛哥得解,特此记录. Lua的表本质其实是个类似HashMap的东西,其元素是很多的Key-Val ...

算法与数据结构(九) 查找表的顺序查找、折半查找、插值查找以及Fibonacci查找

今天这篇博客就聊聊几种常见的查找算法,当然本篇博客只是涉及了部分查找算法,接下来的几篇博客中都将会介绍关于查找的相关内容.本篇博客主要介绍查找表的顺序查找.折半查找.插值查找以及Fibonacci查找 ...

OpenCV基础篇之查找表

程序及分析 /* * FileName : lookup_table.cpp * Author : xiahouzuoxin @163.com * Version : v1.0 * Date : Su ...

Speed-BI 多事实表与表间计算的应用:销售目标达成分析 另一种实现方法

在前一篇http://www.powerbibbs.com/forum. ... 7583& ...

OpenCV学习笔记:如何扫描图像、利用查找表和计时

目的 我们将探索以下问题的答案: 如何遍历图像中的每一个像素? OpenCV的矩阵值是如何存储的? 如何测试我们所实现算法的性能? 查找表是什么?为什么要用它? 测试用例 这里我们测试的,是一种简单的 ...

1.2OpenCV如何扫描图像,利用查找表和计时

查找表 颜色缩减法:如果矩阵元素存储的是单通道像素,使用C或C++的无符号字符类型,那么像素可有256个不同值. 但若是三通道图像,这种存储格式的颜色数就太多了(确切地说,有一千六百多万种).用如此之 ...

OpenCV从入门到放弃系列之——如何扫描图像、利用查找表和计时

目的 如何遍历图像中的每一个像素? OpenCV的矩阵值是如何存储的? 如何测试我们所实现算法的性能? 查找表是什么?为什么要用它? 测试用例 颜色空间缩减.具体做法就是:将现有颜色空间值除以某个输入 ...

Quarter square 查找表乘法器,手动建立rom

建立一个C的范围为0~255,内容是(C)2/4的查表 占用256个存储空间,但可以计算出+-127的两个数之积.传统算法需要至少127×127个存储空间. 查找表模块的建立: module lut_ ...

随机推荐

使用MyEclipse Swing/Matisse

经常使用JBuilder开发工具的人都知道,在JBuilder中开发Swing应用程序是比较方便的,虽然比不上曾经红遍一时的Visual Basic,但开发界面的工作确实被大大简化了.     JB ...

VC++编程中为程序加入启动画面功能

如何为自己的程序加入启动画面 观察我们平常使用的软件,当我们双击软件的时候,会在主界面出现前,先行出现一个启动画面,由于前一阵子写了一个基于对话框的程序,亲自实验了下,今天就为大家简单的介绍下,在我 ...

UIPickerView基本用法

#import "ViewController.h" #import @interface ViewController : UIVie ...

ubuntu14.04下arm-linux-gcc 4.5.1的安装与配置

使用的是友善之臂mini6410自带光盘中的. 1.对新版本arm-linux-gcc-5.4.1进行解压(注意,下面的C是大写的) tar zxvf arm-linux-gcc-4.5.1-v6-v ...

hdu 4706 Children's Day 2013年ICPC热身赛A题 模拟

题意:按字母顺序排列成n型,简单的模拟题. 当字母排到z时从a开始重新排起. 代码: /* * Author: illuz * Blog: ...

override和重载的区别

1.父类:public virtual string ToString(){return "a";}子类:public override string ToString(){ret ...

ROC曲线的概念和意义

ROC曲线 受试者工作特征曲线 (receiver operating characteristic curve,简称ROC曲线),又称为感受性曲线(sensitivity curve).得此名的原因 ...

百度地图API 自定义标注图标

通过Icon类可实现自定义标注的图标,下面示例通过参数MarkerOptions的icon属性进行设置, 也可以使用marker.setIcon()方法.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/347999.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php提取pdf首页图片,pdf图片怎么提取

pdf图片的提取方法:首先用极速PDF阅读器打开文档;然后在图片处单击鼠标右键并选择“复制图片”,这时就可以粘贴发送了。本文操作环境:Windows7系统,Microsoft Office PowerPoint2020版本,Dell G3电脑。pdf图…

dlopen linux 实例_Linux静态库和动态库

库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。 静态库和动态库的区别1. 静态函数库这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标…

反射setaccessible_advancedday16类加载器,反射

加载配置文件在src目录下创建一个config.properties配置文件,使用类加载器加载配置文件。//创建集合Properties propertiesnew Properties();//获取src目录下,配置文件的流InputStream in ClassLoader.getSystemClassLoader() .getResourceAsStream(…

基于matlab的语音信号,科学网—[转载]【信息技术】【2014.06】【含源码】基于MATLAB的语音信号处理与分析 - 刘春静的博文...

本文为瑞典耶夫勒大学(作者:Nan Wu)的学士论文,共48页。语音传递是人类最重要、最有效、最常用的信息交流方式。语言是人类特有的特征,而人声是常用的工具,也是相互传递信息的重要途径。语音具有较大的信息容量。因此,…

string.intern_使用String.intern()减少内存使用

string.intern时不时地会有一个垂死的生产应用程序。 而且您知道您需要尽快对其进行修补。 我们也是如此,并认为分享最近的一个战争故事会很有趣。 在这种情况下,我们就有机会使用String.intern()之类的简单补丁来修补应用程序。 …

微信批量退款php,微信支付退款接口详解

微信支付有2个退款相关的接口,分别是申请退款API和查询退款API,这2个接口在实际微信支付开发中都会用到。其中申请退款API因为安全性,需要使用证书,证书在商户平台后台下载.申请退款接口支持一年以内的订单退款,可以分…

1235813找规律第100个数_人教版一年级下册数学第1-8单元知识点梳理填空,附答案...

参考答案:第一单元 认识图形1、认识平面图形 2、平面图形的拼组用相同的正方形、长方形或三角形可以分别拼成更大的正方形、长方形或三角形。3、认识七巧板 七巧板是由1个正方形、1个平行四边形、5个三角形组成的。第二单元 20以内的退位减法1、十几减几的计算方法(…

pandas整表写入excel指定位置_当Python遇到Excel,一个能打的都没有~

几乎人人都在用Excel,这种极易上手的数据分析工具无处不在,一旦你掌握了窍门,它就变得非常强大。而Python通常被认为更具有挑战性,但能做的事也更多。当Python遇到Excel会发生什么?本文将告诉你,这三项Exce…

无需再忙了:Lambda-S3缩略图,由SLAppForge Sigma钉牢!

如果你还没有注意到了,我最近被唠叨试图开始使用时,我遭遇了陷阱AWSλ-S3正式例子 。 虽然大多数这些愚蠢的错误的指责是对我自己的懒惰,过度自尊和缺乏对细节的关注,我个人觉得,在开始与一家领先的无服务器供应商不应…

sqlyog设置自动补全_Visual Studio Code 最好的功能、插件和设置

Visual Studio Code 是由 Microsoft(微软) 发布的一个免费的,开源的跨平台文本编辑器。他们基于在线编辑 Visual Studio Online (代号为 “Monaco”),并结合 GitHub 的 Electron 实现的一个跨平台编辑器。他们在为程序员创建一个快速且高效工作环境方面取…

ejb 示例 2018_Java EE EJB拦截器教程和示例

ejb 示例 2018在此示例中,我们将看到如何在EJB中使用拦截器并使用简单的Web应用程序对其进行测试。 1.简介 顾名思义,当您想拦截对EJB方法的调用时,将使用拦截器。 如果为Bean声明一个拦截器,则每次调用该Bean的方法时&#xff0…

linux怎么使用串口线,如何在Linux下使用USB转串口线,鼎力告诉您

亲爱的朋友,如果您使用的Linux的系统,应该怎么来使用我们的鼎力的USB转串口线呢?下面就来告诉您吧!用Linux,不需要另外安装USB转串口驱动!前提是你要先安装minicom输入命令:dmesg| grep usb,看到…

comsol分析时总位移代表什么_超弹性材料模型的压缩分析

为了表征超弹性材料,需要进行各种测试获取实验数据,包括承受单轴拉伸和压缩、双轴拉伸和压缩以及扭转测试。今天,我们向大家介绍如何使用通过单轴和双轴测试获得的拉伸和压缩测试数据,模拟由弹性泡沫材料制成的球体的压缩。通过案…

由对称性知定点一定在x轴上_线上优秀教学案例(九)|计算机科学与工程学院刘钊:“延期不延教”之“1+X课堂”...

【编者按】受新冠肺炎疫情影响,按照教育部和河北省教育厅统一部署,学校延迟春季开学时间。为最大程度减少疫情和延期开学对我校教育教学工作的影响,本学期,我校以线上教学的形式拉开序幕。面对新的教学模式,各学院、广…

和显卡驱动要配套吗_天天学渲染,你的显卡驱动用对了吗?

大家好,最近一直有很多人和我反馈说,自己在使用Octane或者Redshift渲染器渲染的时候经常容易崩溃,甚至是闪退了,其实这个问题有很大一部分原因是由于你的显卡驱动没用对导致的。接下来就和大家说下如何解决。首先我们大部分人买了…

网络研讨会:Java 9的第一印象–构建可伸缩企业应用程序的新方法

在此网络研讨会上听我们对新Java版本的一些初步想法 Java 9的新版本引起了很多炒作。在Mark Reinhold领导的专门团队的带领下,将Java平台迁移到模块花费了近十年的辛苦工作。 除了备受期待的Project Jigsaw,此版本还包含许多其他令人兴奋的功能。 现在是…

noj数据结构稀疏矩阵的加法十字链表_一个算法毁了一款好游戏?算法和数据结构到底有多重要?...

来源 | 异步前段时间大火的国产游戏——《太吾绘卷》,由于创新的玩法和精良的制作一度广受好评,然而随着玩家游戏的深入和时长的积累,发现该游戏在玩的过程中游戏外的问题很多很多。首先是存档速度慢,然后是密集的计算导致功耗大量…

arm-linux-gcc libstdc .so.6,mini2440编译内核:usr/lib/libstdc++.so.6 not found

买了块mini2440开发板,按照光盘中的mini2440用户手册编译内核时,#make zImage出现错误:usr/lib/libstdc.so.6 not found,在网上百度了下,有很多不同的解决办法,我试了一个,编译成功 ^ ^注&#…

前端实现可绘制的canvas画布_前端图形学基础(五)——Canvas状态管理

点击右上角的关注,不定期前端干货分享!!欢迎来到我的前端图形学系列文章:前端图形学基础(一)——Canvas基础入门前端图形学基础(二)——Canvas基础前端图形学基础(三)——Canvas绘制图片前端图形学基础(四)——Canvas绘制曲线我们…

having和where可以同时使用吗_阴、阳离子聚丙烯酰胺可以同时混合溶解使用吗?...

聚丙烯酰胺是一种水处理药剂,需要溶解在水中制成浓度为0.1%-0.5%的聚丙烯酰胺水溶液。一般来说,当聚丙烯酰胺实际使用时,阴离子聚丙烯酰胺和阳离子聚丙烯酰胺可以同时使用。但是,阳离子聚丙烯酰胺和阴离子聚丙烯酰胺不能混合在一起…