阵列信号处理——求根MUSIC算法(Root MUSIC)
求根MUSIC算法,即root-MUSIC算法是MUSIC方法的一种多项式求根形式,它是由Barabell提出的,其基本思想是Pisarenko分解。相比于MUSIC算法,root-MUSIC算法无须谱峰搜索,降低了复杂度。
基本MUSIC空间谱的谱峰等价为或。其中,是阵列样本协方差矩阵的次特征向量。
若令,则有
向量内积给出多项式表示
式中,是M×(M-p) 次特征向量矩阵的第(i,j)元素。于是,基本MUSIC空间谱表示或可以等价表示为
上式有可综合为或者,即有
换言之,只要对多项式求出单位圆上的根zi,即可得到空间参数w1,…,wp。
这就是求根MUSIC的基本思想。
然而,上式并不是z的多项式,因为它还包含了z*的幂次项。由于我们只对单位圆上的z值感兴趣,所以可以用代替,这就给出了求根MUSIC多项式
仿真参数设置:
参数名称 | 参数值 |
阵列数 | 8 |
阵元间距 | 0.5 |
信源数 | 3 |
波达方向 | 10, 20, 30 |
信噪比 | 10 |
采样数(快拍) | 200 |
程序如下:
clear all
close all
derad=pi/180; % 角度->弧度
radeg=180/pi; % 弧度->角度
twpi=2*pi;
kelm=8; % 阵元数
dd=0.5; % 阵元间距
d=0:dd:(kelm-1)*dd;
iwave=3; % 信源数
theta=[10 20 30]; % 波达方向
snr=10; % 信噪比
n=200; % 采样数
A=exp(-1i*twpi*d.'*sin(theta*derad)); % 方向向量
S=randn(iwave,n); % 信源信号
X0=A*S; % 接收信号
X=awgn(X0,snr,'measured'); % 添加噪声
Rxx=X*X'; % 计算协方差矩阵
InvS=inv(Rxx);
[EVx,Dx]=eig(Rxx); % 特征值分解
EVAx=diag(Dx)';
[EVAx,Ix]=sort(EVAx); % 特征值从小到大排序
EVAx=fliplr(EVAx); % 左右翻转,从大到小排序
EVx=fliplr(EVx(:,Ix));% root-MUSIC
Unx=EVx(:,iwave+1:kelm); % 噪声子空间
syms z;
pz=z.^([0:kelm-1]');
pz1=(z^(-1)).^([0:kelm-1]);
fz=z.^(kelm-1)*pz1*Unx*Unx'*pz; % 构造多项式
a=sym2poly(fz); % 符号多项式->数值多项式
zx=roots(a); % 求根
rx=zx';
[as,ad]=(sort(abs((abs(rx)-1))));
DOAest=asin(sort(angle(rx(ad([1,3,5])))/pi))*180/pi;
disp(DOAest);
运行结果如下:
对求根MUSIC算法,我们再作如下说明。
(1)求根MUSIC算法与谱搜索方式的MUSIC算法原理是一样的,只不过是用一个关于z的矢量来代替导向矢量,从而用求根过程代替搜索过程;
(2)由于噪声的存在,求出的根不可能在单位圆上,可选择接近单位圆上的根为真实信号的根,这就存在一定的误差;
(3)求根MUSIC算法与谱搜索的MUSIC算法相似,同样存在两种表达方式,一个是利用噪声子空间,另一个是利用信号子空间。
参考文献:
阵列信号处理及MATLAB实现;张小飞,陈华伟,仇小锋(编著)
现代信号处理(第三版);张贤达(编著)
阵列信号处理——求根MUSIC算法(Root MUSIC)相关推荐
- 【阵列信号处理】DOA估计算法
DOA估计中的ESPRIT算法 ESPRIT算法时一种利用子空间旋转法估计DOA参数的方法,其算法的基本思想是将阵列在结构上分成两个完全一致的子列,两个子列相应阵元偏移的距离相等,也就是说阵列的阵元被 ...
- 阵列算法matlab,阵列信号处理的常见算法
阵列处理算法常用程序 AR argamse.m armaorder.m lsar.m lsarma.m myprogramme.m mywarma.m yulewalker.m ESPRIT TAM算 ...
- python牛顿迭代法求根例题_python求根算法
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! scipy官网:https:www.scipy.org这个库是python科学计 ...
- 【阵列信号处理】DOA估计之MUSIC算法
什么是MUSIC算法? 空间谱估计是阵列信号处理中很重要的一部分,而空间谱估计的一个主要内容就是估计空间信号源的方向,即DOA(Direction of arrival)的估计.MUSIC是一种有效的 ...
- 阵列信号处理——LMS自适应波束形成算法
一.LMS自适应波束形成算法 最小均方算法(LMS)采用迭代模式,在每个迭代步骤n时刻的权向量加上一个校正量后,即组成n + 1时刻的权向量,用它逼近最佳权向量.LMS自适应波束形成算法如下表所示: ...
- MUSIC算法原理及MATLAB代码 阵列信号处理
MUSIC算法原理及MATLAB代码 阵列信号处理 MUSIC(multiple signal classification algorithm)算法是一种基于矩阵特征空间分解的方法.从几何角度讲,信 ...
- 阵列信号处理:线性预测算法推广--最大熵算法
阵列信号处理:线性预测算法推广–最大熵算法 最大熵算法是线性预测算法的推广,线性预测算法的方向函数如下: PLP(θ)=1∣aH(θ)W∣2P_{LP}(\theta)=\frac{1}{|a^H(\ ...
- 通用求根算法zeroin_Modern Robotics运动学数值解法及SVD算法(C matlab)
前言 原著之前CSDN已经注销,新CSDN Galaxy_Robot的博客_CSDN博客-机器人,C语言,我是谁?领域博主blog.csdn.net 这半个月的业余时间研究了机器人逆运动学的解析解法 ...
- C++False position求根的实现算法(附完整源码)
C++False position求根的实现算法 C++False position求根的实现算法完整源码(定义,实现,main函数测试) C++False position求根的实现算法完整源码(定 ...
- matlab加速迭代法方程求根,【源码】迭代法求根的matlab算法
[源码]迭代法求根的matlab算法 [源码]迭代法求根的matlab算法 本篇是在课程学习中自己编程实现的迭代法计算非线性方程或者超越方程近似根的算法,写一下,后边便于复习和期末课程设计引用. % ...
最新文章
- Python爬虫之旅_(数据解析)_正则
- Mybatis 动态sql语句(if标签和where标签)
- OpenCv:椭圆上点的计算方程
- WebService客户端开发(Axis2 1.5)
- 方幂序列 c+~+_C ++编程中的Trigraph序列
- Java反射 field
- web前端期末大作业--响应式汽车租赁网页设计--(HTML+CSS+JavaScript)实现
- 页面中动态画有超连接的图
- 在optenstack配置nova
- Sql*plus 联机文档学习
- 加了尾注怎么添加新页_怎么在文档的第一页加尾注
- 2021年全国职业院校技能大赛大数据应用技术国赛题
- IO_FILE 与高版本 glibc 中的漏洞利用技巧
- python菜鸟学习Day9(requests,套接字socket)
- SSLHandshakeException: No appropriate protocol
- 2021成都好久查询高考成绩,2021年成都各高中高考成绩排名及放榜最新消息
- 一文入门Go静态单赋值(SSA)
- 2021天津高考高中成绩查询系统,2021天津地区高考成绩排名查询,天津高考各高中成绩喜报榜单...
- 身份证号,手机号校验
- 曙光服务器制作raid文档,曙光服务器做RAID步骤