日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Cordic 算法之 反正切

發布時間:2023/12/31 综合教程 39 生活家
生活随笔 收集整理的這篇文章主要介紹了 Cordic 算法之 反正切 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在通信的算法中,常采用Cordic算法之一,知道角度產生正交的的正弦余弦,

或者知道正弦和余弦求角度,求反正切。

1. 求正弦和余弦值。

方法:旋轉角度,得到正弦余弦值; 再旋轉角度,到達下一個正弦余弦值;直到旋轉的角度趨近于 0 ,不能再進行旋轉。

把每次旋轉的坐標的x,Y軸的值各自相加,即得到為該角度的正弦和余弦值。

2 .求反正切:Angle = artan(y/x)。

方法: 及給定x,y 的坐標通過向量旋轉,使得y 值不斷減小, 通過不斷地迭代使得 y 逐漸 趨漸0;

最終得到旋轉的角度之和 z, z 即為 反正切值。

驗證 輸入y=5000, x=5000;通過計算 atan(5000/5000) =0.5(pi 弧度)*90度 = 45度。

驗證 輸入y=6000, x=4000;通過計算 atan(6000/4000) =0.626(pi 弧度)* 90度 = 56.3度

驗證 輸入y=6000, x=500;通過計算 atan(6000/0500) =0.947(pi 弧度)* 90度 = 85.23度。

//level 1
always@(posedge clk or negedge rst_n)
begin
if(!rst_n)
begin
x1<=0;
y1<=0;
z1<=0;
end
else
if(ena)
if(y0<0)
begin
x1<=x0-y0;
y1<=y0+x0;
z1<=z0-15'd4500; //45deg
end
else if(y0>0)
begin
x1<=x0+y0;
y1<=y0-x0;
z1<=z0+15'd4500; //45deg
end
else
begin
x1 <= x0;
y1 <= y0;
z1 <= z0;
end
end

//level 2
always@(posedge clk or negedge rst_n)
begin
if(!rst_n)
begin
x2<=0;
y2<=0;
z2<=0;
end
else
if(ena)
if(y1<0)
begin
x2<=x1-{y1[DATA_WIDTH-1],y1[DATA_WIDTH-1:1]};
y2<=y1+{x1[DATA_WIDTH-1],x1[DATA_WIDTH-1:1]};
z2<=z1-15'd2656; //26.56deg

end
else if(y1>0)
begin
x2<=x1+{y1[DATA_WIDTH-1],y1[DATA_WIDTH-1:1]};
y2<=y1-{x1[DATA_WIDTH-1],x1[DATA_WIDTH-1:1]};
z2<=z1+15'd2656;
end
else
begin
x2 <= x1;
y2 <= y1;
z2 <= z1;
end
end

...

...

...

//level 13
always@(posedge clk or negedge rst_n)
begin
if(!rst_n)
begin
x13<=0;
y13<=0;
z13<=0;
end
else
if(ena)
if(y12<0)
begin
x13<=x12-{{12{y12[DATA_WIDTH-1]}},y12[DATA_WIDTH-1:12]};
y13<=y12+{{12{x12[DATA_WIDTH-1]}},x12[DATA_WIDTH-1:12]};
z13<=z12-15'd01; //0.014deg
end
else if(y12>0)
begin
x13<=x12+{{12{y12[DATA_WIDTH-1]}},y12[DATA_WIDTH-1:12]};
y13<=y12-{{12{x12[DATA_WIDTH-1]}},x12[DATA_WIDTH-1:12]};
z13<=z12+15'd01;
end
else
begin
x13 <= x12;
y13 <= y12;
z13 <= z12;
end
end

總結

以上是生活随笔為你收集整理的Cordic 算法之 反正切的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。