一种用于环境声源的被动到达角(AoA)提取算法(Matlab代码实现)

简介: 一种用于环境声源的被动到达角(AoA)提取算法(Matlab代码实现)

🍁🥬🕒摘要🕒🥬🍁

AOA 定位方法,主要是测量信号移动台和基站之间的到达角度,以基站为起点形成的射线必经过移动台,两条射线的交点即为移动台的位置。该方法只需两个基站就可以确定 MS 的估计位置,其定位示意图如图所示。

✨🔎⚡运行结果⚡🔎✨

 

💂♨️👨‍🎓Matlab代码👨‍🎓♨️💂

%% Initialization
clear;
addpath(genpath('../Library/'));
params = getParams();
micUsed = params.micUsed;
fileName = '../data/ReSpeaker/example';
waveOrig = load([fileName '.mat']).wave(micUsed, :);
[~, waveLen] = size(waveOrig);
sampleRate = params.sampleRate;
readRate = params.readRate;
readNum = round(waveLen / sampleRate * readRate);
readSampleNum = params.readSampleNum;
sourceNum = params.sourceNum;
%% AoA Extraction
angleListY = zeros(readNum, sourceNum);
angleListZ = zeros(readNum, sourceNum);
for readIdx = 1: readNum
    waveNow = waveOrig(:, ...
        (readIdx - 1) * sampleRate / readRate + 1: (readIdx - 1) * sampleRate / readRate + readSampleNum);
    [angleNowY, angleNowZ] = multipleSource(waveNow, sourceNum, params);
    angleListY(readIdx, :) = angleNowY;
    angleListZ(readIdx, :) = angleNowZ;
end
save([fileName '_result.mat'], 'angleListY', 'angleListZ');
%% Visualization
angleListGtY = ones(readNum, 1) * [25 61];
angleListGtZ = ones(readNum, 1) * [291 101];
figure(1);
subplot(1, 2, 1);
plot((1: readNum) / readRate, angleListY, 'x', ...
    (1: readNum) / readRate, angleListGtY, 'linewidth', 2);
axis([0 readNum / readRate params.angleRangeY(1) params.angleRangeY(2)]);
legend('Est_1', 'Est_2', 'Gt_1', 'Gt_2');
title('Angle Y');
xlabel('Time (s)');
ylabel('AoA (Deg)');
subplot(1, 2, 2);
plot((1: readNum) / readRate, angleListZ, 'x', ...
    (1: readNum) / readRate, angleListGtZ, 'linewidth', 2);
axis([0 readNum / readRate params.angleRangeZ(1) params.angleRangeZ(2)]);
legend('Est_1', 'Est_2', 'Gt_1', 'Gt_2');
title('Angle Z');
xlabel('Time (s)');
ylabel('AoA (Deg)');


📜📢🌈参考文献🌈📢📜

[1]石月,戴雅伟.一种基于4G AoA的5G天线方位角调优方法[J].电信工程技术与标准化,2022,35(07):48-51.DOI:10.13992/j.cnki.tetas.2022.07.016.

相关文章
|
13天前
|
机器学习/深度学习 人工智能 算法
基于DCT和扩频的音频水印嵌入提取算法matlab仿真
本文介绍了结合DCT和扩频技术的音频水印算法,用于在不降低音质的情况下嵌入版权信息。在matlab2022a中实现,算法利用DCT进行频域处理,通过扩频增强水印的隐蔽性和抗攻击性。核心程序展示了水印的嵌入与提取过程,包括DCT变换、水印扩频及反变换步骤。该方法有效且专业,未来研究将侧重于提高实用性和安全性。
|
3天前
|
算法 数据安全/隐私保护 计算机视觉
基于DCT变换的彩色图像双重水印嵌入和提取算法matlab仿真
**算法摘要:** - 图形展示:展示灰度与彩色图像水印应用,主辅水印嵌入。 - 软件环境:MATLAB 2022a。 - 算法原理:双重水印,转换至YCbCr/YIQ,仅影响亮度;图像分割为M×N块,DCT变换后嵌入水印。 - 流程概览:两步水印嵌入,每步对应不同图示表示。 - 核心代码未提供。
|
3天前
|
机器学习/深度学习 算法 数据可视化
Matlab决策树、模糊C-均值聚类算法分析高校教师职称学历评分可视化
Matlab决策树、模糊C-均值聚类算法分析高校教师职称学历评分可视化
10 0
|
4天前
|
算法 TensorFlow 算法框架/工具
基于直方图的图像阈值计算和分割算法FPGA实现,包含tb测试文件和MATLAB辅助验证
这是一个关于图像处理的算法实现摘要,主要包括四部分:展示了四张算法运行的效果图;提到了使用的软件版本为VIVADO 2019.2和matlab 2022a;介绍了算法理论,即基于直方图的图像阈值分割,通过灰度直方图分布选取阈值来区分图像区域;并提供了部分Verilog代码,该代码读取图像数据,进行处理,并输出结果到"result.txt"以供MATLAB显示图像分割效果。
|
4天前
|
算法 搜索推荐 数据挖掘
MATLAB模糊C均值聚类FCM改进的推荐系统协同过滤算法分析MovieLens电影数据集
MATLAB模糊C均值聚类FCM改进的推荐系统协同过滤算法分析MovieLens电影数据集
12 0
|
5天前
|
数据采集 机器学习/深度学习 存储
MATLAB用改进K-Means(K-均值)聚类算法数据挖掘高校学生的期末考试成绩
MATLAB用改进K-Means(K-均值)聚类算法数据挖掘高校学生的期末考试成绩
10 0
|
6天前
|
算法 数据安全/隐私保护 数据格式
基于混沌序列的图像加解密算法matlab仿真,并输出加解密之后的直方图
该内容是一个关于混沌系统理论及其在图像加解密算法中的应用摘要。介绍了使用matlab2022a运行的算法,重点阐述了混沌系统的特性,如确定性、非线性、初值敏感性等,并以Logistic映射为例展示混沌序列生成。图像加解密流程包括预处理、混沌序列生成、数据混淆和扩散,以及密钥管理。提供了部分核心程序,涉及混沌序列用于图像像素的混淆和扩散过程,通过位操作实现加密。
|
6天前
|
数据采集 算法 数据可视化
MATLAB、R用改进Fuzzy C-means模糊C均值聚类算法的微博用户特征调研数据聚类研究
MATLAB、R用改进Fuzzy C-means模糊C均值聚类算法的微博用户特征调研数据聚类研究
14 1
|
14天前
|
机器学习/深度学习 算法
m基于深度学习的QPSK调制解调系统频偏估计和补偿算法matlab仿真
MATLAB 2022a中展示了基于深度学习的QPSK调制解调系统频偏估计和补偿算法仿真结果。该算法运用神经网络模型实时估计并补偿无线通信中的频率偏移。QPSK调制将二进制信息映射到四个相位状态,解调通常采用相干解调。深度学习算法通过预处理、网络结构设计、损失函数选择和优化算法实现频偏估计。核心程序生成不同SNR下的信号,比较了有无频偏补偿的误码率,显示了补偿效果。
9 1
|
14天前
|
算法
代码随想录算法训练营第六十天 | LeetCode 84. 柱状图中最大的矩形
代码随想录算法训练营第六十天 | LeetCode 84. 柱状图中最大的矩形
18 3