Arrayfire学习笔记(三)常规窄带波束形成
来源:互联网 发布:java中求质数 编辑:程序博客网 时间:2024/05/31 19:04
经过两天的熟悉以及小伙伴的指导,蹒跚着开始了程序的实(测)现(试)
有了一些常用的矩阵运算,基本上就可以实现一个煎蛋的波束形成代码了。
在VS上写矩阵比matlab痛苦很多,
matlab:
R = signal_d'*signal_d;
for i = 1:length(theta)
a_s = exp(-jay*2*pi*f0*[0:N-1]*d/c*sin(theta(i)*pi/180));
beam(i,temp3) = a_s *(R) *a_s';
end
VS:
for(i_theta=0;i_theta<n_theta;i_theta++)
{
a_sReal = cos(-2*PI*ula_id*f0*d/c*sin(theta*PI/180));
a_simag = sin(-2*PI*ula_id*f0*d/c*sin(theta*PI/180));
a_s = af::complex(a_sReal,a_simag );
a_sT =transpose(a_s);
temp_p = matmul(a_s,R_data);
p_data = matmul(temp_p,a_sT);
p_data_abs = af::abs(p_data);
theta = theta + 0.5;
test_data.push_back(af::sum<double>(p_data_abs*p_data_abs));//类型转换
}
真的是很久没写过这些程序了,总结一点心得:
1.用来做循环的量很多时候重复利用了,但是没有在适当的适合置零。导致在之后的循环中,出错。
2.测试用的数据不宜太对称了。不然结果可能出乎意料。
3.用arrayfire or C写虚数好麻烦。要先写实部,再写虚部,再用af::complex(shibu,xubu)把实部虚部组合起来。刚开始没发现可以用这个的时候,简直是在一个值一个值往阵列里写。
4.C语言里各种数据类型纠结死了。arrayfire里面不支持的运算目前都是转出来变成数组或者栈再操作再变回去。
5.arrayfire的转置也分共轭转置和转置两种。通过设置参数conjugate为true或false来分别实现。
[out]outThe transposed matrix[in]inInput matrix which will be transposed[in]conjugatePerform a congugate transposition
6.将矩阵B中的元素写入矩阵A的例子
printf("--\nSub-refencing and Sub-assignment\n");
af_print(A);
af_print(A.col(0));
af_print(A.row(0));
A(0) = 11;
A(1) = 100;
af_print(A);
af_print(B);
A(1,span) = B(2,span);
af_print(A);
- Arrayfire学习笔记(三)常规窄带波束形成
- CUDA之窄带常规波束形成
- 自适应波束形成(一)——窄带波束形成和宽带波束形成
- 自适应波束形成(二)——时域窄带LCMV波束形成器
- 自适应波束形成学习笔记
- 自适应波束形成(三)——频域宽带LCMV波束形成器
- 自适应波束形成(三)——频域宽带LCMV波束形成器
- 波束形成(1)
- MATLAB之波束形成学习
- Arrayfire学习笔记(一)安装
- 水平线阵的反卷积常规波束形成
- Arrayfire学习笔记(二)开始滑翔吧!
- 自适应波束形成(四)——Frost波束形成1
- 自适应波束形成(五)——Frost波束形成2
- 常规波束形成的CPU和GPU的运行时间对比测试
- 浅谈内插波束形成
- 麦克风阵列波束形成
- 波束形成算法
- 链表的基本操作
- HTML5 - 简单的上下布局页面样例
- KVM原理与架构系列之一 概念篇
- [iOS]isKindOfClass、isMemberOfClass、isSubclassOfClass
- ffmpeg相关网页
- Arrayfire学习笔记(三)常规窄带波束形成
- MS SQL SERVER 不常用命令合集
- 了解CMS(Concurrent Mark-Sweep)垃圾回收器
- Dynamics CRM2016 Web API之更新记录
- 关于大型网站技术演进的思考(一)--存储的瓶颈(1)
- apache kafka监控系列-KafkaOffsetMonitor
- iOS使用自定义字体
- Html5_CSS_JS15个最佳教程网站和博客
- android 代码混淆之proguard