基于到达角的超声多频信号手势识别(Matlab代码实现)

           目录

💥1 概述

📚2 运行结果

🎉3 参考文献

👨‍💻4 Matlab代码


💥1 概述

DoA :波达方向   AoA:波达角  

波达方向是指空间信号的到达方向(各个信号到达阵列参考阵元的方向角,简称波达方向),波达角与波达方向是一回事。

对于3D空间来说,DoA(或AoA)包括(θ,φ)。对于一个2D平面来说,DoA即为方位角θ。目前基于DoA的定位技术都是在2D平面的基础上进行的,此时DoA即为方位角θ。

📚2 运行结果

 

🎉3 参考文献

[1]曹轶超. 无线电定位算法研究及目标运动分析[D].东华大学,2010.

👨‍💻4 Matlab代码

主函数部分代码:

close all;
clear all;
clc;
% load data before plotting
%% Fig 1
load fig_8_3_data_3.mat;
% close all;
plot_ind = 7:17;
linewidth = 1.5;
markersize = 6;
figure;
semilogy(snrdB(plot_ind),sqrt(rvec1(plot_ind)),'-ob','LineWidth',linewidth,'MarkerSize',markersize);
hold on;semilogy(snrdB(plot_ind),sqrt(rvec2(plot_ind)),'--^c','LineWidth',linewidth,'MarkerSize',markersize);
hold on;semilogy(snrdB(plot_ind),sqrt(rvec3(plot_ind)),'-*r','LineWidth',linewidth,'MarkerSize',markersize);
hold on;semilogy(snrdB(plot_ind),sqrt(rvec4(plot_ind)),'-+m','LineWidth',linewidth,'MarkerSize',markersize);
hold on;semilogy(snrdB(plot_ind),sqrt(rvec5(plot_ind)),'-dg','LineWidth',linewidth,'MarkerSize',markersize);
hold on;semilogy(snrdB(plot_ind),sqrt(rvec6(plot_ind)),'>m-.','LineWidth',linewidth,'MarkerSize',markersize*1.2);
hold on; semilogy(snrdB(plot_ind), sqrt(crlb(plot_ind)),'--k','LineWidth',2);
hold on;semilogy(snrdB(plot_ind),sqrt(rvec1(plot_ind)),'-ob','LineWidth',linewidth,'MarkerSize',markersize);

grid on;set(gca,'FontSize',13);
xlabel('{SNR [dB]}','Interpreter','Latex');
ylabel('{RMSE [Deg]}','Interpreter','Latex');

% set(gca,'FontSize',12)

% Zoomed plot ****************************************
bounds = [32 33 10^-1.35 10^-1.15]; % area to be zoomed
pos = [0.16 0.15 0.17 0.2];      % projected area [x, y, x_width, y_width]
vertex = [2 3];                 % vertex to be linked
p = gca;
% Calculate x,y points of zoomPlot
x1 = (pos(1)-p.Position(1))/p.Position(3)*diff(p.XLim)+p.XLim(1);
x2 = (pos(1)+pos(3)-p.Position(1))/p.Position(3)*diff(p.XLim)+(p.XLim(1));
y1 = 10^((pos(2)-(p.Position(2)))/(p.Position(4))*diff(log10(p.YLim))+log10(p.YLim(1)));
y2 = 10^(((pos(2)+pos(4)-p.Position(2))/p.Position(4))*diff(log10(p.YLim))+log10(p.YLim(1)));


rectangle('Position',[bounds(1) bounds(3) (bounds(2)-bounds(1)) (bounds(4)-bounds(3))]);
hold on;
offset = [0 -0.025 -0.0025 0];
if any(vertex==1)
    plot([bounds(1) x1], [bounds(4) y2 + offset(1)], '-.k'); % Line to vertex 1
end
if any(vertex==2)
    plot([bounds(2) x2], [bounds(4) y2 + offset(2)], '-.k'); % Line to vertex 2
end
if any(vertex==3)
    plot([bounds(2) x2], [bounds(3) y1 + offset(3)], '-.k'); % Line to vertex 4
end
if any(vertex==4)
    plot([bounds(1) x1], [bounds(3) y1 + offset(4)], '-.k'); % Line to vertex 3
end
% legend hide
z = axes('position',pos);

box on; % put box around new pair of axes
semilogy(snrdB(plot_ind),sqrt(rvec1(plot_ind)),'-ob','LineWidth',linewidth,'MarkerSize',markersize);
hold on;semilogy(snrdB(plot_ind),sqrt(rvec2(plot_ind)),'--^c','LineWidth',linewidth,'MarkerSize',markersize);
hold on;semilogy(snrdB(plot_ind),sqrt(rvec3(plot_ind)),'-*r','LineWidth',linewidth,'MarkerSize',markersize);
hold on;semilogy(snrdB(plot_ind),sqrt(rvec4(plot_ind)),'-+m','LineWidth',linewidth,'MarkerSize',markersize);
hold on;semilogy(snrdB(plot_ind),sqrt(rvec5(plot_ind)),'-dg','LineWidth',linewidth,'MarkerSize',markersize);
hold on;semilogy(snrdB(plot_ind),sqrt(rvec6(plot_ind)),'>m-.','LineWidth',linewidth,'MarkerSize',markersize*1.2);
hold on;semilogy(snrdB(plot_ind),sqrt(crlb(plot_ind)),'--k','LineWidth',2);
hold on;semilogy(snrdB(plot_ind),sqrt(rvec1(plot_ind)),'-ob','LineWidth',linewidth,'MarkerSize',markersize);

axis(bounds);

set(gca,'xtick',[])
set(gca,'ytick',[])
set(gca,'xticklabel',{[]})
set(gca,'yticklabel',{[]})

% set(gcf,'position',[100,100,420*1.2,400*1.2])
% print -dpng -r600 sim1-3sensors.png

legend('PDP','MUSIC ($0.01^\circ$)','MLE ($0.01^\circ$)','2Q-order','Two-step','EM-ESPRIT ($2^\circ$)','CRLB','Interpreter','Latex');
grid on; set(gca,'FontSize',13)

set(gcf,'position', [100,100,350*1.5,350])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值