Arrayfire学习笔记(三)常规窄带波束形成

本文记录了使用Arrayfire在VS环境下实现窄带波束形成的经历,对比了与MATLAB的不同之处,强调了循环变量管理和数据类型转换的重要性,并提到了Arrayfire的共轭转置和子数组操作。
摘要由CSDN通过智能技术生成

经过两天的熟悉以及小伙伴的指导,蹒跚着开始了程序的实(测)现(试)

有了一些常用的矩阵运算,基本上就可以实现一个煎蛋的波束形成代码了。


在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));//类型转换

}


真的是很久没写过这些程序了,总结一点心得࿱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值