sin查找表 matlab,利用Xilinx中的ROM构造查找表来计算sin和cos的方法探讨
1.使用matlab制作.coe文件
查找表的構(gòu)造
構(gòu)造256點(diǎn)的正余弦表
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)*^); // 這一步主要是考慮是表中數(shù)據(jù)的格式Q(s,,),完成浮點(diǎn)數(shù)到定點(diǎn)數(shù)之間的轉(zhuǎn)換.
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);
運(yùn)行這兩個(gè)matlab程序可以得到cos.txt, sin.txt文件,里面存放了適合放在ROM中的數(shù)據(jù)格式。
注意點(diǎn):
(1). COE文件格式
在txt文件開頭:
MEMORY_INITIALIZATION_RADIX=10;????//表示ROM內(nèi)容的數(shù)據(jù)格式是10進(jìn)制
MEMORY_INITIALIZATION_VECTOR=
在txt文件的最后一個(gè)數(shù)字后加入分號(hào)“;”。這里需要修改cos.txt,sin.txt,將最后的,改為;
(2)將cos.txt, sin.txt文件后綴直接改為coe文件類型。
-->如何修改txt 文件類型?
默認(rèn)情況下,Windows的文件后輟名是隱藏的,因此,為了更改文件的后輟名,首先必須讓文件名的后輟顯示出來。
方法如下:在文件窗口下選擇工具>文件夾選項(xiàng)>查看>高級(jí)設(shè)置中不勾選隱藏已知文件類型的擴(kuò)展名,即可顯示文件后綴名,然后直接更改為.coe后綴即可!
2. 定制rom
注意點(diǎn):
(1)memory type :single port ROM
(2)memory size :
width 為數(shù)據(jù)的寬度
Depth?為數(shù)據(jù)的個(gè)數(shù),它決定了輸入的addr的位數(shù)。比如,depth = 256, addr則為8位。
(3)選擇初始化文件。cos.coe, sin.coe ,選擇旁邊的show 可以查看添加是否正確。
這一步會(huì)生成對(duì)應(yīng)的.mig、.vhd 文件。
3. 仿真驗(yàn)證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文件。當(dāng)文件sin.coe放在ipcore_dir目錄下面時(shí),不需要這一步。應(yīng)直接用sin_rom.xco,不然仿真會(huì)提醒
sin.mif文件找不到!!
(3)新建testbench文件。
仿真結(jié)果如下:
對(duì)比sin_txt文件
利用.Net中Process類調(diào)用netstat命令來判斷計(jì)算端口的使用情況
利用.Net中Process類調(diào)用netstat命令來判斷計(jì)算端口的使用情況:?Process?p?=?new?Process();p.StartInfo?=?new?ProcessStartInfo ...
Lua查找表元素過程(元表、__index方法是如何工作的)
近日開始研究Lua,在元表的使用上照貓畫虎地搞了兩下,實(shí)現(xiàn)了“面向?qū)ο蟆?但究其本質(zhì)卻略有不解,后咨詢牛哥得解,特此記錄. Lua的表本質(zhì)其實(shí)是個(gè)類似HashMap的東西,其元素是很多的Key-Val ...
算法與數(shù)據(jù)結(jié)構(gòu)(九) 查找表的順序查找、折半查找、插值查找以及Fibonacci查找
今天這篇博客就聊聊幾種常見的查找算法,當(dāng)然本篇博客只是涉及了部分查找算法,接下來的幾篇博客中都將會(huì)介紹關(guān)于查找的相關(guān)內(nèi)容.本篇博客主要介紹查找表的順序查找.折半查找.插值查找以及Fibonacci查找 ...
OpenCV基礎(chǔ)篇之查找表
程序及分析 /* * FileName : lookup_table.cpp * Author : xiahouzuoxin @163.com * Version : v1.0 * Date : Su ...
Speed-BI 多事實(shí)表與表間計(jì)算的應(yīng)用:銷售目標(biāo)達(dá)成分析 另一種實(shí)現(xiàn)方法
在前一篇http://www.powerbibbs.com/forum. ... 7583& ...
OpenCV學(xué)習(xí)筆記:如何掃描圖像、利用查找表和計(jì)時(shí)
目的 我們將探索以下問題的答案: 如何遍歷圖像中的每一個(gè)像素? OpenCV的矩陣值是如何存儲(chǔ)的? 如何測(cè)試我們所實(shí)現(xiàn)算法的性能? 查找表是什么?為什么要用它? 測(cè)試用例 這里我們測(cè)試的,是一種簡單的 ...
1.2OpenCV如何掃描圖像,利用查找表和計(jì)時(shí)
查找表 顏色縮減法:如果矩陣元素存儲(chǔ)的是單通道像素,使用C或C++的無符號(hào)字符類型,那么像素可有256個(gè)不同值. 但若是三通道圖像,這種存儲(chǔ)格式的顏色數(shù)就太多了(確切地說,有一千六百多萬種).用如此之 ...
OpenCV從入門到放棄系列之——如何掃描圖像、利用查找表和計(jì)時(shí)
目的 如何遍歷圖像中的每一個(gè)像素? OpenCV的矩陣值是如何存儲(chǔ)的? 如何測(cè)試我們所實(shí)現(xiàn)算法的性能? 查找表是什么?為什么要用它? 測(cè)試用例 顏色空間縮減.具體做法就是:將現(xiàn)有顏色空間值除以某個(gè)輸入 ...
Quarter square 查找表乘法器,手動(dòng)建立rom
建立一個(gè)C的范圍為0~255,內(nèi)容是(C)2/4的查表 占用256個(gè)存儲(chǔ)空間,但可以計(jì)算出+-127的兩個(gè)數(shù)之積.傳統(tǒng)算法需要至少127×127個(gè)存儲(chǔ)空間. 查找表模塊的建立: module lut_ ...
隨機(jī)推薦
使用MyEclipse Swing/Matisse
經(jīng)常使用JBuilder開發(fā)工具的人都知道,在JBuilder中開發(fā)Swing應(yīng)用程序是比較方便的,雖然比不上曾經(jīng)紅遍一時(shí)的Visual Basic,但開發(fā)界面的工作確實(shí)被大大簡化了. ??? JB ...
VC++編程中為程序加入啟動(dòng)畫面功能
如何為自己的程序加入啟動(dòng)畫面 觀察我們平常使用的軟件,當(dāng)我們雙擊軟件的時(shí)候,會(huì)在主界面出現(xiàn)前,先行出現(xiàn)一個(gè)啟動(dòng)畫面,由于前一陣子寫了一個(gè)基于對(duì)話框的程序,親自實(shí)驗(yàn)了下,今天就為大家簡單的介紹下,在我 ...
UIPickerView基本用法
#import "ViewController.h" #import @interface ViewController : UIVie ...
ubuntu14.04下arm-linux-gcc 4.5.1的安裝與配置
使用的是友善之臂mini6410自帶光盤中的. 1.對(duì)新版本arm-linux-gcc-5.4.1進(jìn)行解壓(注意,下面的C是大寫的) tar zxvf arm-linux-gcc-4.5.1-v6-v ...
hdu 4706 Children's Day 2013年ICPC熱身賽A題 模擬
題意:按字母順序排列成n型,簡單的模擬題. 當(dāng)字母排到z時(shí)從a開始重新排起. 代碼: /* * Author: illuz * Blog: ...
override和重載的區(qū)別
1.父類:public virtual string ToString(){return "a";}子類:public override string ToString(){ret ...
ROC曲線的概念和意義
ROC曲線 受試者工作特征曲線 (receiver operating characteristic curve,簡稱ROC曲線),又稱為感受性曲線(sensitivity curve).得此名的原因 ...
百度地圖API 自定義標(biāo)注圖標(biāo)
通過Icon類可實(shí)現(xiàn)自定義標(biāo)注的圖標(biāo),下面示例通過參數(shù)MarkerOptions的icon屬性進(jìn)行設(shè)置,?也可以使用marker.setIcon()方法.
總結(jié)
以上是生活随笔為你收集整理的sin查找表 matlab,利用Xilinx中的ROM构造查找表来计算sin和cos的方法探讨的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多元统计分析matlab,MATLAB的
- 下一篇: 认知无线电matlab代码详解,认知无线