1. 如何用cordic演算法實現高斯核函數
核函數一般是為了解決維度過高導致的計算能力不足的缺陷,實質就是特徵向量內積的平方。
2. 求利用cordic演算法來得到自然對數in(t)的verilog代碼,數據輸入是16位
其實我也想知道。。。最近一直被這個問題困惑。cordicIP 對輸入數據有要求。
http://wenku..com/link?url=_
詳情參考以上鏈接
python">wirea,b;
regc,d;
wire[15:0]n;
reg[15:0]m;
reg[31:0]data;
reg[47:0]datab;
wire[23:0]odata;
cordic_1arctanh(
.aclk(clk),//inputwireaclk
.s_axis_cartesian_tvalid(c),//inputwires_axis_cartesian_tvalid
.s_axis_cartesian_tuser(m),//inputwire[15:0]s_axis_cartesian_tuser
.s_axis_cartesian_tlast(d),//inputwires_axis_cartesian_tlast
.s_axis_cartesian_tdata(datab),//inputwire[31:0]s_axis_cartesian_tdata
.m_axis_dout_tvalid(a),//outputwirem_axis_dout_tvalid
.m_axis_dout_tuser(n),//outputwire[15:0]m_axis_dout_tuser
.m_axis_dout_tlast(b),//outputwirem_axis_dout_tlast
.m_axis_dout_tdata(odata)//outputwire[15:0]m_axis_dout_tdata
);
initialbegin
#200c=1;
d=0;
m=0;
datab=48'h0a00004a0000;
#20datab=48'h000000580000;
end
3. cordic.演算法什麼時候作用到藍牙中
Cordic演算法是坐標旋轉數字計算方法,之前是用來進行坐標變換的演算法。之後經過發展可以進行很多其他的數學運算。Cordic的可以用迭代計算很多數學運算。但是真正cordic比較牛的地方,是可以用硬體來實現。從以上的偽代碼,可看出,x和y的運算有個乘以2^(-i)的這個因子。而這個因子,在硬體中,只要是乘以2,或者除以2,都是通過簡單的右移和左移來實現的。這樣,迭代就簡單的用移位,加法實現了。而atan(1/2^i),這個因子,因為i的值是固定從整數0到我們需要迭代次數的值。因此,對於確定的每個迭代i,這個atan(1/2^i)是個確定的值。因此,我們可以將這些預先知道的值存進一個rom裡面,然後再調用的時候在用就行了。這樣的話,就發現,cordic演算法,用硬體來實現就很簡單了。只需要移位,加法,查表,然後再迭代,就可以得出我們想要的結果了。
4. 請教CORDIC演算法
CORDIC(Coordinate Rotation Digital Computer)演算法即坐標旋轉數字計算方法,是J.D.Volder1於1959年首次提出,主要用於三角函數、雙曲線、指數、對數的計算。該演算法通過基本的加和移位運算代替乘法運算,使得矢量的旋轉和定向的計算不再需要三角函數、乘法、開方、反三角、指數等函數。
5. 有木有學過cordic演算法的,用Verilog實現了的!
ise自帶cordic IP核,不用自己實現吧。
6. 如何用fpga實現sin函數
兩條路
第一條路:如果需要一個cycle出答案,用FPGA實現一塊ROM做一張lookuptable。地址輸入角度值,在ROM中對應的地址放對應的sin的值。該方法對於0-90度的每一個可能的輸入於輸入角度值,需要在ROM中做一個entry。當然你也可以做一點近似。在90度附近,由於sin的變化率小,entry可以少放一點,在0度附近的采樣多放一些
第二條路:Cordic演算法,這是一種迭代演算法,通過不同的迭代次數可以實現不同的精度。迭代越多,精度越高。但是因為是迭代演算法,不能一個周期出結果。
對於cordic演算法可以參照一下網頁的介紹
網頁鏈接
7. 怎麼用cordic演算法實現dds matlab
時序要求:
寫地址、數據、命令時,nCE、nWE信號必須為低電平,它們在nWE信號的上升沿被鎖存。命令鎖存使能信號CLE和地址鎖存信號ALE用來區分I/O引腳上傳輸的是命令還是地址。
8. 怎麼用verilog實現cos,sin等三角函數
最簡單的,用NCO,直接可以產生正弦波和餘弦波
自己做也很簡單。存一個周期的正弦波數據到ROM中(也可以存1/4周期,新手建議還是一個周期簡單些)比如1024個點,然後你用一個遞增的地址去去這個ROM中的數據,出來的數據經過DA就是波形了,三角波原理類似。出來的波形頻率是根據你的采樣頻率和你ROM中的波形點數有關的,如果你1024個點都才出來的話(其實不需要采這么多點),你的采樣頻率是50MHz,那麼出來的波形頻率就是50MHz/1024了,當然其實你一個周期不需要采1024個點,有幾十個就夠了,關鍵在於你的rom地址是怎麼增加的,步進式多少。
做的更好一點的DDS就是可以采樣出任意頻率(理論上)的波形,也就是說采樣頻率不一定要是才出來的波形頻率的整數倍,那就相對難一點了,不過也不是很復雜~~~~呵呵~~~~
一句話,關鍵在於你的地址是怎麼遞增的!
9. FPGA後面DA的程序設計問題,望高手指導!!
不知道你具體想要干什麼,只能簡單說下:根據你的設計需求選取一個DA晶元(問老師),每個晶元都有配套的手冊,上面寫了使用方法,包括輸入輸出管腳,輸入輸出信號的格式,每個管腳的外圍電路怎麼連,最重要的提供晶元的內部配置(就是配置DA晶元的寄存器)。自己編寫硬體描述語言配准DA晶元,FPGA連接DA。
比如我現在用的CH7301是DVI介面的DA晶元,使用VHDL語言,根據IIC匯流排協議配置 CH7301的工作方式。 還是比較麻煩的。
10. 如何用CORDIC的FPGA演算法計算平方和開根號
用向量模式cordic演算法
輸入x,y
輸出x即為伸縮系數乘以sqrt(x^2+y^2)