本文主要是介绍Arrayfire学习笔记(三)常规窄带波束形成,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
经过两天的熟悉以及小伙伴的指导,蹒跚着开始了程序的实(测)现(试)
有了一些常用的矩阵运算,基本上就可以实现一个煎蛋的波束形成代码了。
在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));//类型转换
}
真的是很久没写过这些程序了,总结一点心得
这篇关于Arrayfire学习笔记(三)常规窄带波束形成的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!