一个c语言程序能实现几种算法_C语言实现算法

一个c语言程序能实现几种算法_C语言实现算法E-mail:chengwenchi1986@gmail.com摘要:本文主要是对DOA(波达方向)估计中传统MUSIC算法及其改进算法作了简要的介绍,主要包括了MUSIC算法,求根MUSIC算法,循环MUSIC算法,波束空间MUSIC算法,SMARTMUSIC算法。并且在对每个算法做了原理性的分析的基础上给出了简要的性能分析。关键词:DOA估计;MUSIC算法;求根MUSIC算法;循环MUS…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

E-mail:chengwenchi1986@gmail.com

摘要:本文主要是对 DOA(波达方向)估计中传统 MUSIC

算法及其改进算法作了简要

的介绍,主要包括了MUSIC算法,求根MUSIC算法,循环MUSIC算法,波束空间MUSIC算法,SMART

MUSIC算法。并且在对每个算法做了原理性的分析的基础上给出了简要的性能分析。

关键词:DOA估计;MUSIC

算法;求根MUSIC算法;循环MUSIC算法

Abstract:The paper has a brief introduction on the traditional

MUSIC algorithm and the modified of the DOA estimation.It is mainly

about the extract MUSIC algorithm、circle MUSIC algorithm、beam

space MUSIC algorithm and SMART MUSIC algorithm.It also give some

brief behaviour analysis after analyzing each algorithm’s

principle.

Key words:DOA estimation; MUSIC algorithm; extract MUSIC

algorithm; circle MUSIC algorithm

1. 引言

波达方向(Direction Of

Arrival,DOA)技术,就是根据来波信号估计其方位角的信号处理技术.为了降低移动通信系统中的多址干扰、降低发射功率和提高系统容量,智能天线目前成为研究的热点.它引入了空分多址的概念,通过用户空间位置的差异对其进行分离.因此各用户的DOA作为反映用户空间位置的重要参量在智能天线中扮演着非常重要的角色。如何准确的估计各个用户DOA是非常值得研究的领域。

DOA估计的研究工作大约从20世纪60年代开始,在产生的多种算法中,尤其Schmidt的MUSIC(Multiple

Signal

Classification)法最为著名,这种方法获得了广泛的应用。虽然MUSIC算法有着非常优异的性能,然而其计算复杂度和对系统存储的巨大需求使得其在应用中遇到不少困难。于是在原来MUSIC的基础上又诞生了求根MUSIC算法、约束MUSIC算法、波束空间MUSIC算法等。

2 . 各算法分析及性能介绍

2.1 MUSIC算法之前的DOA估计算法

DOA估计的传统方法主要基于波束形成和零陷引导的概念,并没有利用到接受信号矢量的模型或者是信号和噪声的统计模型。阵列流形知道以后,传统的DOA估计方法就可以利用波束形成技术把波束调节到任意方向,寻找出输出功率的峰值。传统的DOA方法有延迟——相加法和Capon最小方差方法等。

2.2 MUSIC算法

2.2.1MUSIC算法原理:

MUSIC是多重信号分类(Multiple Signal

Classification)的英文缩写。它是由R.O.

Schmidt于1979年提出来的,由1986年重新发表的。MUSIC算法利用了信号子空间和噪声子空间的正交性,构造空间谱函数,通过谱峰搜索,检测信号的DOA。它是建立在以下假设基础上的:

1, 阵列形式为线性均匀阵,阵元间距不大于处理最高频率信号波长的二分之一;

2, 处理器的噪声为加性高斯分布,不同阵元间距噪声均为平稳随机过程,且相互独立,空间平稳(各阵元噪声方差相等);

3, 空间信号为零均值平稳随机过程,它与阵元噪声相互独立;

4, 信号源数小于阵列元数,信号取样数大于阵列元数。

在此假设基础上,MUSIC算法对波达方向DOA的估计理论上可以有任意高的分辨率。

MUSIC算法是一种基于特征结构的高分辨率DOA算法,这一类方法都是基于接受信号相关矩阵的以下两个特性:1,相关矩阵的特征向量张成的矢量空间可以分成两个部分,信号子空间和噪声子空间;2,不同方向信号源对应的阵列流形矢量与噪声子空间正交。由于噪声子空间与信号子空间正交,所以这些阵列流形矢量就包含在信号子空间中。(噪声子空间是由相关矩阵的小特征值对应的特征向量所张成,而信号子空间则由相关矩阵大特征值对应的特征向量所张成。

如图,M个天线阵元均匀直线排列,单元间距d为1/2个波长,布置成一个阵列天线。有P(P

, , … 。在第n次采样时刻,得到的数据向量为

其中, 是入射信号矢量; 是噪声矢量;A是阵列方向矢量矩阵,

MUSIC算法需要满足以下前提条件:

l M>d, 并且对应于不同的 的阵列方向矢量独立;

l , , (这些对于噪声的假定对MUSIC

算法来说至关重要);

l 矩阵 是非奇异的正定矩阵;

MUSIC算法假定输入信号与噪声互不相关,则输入信号的自相关矩阵为

其中, 是信号自相关矩阵。对 进行特征值分解,得到M个特征值

,并且满足 ,利用上式进行分解,得

显然, 的特征值是

。若入射信号互不相关,则矩阵A列满秩,并且信号相关矩阵也满秩。

由于矩阵A是满秩的,并且

也是非奇异的,所以当入射信号个数小于阵列天线的阵元个数时,矩阵

是半正定的,且秩为d.

根据线性代数的知识,矩阵 值 当中,有M-d个为零。由式 可知,

的特征值中有k=M-d个等于噪声的方差 。

关于特征值 的特征向量为 ,且满足:

对应于M-d个最小特征值的特征向量,有

由于矩阵A是满秩的,所以矩阵 也是非奇异的,即有

。上式表明,M-d个最小特征值对应的特征矢量与构成矩阵A的d个方向导引矢量正交,这就是MUSIC算法的核心思想。

为了寻找出噪声子空间,需要构建一个包含噪声特征矢量的矩阵:

因为对应于信号分量的方向导引矢量与噪声子空间特征矢量相互正交,多个入射信号的DOA估计值就可以通过确定MUSIC空间谱的峰值而做出估计,这些峰值由

给出。 和

的正交性使得分母达到最小值,从而得到上式定义的MUSIC谱的峰值。MUSIC谱中d个最大峰值对应于入射到阵列上的d个信号波达方向。

MUSIC算法的基本步骤:

1) 获得输入信号的采样值 ,k=0,…,K-1,估计输入信号的协方差矩阵:

2) 对 进行本征值分解:

其中,  , 为 的特征值,

为与这些特征值对应的特征矢量构成的矩阵。

3) 利用最小特征值 的重数K估计信号数目。

4) 计算MUSIC谱。

5) 找出 的 个最大峰值,得到波达方向的估计值。

2.2.2MUSIC算法性能分析:

MUSIC算法具有极高的空间分辨率,可以区分空间两个十分靠近的信号。和传统的DOA估计方法不同。MUSIC算法空间谱在估计信号功率时并没有考虑波达方向角。当精确知道阵列输入协方差矩阵的集平均时,在非相关的相同噪声环境下,可以确保

的峰值对应真实的信号波达方向角。由于这些峰值是可以区分的,与波达方向角的真实间隔无关,所以理论上将,只要阵列的校准足够准确,就可以达到极高的空间分辨率。但是,MUSIC算法也存在以下缺点:

1, 当入射信号高度相关时,信号的子相关矩阵就变为奇异了,此时MUSIC算法将会失效。

2, MUSIC算法里做了一个假设,就是到达信号的个数是已知的,但实际中达到的信号的个数确是未知的。通过研究特征值的分布方法来估计达到信号的个数是可能的,然而特征值的估计是依赖协方差矩阵的估计值。在SNR比较低时,使用估计的接受信号的数据少时,就很难判断了。

3,MUSIC算法有一个谱峰搜索的过程,而这个过程的计算量巨大。

2.3求根MUSIC算法:

2.3.1求根MUSIC算法原理

对于阵元间距为d的等距直线阵列,导引向量

的第m个元素可以表示为

则MUSIC谱函数可以写成:

其中

是矩阵C中第L条对角线的元素之和。

定义多项式:

研究MUSIC谱的特性也就可以通过研究多项式

来完成。在没有噪声的理想情况下,极点落在单位圆上,位置由波达方向决定,即

处产生MUSIC谱的一个波蜂,此时

2.3.2求根MUSIC算法性能分析:

MUSIC算法进行DOA估计时需要进行空间谱峰搜索,计算量巨大。当天线阵列是均匀线性阵列的时候,求根MUSIC算法具有极佳的性能和计算效率。

因为把计算量巨大的谱峰搜索转换为对多项式

的研究,大大节省了计算量,而且Barbell通过计算机仿真证明,求根MUSIC比MUSIC谱形式具有更佳的分辨率,特别是在低SNR的情况下。但是,由于该算法是建立在天线阵列是均匀线性阵列的基础上的,应用面比较窄。此算法对于均匀圆阵也适用。

2.4循环MUSIC算法:

2.4.1循环MUSIC算法原理:

研究一个有M个阵元的天线阵列,假设接受的d个信号在频率

处具有谱相干性,并且干扰信号在这个频率上没有相干性。这种情况在严重的共信道干扰环境中检测具有特性谱相关和多径分量的信号时经常会遇到。

令 ,i=0,1,…,d-1为目标信号,

为干扰和噪声矢量,则接受信号矢量可以表示为

因为目标信号为频率 具有谱相关性,接受信号的循环自相关矩阵

定义为

其中, 是目标信号的循环自相关矩阵,定义为

其中,符号“ ”表示 。

显然, 的秩为d,对于d

的零空间又对应于零特征值的特征矢量:

如果信号不完全相关,则

满秩,为d。由于A也是满秩矩阵,有上面的推导可知,

的零空间正交与目标信号的方向矢量,即

,i=0,1,…,

将上式作为正交性的量度,则循环MUSIC谱可以定义为

对于所有可能的

值进行谱峰搜索,就可以得到目标信号的DOA估计值。

2.4.2循环MUSIC算法性能分析:

循环MUSIC算法是利用接受信号的谱相干性和空间相干性的DOA估计方法。将谱的相干性和MUSIC算法结合起来,在相距很近的信号中只有一个期望信号并且信号的间隔小于阵列的分辨率时,也能够分辨出这个有用信号。而且,循环MUSIC算法不受入射信号个数要求的限制。

2.5波束空间MUSIC算法:

2.5.1波束空间MUSIC算法原理:

假设有D个窄带信号入射到一个由N个阵元构成的天线阵列上,同时,假定入射信号之间信号互不相关。入射信号表示为

,i=1,2,…,D

第i个信号的阵列方向矢量表示为 ,其中 是信号的入射角。

是一个N维的列矢量,每一个元素表示了天线阵元信号相对于参考阵元的相对位移,由信号的入射角度和天线阵元的空间位置共同决定。对于均匀线性直线阵列而言,有

其中,

和d分别是信号波长和阵元间距。定义信号矢量和阵列方向矩阵为

定义第k个阵元上接受信号为

,k=1,2,…,N。接受信号中除了入射信号以外还有信道、发射机、接收机等产生的噪声。定义阵列输入(接受)信号矢量为

考虑到窄带信号的假定,则输入信号矢量可以用矩阵形式表示为

其中, 是N维的噪声矢量,一般是均值为0、方差(功率)为

的复高斯随机工程,并且与各个入射信号统计独立。

在波束空间MUSIC算法中,阵列输出矢量

在进行MUSIC算法之前要通过一个波束形成器得到输出矢量

其中, 是

维的波束形成矩阵,包含着方向信息的矢量,可以产生若干个对准合适方向的波束。通过上面的变换将一个N维的阵元空间列矢量变换为M维的波束空间的列矢量。同时假定矩阵

是正交的,即满足 。

当 时,就是传统的信号空间MUSIC算法。

2.5.2波束空间MUSIC算法性能分析:

与阵元空间DOA算法相比,波束空间DOA算法具有许多优势:减少计算量,提高分辨率,减少由于系统误差造成的估计误差,减少估计偏差等。

由于波束空间MUSIC算法使用了波束形成器,波束数目少于天线阵元数目,因而算法处理的数据要比阵元空间MUSIC少,从而提高了算法的效率。

从阵列天线的自由度的角度看,一个天线阵列的自由度等于它的阵元数目减1,而在波束空间算法中,其自由度等于波束数目。因此,实际上波束空间算法降低了天线的自由度。一般而言,需要M+1个自由度就可以对M个信源的DOA进行估计。

2.6 SMART MUSIC算法:

2.6 .1SMART MUSIC算法原理:

考虑一个M元均匀线性天线阵列,阵元为全向天线,阵元间距d。有P(P

( ),入射角 ( )。空间噪声

为各态遍历高斯噪声,均值为0。假定入射信号为窄带信号,波长为

,则M维接受信号矢量可以表示为

其中 是阵列方向向量:

从向量 中抽出一个L维的子向量 ( ),有

当满足 时,

当满足 时,

可以证明,向量 的子向量的相关矩阵C满足 .

最后用

来估计DOA的值。

其中,  ,

2.6.2SMART MUSIC算法性能分析:

在众多的DOA估计算法中,采用前向、后向空间平滑技术的MUSIC算法被认为是性能出众的一种。然而由于该算法需要对于接受信号相关矩阵进行本征值分析和MUSIC本征谱估计,因而计算量巨大,在需要实时处理的领域应用困难。但是SMART

MUSIC算法在具有相同分辨率的情况下

计算量较小,比较容易应用于实践。

3.结论

本文从各种基于MUSIC算法的改进算法的原理入手,从理论角度分析了各算法的推导过程,并在每节最后给出了简要的性能分析。通过分析我们可以看到,在对普通环境下信号DOA估计时,与传统MUSIC算法相比较,其它改进的MUSIC算法估计出来的谱图有更高的谱峰,更容易区别出信号的DOA,从而更有利于信号的分辨。对于相干信号,传统MUSIC算法已经不能区分它们的DOA了,而一些改进的MUSIC算法则能有效地区分出它们的DOA。但是我们也应该看到,各种改进的MUSIC算法都有自己一定的局限性,在对于不同的情况下,我们应该酌情考虑,选择合适的DOA估计方法应用。

4.参考文献

[1] 高星辉

,华南师范大学,《修正MUSIC算法对信号DOA的估计》,

“中国优秀硕士学位论文全文数据库”

2002年

[2]

韩卫杰,西南交通大学,《改进MUSIC算法在DOA估计中的研究》,“中国优秀硕士学位论文全文数据库”

2006年

[3]金荣洪 耿军平范瑜

,《无线通信中的智能天线》,北京邮电大学出版社 2006年

[4] R. O .Schmidt,Multiple Emitter Location

and Signal Parameter Estimation, In Proc. RADC

Spectrum Estimation Workshop, Oct 1979,or IEEE. Trams, AP-34, No3, pp276-280, Mar, 1986

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/224130.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 汇编语言(1)- 计算机基础[通俗易懂]

    汇编语言(1)- 计算机基础[通俗易懂]一、机器语言机器语言是机器指令的集合,机器指令就是一台机器可以正确执行的命令。电子计算机的机器指令就是一列二进制数据,计算机将其转换为一列高低电平,使计算机的电子器件受到驱动,进行运算。二、汇编语言1.特点汇编语言的主体使汇编指令,汇编指令和机器指令的差别在于表示的方法上,汇编指令是便于记忆的书写格式例如:机器指令:1000100111011000表示把BX寄存器的内容发送到AX寄存器中汇编指令:movax,bx2.汇编语言的组成汇编指令:机器码的助记符,有对应的机器码伪指

  • lcd1602使用手册_lcd1602的rs,rw和e三个引脚的功能

    lcd1602使用手册_lcd1602的rs,rw和e三个引脚的功能1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。lcd1602引脚状态字的说明:RAM映射地址:控制接口的时序:1.读的时序2.写的时序3.时序的相关参数读状态:RS=L,R/W=H,EN=H读数据:RS=H,…

  • Emacs中的文件比较与合并工具–Ediff

    Emacs中的文件比较与合并工具–Ediff

  • Rsync详解_反向ssh

    Rsync详解_反向sshRsync介绍一、什么是rsyncrsync是一款开源,快速,多功能的可实现增量的本地或远程的数据镜像同步备份的优秀工具。适用于多个平台。从软件名称可以看出来是远程同步的意思(remotesync)。可使本地主机不同分区或目录之间及本地和远程两台主机之间的数据快速同步镜像,远程备份等功能。  在同步备份时,默认情况下,rsync通过其独特的“quickcheck”算法,仅同步大小…

    2022年10月13日
  • 【全流程】从头在树莓派4B上部署自己训练的yolov5模型(配合NCS2加速)

    【全流程】从头在树莓派4B上部署自己训练的yolov5模型(配合NCS2加速)目录0.前言1.我的环境2.整个流程3.具体过程3.1训练自己的yolov5模型3.2将.pt模型转换为.onnx模型3.3在本地将.onnx转换成IR模型3.4在树莓派4B上使用IR模型推理4.一些坑4.1树莓派4B上安装pytorch4.2安装好了pytorch没法用4.3模型转换失败4.4转换好的模型推测出的结果和原模型相差较大5.总结0.前言最近这一个月基本没写过博客,因为一直在树莓派4B上部署yolov5的模型,已经数不清楚踩了多少坑了,来来回回折腾了一个月,终于完成了。于

  • redis源码 -ziplist

    注释的翻译:/*Theziplistisaspeciallyencodedduallylinkedlistthatisdesigned*tobeverymemoryefficient.Itstoresbothstringsandintegervalues,*whereintegersareencodedasactualint

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号