MUSIC算法相关原理知识(物理解读+数学推导+Matlab代码实现)

这篇具有很好参考价值的文章主要介绍了MUSIC算法相关原理知识(物理解读+数学推导+Matlab代码实现)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

部分来自于网络教程,如有侵权请联系本人删除 

教程链接:MUSIC算法的直观解释:1,MUSIC算法的背景和基础知识_哔哩哔哩_bilibili

 MUSIC算法的直观解释:2,我对于MUSIC算法的理解_哔哩哔哩_bilibili

https://blog.csdn.net/zhangziju/article/details/100730081

 一、MUSIC算法作用

MUSIC(Multiple Signal Classification),多重信号分类,是一类空间谱估计算法。其思想是利用接收数据的协方差矩阵(Rx)进行特征分解,分离出信号子空间和噪声子空间,利用信号方向向量与噪声子空间的正交性来构成空间扫描谱,进行全域搜索谱峰,从而实现信号的参数估计。

MUSIC算法通常被用来使用麦克风阵列进行声源定位。

例如当麦克风阵列放在一个房间中,房间中存在一个声源。当声源发声时,阵列会接收到来自目标方向的信号,但是也会接受到不同方向的反射信号。MUSIC算法可以剔除掉其余的反射信号,选出来自目标方向的那个信号,从而得到目标的方向。

声波是机械波,通常利用麦克风阵列接受后转换为电信号进行处理。当信号是电磁波时,例如wifi信号,我们拿天线阵列进行接收,此时仍然可以利用MUSIC算法把不同方向信号的角度计算出来。

二、MUSIC算法原理

MUSIC算法适用于来波为平行波,即目标与麦克风阵列的距离L远大于阵元之间间距d。此时来自目标的信号相对于每个阵元的方位角基本可视为相同。具体如下图所示:

music算法原理,声学相关算法,算法,matlab

图1

1.时延、相位差和目标方位角关系

假设信号源发射信号为

当信号从声源目标S传播到阵元1时,信号传播了距离,假设声速为c,则耗时

这样便会导致阵元1接受信号的相位和发射信号不一致,会延迟

那么阵元1最终接收信号为:

 阵元2相对于阵元1多走了,那么阵元2接受信号则为:

music算法原理,声学相关算法,算法,matlab

其中,代表阵元2接收信号和阵元1接收信号之间的相位差

阵元3相对于阵元1多走了,那么相应的相位差为:

则阵元3接收信号为:

PS:如果还不好理解因为多走了一段距离导致的相位差怎么计算,可以这样理解(以阵元1和2为例):

假设阵元1接收信号为

因为信号到达阵元2多走了一段距离,那么信号到达阵元2的时间总会相比阵元1延迟(我们通常称之为时延,实际上相位差就是时延导致的)

那么阵元2接收信号则为music算法原理,声学相关算法,算法,matlab

很明显,和的相位差为music算法原理,声学相关算法,算法,matlab

由数字信号处理知识可以知道,同时在图1中阵元1和阵元2的时延

那么就可以得到相位差

2.MUSIC算法核心原理(思路来源)

MUSIC算法的最终目的:计算

从以上推导可以知道和两个阵元接收信号的相位差紧密相关。能求到,就能求得。

那么在理想条件,也就是没有任何的反射和折射,且只有一个声源,这时直接用两阵元接收信号相除就能得到相位差,从而得到目标方位角。

但是实际上会有很多反射折射信号被麦克风阵列所接收,而且声源可能不止一个,此时该怎么办呢?这就是MUSIC算法需要解决的问题。

好,那么我们假设一共有两个声源A,B,发射信号分别为和(暂时不考虑反射和折射)

那么在某时刻t,三个阵元接收信号分别为:

music算法原理,声学相关算法,算法,matlab

music算法原理,声学相关算法,算法,matlab

music算法原理,声学相关算法,算法,matlab

那么某段时间内,麦克风阵列所接收信号为:

对应可以写成:

其中我们已知,是需要求得的,可能已知,可能不知(当已知且可逆时,可以直接用逆矩阵求,但是这样的情况较少)

能不能通过处理,将等式右边的消除掉?(MUSIC算法的核心)

怎么处理呢???

如果能找到三个复数、和,分别对3个阵元接收信号进行幅度和相位变换(用1个复数去乘以一个信号,则是对这个信号进行了幅度和相位变换),且变换后接收信号之间完全抵消了,即:

music算法原理,声学相关算法,算法,matlab

或用矩阵表示:

把、和分别代入上式可以得到:

music算法原理,声学相关算法,算法,matlab

即:

music算法原理,声学相关算法,算法,matlab

MUSIC算法在此时进行了一个假设,即假设信号和信号是不相关(MUSIC算法的假设条件1)的(当信号和信号线性相关时,可以找到一个非零复数,使得)

那么此时上面公式中和的系数必须都为0,即:

music算法原理,声学相关算法,算法,matlab

上式中系数和可以直接消除掉,那么可以看出,只要找到、和便可求出和

那么现在问题就转换为了,如何找到这一组复数、和???

要能找到这一组复数,必须满足:阵元个数 > 声源信号的个数(MUSIC算法的假设条件2)

其实最终就是解:

即,那么MUSIC算法是通过求的最大值(谱峰搜索)来找相应的解,对应的也就是相应的目标方位角。

3.MUSIC算法步骤总结

窄带远场信号的DOA数学模型为:

music算法原理,声学相关算法,算法,matlab

其中X为阵列接收到的信号矩阵,两个维度分别代表:阵元个数(number of array elements)、采样点数(snapshots);A为阵列方向矩阵,两个维度分别代表:阵元个数、信号方向的方向向量;s为信号源发射信号矩阵,两个维度分别代表:信号源个数、采样点数;N为噪声矩阵,两个维度分别为阵元个数、采样点数。

那么阵列接收数据的协方差矩阵为:

music算法原理,声学相关算法,算法,matlab

由于信号和噪声互相独立,数据协方差矩阵可以分解为信号、噪声相关的两部分,其中Rs是信号的协方差矩阵,ARsA^H是信号部分。

对R进行特征分解有:

music算法原理,声学相关算法,算法,matlab

式中,Us是由R的所有特征值中较大的(信号源个数)个特征向量组成的子空间,称为信号子空间;Un是由R的所有特征值中娇小的(阵元个数-信号源个数)个特征向量组成的子空间,称为噪声子空间。

根据之前我们所推导的MUSIC算法的条件,要求理想情况下信号子空间和噪声子空间正交,也就是信号子空间中的方向向量a(theta)和噪声子空间正交:

由于噪声的存在,实际上a(theta)和Un并不能完全正交。因此实际上是通过进行最小优化搜索来实现的:

和我们上文所说一样,MUSIC实际上是通过谱峰搜索来求最优解theta:

PS:由于实际中阵列接受数据是有限的,所以通常由协方差矩阵的最大似然估计来代替协方差矩阵:

总结以上算法原理,MUSIC算法的步骤为:

1.根据N个接收信号矢量得到下面协方差矩阵的估计值:

2.对第1步得到的协方差矩阵进行特征分解

music算法原理,声学相关算法,算法,matlab

3.矩阵会有M个特征值。将其从大到小进行排列:

其中D(D=信号源个数)个较大的特征值对应信号,将其对应的特征向量看做信号部分空间。

M-D(M=阵元个数)个较小的特征值对应噪声,将其对应的特征向量看做信号部分空间,得到噪声矩阵

4.使不断变化,计算谱函数:

通过寻找谱峰来计算波达方向的估计值。此处的为阵元的方向相应向量。

4.Matlab代码实现文章来源地址https://www.toymoban.com/news/detail-787864.html

clear all
close all
clc
%----------------均匀线列阵实现MUSIC算法------------------%
ang2rad = pi/180;                   % 角度转弧度系数
N = 10;                             % 阵元个数
M = 3;                              % 信源个数
theta = [-65,0,45];                 % 来波方向(角度)
snr = 10;                           % 信号信噪比dB
K = 512;                            % 总采样点
delta_d = 0.05;                     % 阵元间距
f = 2400;                           % 信号源频率
c = 340;                            % 声速

d = 0:delta_d:(N-1)*delta_d;
A = exp(-1i*2*pi*(f/c)*d.'*sin(theta*ang2rad));   % 接收信号方向向量
S = randn(M,K);                     % 阵列接收到来自声源的信号
X = A*S;                            % 最终接收信号,是带有方向向量的信号
X1 = awgn(X,snr,'measured');        % 在信号中添加高斯噪声
Rx = X1*X1'/K;                      % 协方差矩阵
[Ev,D] = eig(Rx);                   % 特征值分解
% [V,D] = eig(A) 返回特征值的对角矩阵 D 和矩阵 V
% 其列是对应的右特征向量,使得 AV = VD
EVA = diag(D)';                     % 将特征值提取为1行
[EVA,I] = sort(EVA);                % 对特征值排序,从小到大。其中I为index:1,2,...,10
EV = fliplr(Ev(:,I));               % 对应特征矢量排序
 En = EV(:,M+1:N);                  % 取特征向量矩阵的第M+1到N列特征向量组成噪声子空间
 
% 遍历所有角度,计算空间谱
for i = 1:361
    angle(i) = (i-181)/2;           % 映射到-90度到90度
    theta_m = angle(i)*ang2rad;
    a = exp(-1i*2*pi*(f/c)*d*sin(theta_m)).';
    p_music(i) = abs(1/(a'*En*En'*a));
end
p_max = max(p_music);
p_music = 10*log10(p_music/p_max);  % 归一化处理
figure()
plot(angle,p_music,'b-')
grid on
xlabel('入射角/度')
ylabel('空间谱/dB')

到了这里,关于MUSIC算法相关原理知识(物理解读+数学推导+Matlab代码实现)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 毫米波雷达DOA估计,包含3D-FFT,DBF,music算法三种测角算法原理

    毫米波雷达DOA估计,包含3D-FFT,DBF,music算法三种测角算法原理

      毫米波雷达的目标角度估计,特别是角度分辨率的提高是雷达探测需要解决的核心问题,使用FFT(快速傅里叶变换)或者DBF(数字波束形成技术)做DOA估计是最简单且运算复杂度最低的方法,但是这两方法并不能实现超分辨,其角分辨率受限于阵列的孔径,music算法是实

    2024年02月03日
    浏览(221)
  • 详细介绍雷达到达角估计算法3DFFT,DBF,MUSIC,Capon的原理、对比、各自的优势

    目录 3DFFT DBF MUSIC Capon 优缺点          雷达到达角估计是雷达信号处理中的一个重要问题,旨在确定来自目标的雷达信号的到达角度。雷达到达角估计算法可以分为时域方法和频域方法两种类型。其中,频域方法可以进一步分为基于阵列信号处理的方法和基于普通雷达信号

    2024年02月04日
    浏览(12)
  • Python数值和符号算法计算及3D视图物理数学波形方程

    Python数值和符号计算及3D可视化以下物理方程: 物理数学方程分析:二分算法和牛顿-拉夫森算法解方程根。最小二乘法拟合方程和数据。短期傅里叶变换和小波分析非平稳信号。使用主成分分析复杂和大型数据集,提取时空相关性,分形维数测定。 非线性震动常微分方程:

    2024年04月14日
    浏览(9)
  • 详解Transformer模型及相关的数学原理

    详解Transformer模型及相关的数学原理

    声明:本文参考了许多相关资料,视频,博客,结合《Attention is All You Need》这篇文章的每一个细节,从一个初学者的角度出发详细解读Transformer模型,无代码。原文链接及参考资料放在文末,若有错误或不当之处请指出,如有侵权请联系作者删除。 Transformer模型是谷歌在201

    2024年01月18日
    浏览(11)
  • 线性回归(线性拟合)与非线性回归(非线性拟合)原理、推导与算法实现(一)

    线性回归(线性拟合)与非线性回归(非线性拟合)原理、推导与算法实现(一)

    关于回归和拟合,从它们的求解过程以及结果来看,两者似乎没有太大差别,事实也的确如此。从本质上说,回归属于数理统计问题,研究解释变量与响应变量之间的关系以及相关性等问题。而拟合是把平面的一系列点,用一条光滑曲线连接起来,并且让更多的点在曲线上或

    2023年04月14日
    浏览(12)
  • 大学物理之毕奥·萨伐尔定律推导

    大学物理之毕奥·萨伐尔定律推导

      其中是从电流元指向参考点方向的单位矢量,是真空磁导率。电流元产生的磁场的磁感应强度垂直与组成的平面,并满足右手螺旋定则。 电流元 定义:为电流元。大小为,的方向由线元所在处电流的流向来确定。 目的:用积分法来求出任意形状的磁场分布。 电流元的磁场

    2024年02月05日
    浏览(10)
  • DOA算法之DBF、CAPON、MUSIC、ROOT-MUSIC、ESPRIT、DML算法对比

    DOA算法之DBF、CAPON、MUSIC、ROOT-MUSIC、ESPRIT、DML算法对比

    阵列信号处理算法应用领域涉及雷达、声纳、卫星通信等众多领域,其 主要目的就是对天线阵列接收到的信号进行处理,增强有用信号,抑制无用信号,以达到空域滤波的目的 ,最后提取回波信号中所包含的角度等信息。 DOA估计意思是波达角度估计,是指电磁波到达天线阵

    2024年02月06日
    浏览(33)
  • 【算法基础】数学知识

    【算法基础】数学知识

    866. 试除法判定质数 - AcWing题库 时间复杂度是logN 867. 分解质因数 - AcWing题库  868. 筛质数 - AcWing题库 朴素版,埃氏筛法  线性筛 868. 筛质数 - AcWing题库 线性筛把时间复杂度优化到O(n),就需要保证筛去一个数只用一次,保证最小质因数就可以确保这一点。 如。筛去24,24=2*1

    2024年02月08日
    浏览(36)
  • unitary MUSIC 算法

      论文 A Unitary Transformation Method for Angle-of-Arrival Estimation 中提出了 unitary MUSIC 的算法,直译就是酉 MUSIC 算法,即酉变换 MUSIC 算法。该算法的目的是简化计算复杂度,将传统 MUSIC 算法中的复数 SVD 和复数网格搜索计算转化为实数计算。在学习 unitary MUSIC 之前需要理解 Hermiti

    2024年02月20日
    浏览(8)
  • 计算机组成原理(4)-----Cache的原理及相关知识点

    计算机组成原理(4)-----Cache的原理及相关知识点

    目录 1.Cache的原理 2.Cache的性能 3.Cache和主存的映射方式  (1)全相联映射 (2)直接映射 (3)组相联映射 4.替换算法 (1)随机算法(RAND) (2)先进先出算法(FIFO) (3)近期最少使用(LRU) (4)最近不经常使用(LFU) 5.Cache写策略 (1)写命中 •写回法 •全写法 (2)写不命中 •写分配法 •非写分

    2024年02月21日
    浏览(16)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包