原创博文,转载请注明出处

下面的论文是我的雷达处理的作业,拿来共享,不喜勿喷。由于公式编辑器的原因,无法复制公式,全部内容请点击

基于多重信号分类算法的DOA估计

1引言

多重信号分类(MUSIC)算法是Schmit R O等人在 1979 年提出的。这一类算法的提出开创了空间谱估计算法研究的新时代,促进了特征结构类算法的兴起和发展,该算法已成为空间谱估计理论体系中的标志性算法。此算法提出之前的算法都是针对阵列接收数据协方差矩阵进行直接处理,而MUSIC算法的基本思想则是将任何阵列输出数据的协方差矩阵进行特征分解,从而得到与信号分量相对应的信号子空间和与信号分量相正交的噪声子空间,然后利用这两个子空间的正交性来估计信号参数(入射方向等)。它是建立在以下假设基础上的:

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

(2) 信号源数小于阵元的数目,以确保阵列流型矩阵的各个列线性独立;

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

(4) 空间信号为零均值平稳随机过程,信号与阵源噪声与相互独立;

(5) 信号源通常为窄带远场信号。正是由于 MUSIC 算法在特定的条件下具有很高的分辨力、估计精度及稳定性,从而吸引了大量的学者对其进行深入的研究和分析。

仿真结果

首先模拟四个方向的入射信号,分别是-12, -4, 4, 12 度,叠加噪声信号,然后进行MUSIC估计,得到如下图所示的结果,可以看出在横坐标 -12, -4, 4, 12 上得到相对应空间方位谱的尖峰。同时本仿真还设计了在不同的信噪比环境下对实验结果的影响,可以看出信噪比越高,其效果越好。

源代码:

clc;
clear;
M=;
d=;%阵元间距
lma=;%波长
N=;%采样频率
n=:N;
SNR=;%信噪比
angle=[- - ];
s1=cos(*pi*0.015*n);
s2=*cos(*pi*0.025*n);
s3=*cos(*pi*0.035*n);
s4=*cos(*pi*0.05*n);
s=[s1;s2;s3;s4];%*1000入射向量
z=:M-;
A=exp(-*pi*j*z'*sin(angle*pi/180)/lma);%8*4导引向量
S=(^(SNR/))*A*s;
noise=randn(M,N);
X=S+noise;
C=cov(X*X');%总输入信号的协方差矩阵
[D,h]=eig(C);%求特征向量和特征值
Vn=D(:,:);%与零特征值对应的特征向量
Q1=-;Q2=;
k=length(Q1:0.1:Q2);
for n=:k
a=[exp(-*pi*j*[:]*sin((Q1+(n-)*0.1)*pi/)/lma)]';
Pm(n)=/(a'*Vn*Vn'*a);
end
Pu=*log10(abs(Pm));
plot(Q1:0.1:Q2,abs(Pu));
xlabel('入射角(度)');ylabel('空间方位谱(dB)')
title('MUSIC');
legend('SNR=30')
grid on

基于多重信号分类算法的DOA估计的更多相关文章

  1. 宽带DOA估计方法

    Wideband DOA Estimation. 语音信号以及野外的车辆信号的声音都是宽带信号,所以传统的窄带DOA算法(MUSIC,ESPRIT等)都不适用.需要采用宽带DOA算法来计算目标信号的波 ...

  2. 异常检测-基于孤立森林算法Isolation-based Anomaly Detection-1-论文学习

    论文http://202.119.32.195/cache/10/03/cs.nju.edu.cn/da2d9bef3c4fd7d2d8c33947231d9708/tkdd11.pdf 1. INT ...

  3. QT:用QSet储存自定义结构体的问题——QSet和STL的set是有本质区别的,QSet是基于哈希算法的,要求提供自定义==和qHash函数

    前几天要用QSet作为储存一个自定义的结构体(就像下面这个程序一样),结果死活不成功... 后来还跑到论坛上问人了,丢脸丢大了... 事先说明:以下这个例子是错误的 #include <QtCo ...

  4. 基于令牌桶算法实现的SpringBoot分布式无锁限流插件

    本文档不会是最新的,最新的请看Github! 1.简介 基于令牌桶算法和漏桶算法实现的纳秒级分布式无锁限流插件,完美嵌入SpringBoot.SpringCloud应用,支持接口限流.方法限流.系统限 ...

  5. CompareTo 基于的排序算法

    CompareTo 基于的排序算法(高级排序) 这个是今天学习MapReduce时发现的,自定义类后实现了WritableComparable<>接口后实现了接口中的compareTo方法 ...

  6. 基于dsp_builder的算法在FPGA上的实现

    基于dsp_builder的算法在FPGA上的实现   一.摘要 结合dsp_builder.matlab.modelsim和quartus ii等软件完成算法的FPGA实现. 二.实验平台 硬件平台 ...

  7. 基于C-W节约算法的车辆路径规划问题的Java实现

    VRP问题概述 解决算法分类 项目描述 算法结果 车辆路线问题(VRP)最早是由Dantzig和Ramser于1959年首次提出,它是指一定数量的客户,各自有不同数量的货物需求,配送中心向客户提供货物 ...

  8. opencv基于PCA降维算法的人脸识别

    opencv基于PCA降维算法的人脸识别(att_faces) 一.数据提取与处理 # 导入所需模块 import matplotlib.pyplot as plt import numpy as n ...

  9. 推荐系统实践 0x06 基于邻域的算法(1)

    基于邻域的算法(1) 基于邻域的算法主要分为两类,一类是基于用户的协同过滤算法,另一类是基于物品的协同过滤算法.我们首先介绍基于用户的协同过滤算法. 基于用户的协同过滤算法(UserCF) 基于用户的 ...

随机推荐

  1. 详细解释 集成Maven Spring Mybatis项目包生成Bat文件

    有时在项目必须Maven项目包生成bat文件,长官一人.本文将解释的具体使用方法maven-assembly-plugin插件实现bat文件包. 1.首先看一下项目结构 2.配置pom.xml文件,在 ...

  2. MVC推荐教程和文章列表

    着手Getting Started Getting Started with ASP.NET MVC 5 (共11部分) Pluralsight ASP.NET MVC 5 Fundamentals( ...

  3. kobox : key_waitqueue.c -v1 如何内核线程,如何使用等待队列

    平台:TQ2440 按键驱动 (1)在init中创建一个内核线程作为等待队列的处理函数,该内核线程是一个while(1)死循环,一直检測等待队列的触发条件 DECLARE_WAIT_QUEUE_HEA ...

  4. 百度地图API详解之事件机制,function“闭包”解决for循环和监听器冲突的问题:

    原文:百度地图API详解之事件机制,function"闭包"解决for循环和监听器冲突的问题: 百度地图API详解之事件机制 2011年07月26日 星期二 下午 04:06 和D ...

  5. Java初认识--函数和数组

    一.函数 1.函数的定义 函数就是定义在类中的具有特定功能的一段独立小程序,函数也称为方法. java中最小的功能单元就是函数. 2.函数的格式 修饰符 返回值类型 函数名(参数类型 形式参数1,参数 ...

  6. c# 替换非法字符

    保存文件的时候,文件名不允许非法字符. public string ReplaceSpecialCharacter(string str)        {            List<ch ...

  7. BS导出csv文件的通用方法(.net)

    最近把以前项目里用的导出文件的功能提取成了dll,通过读取Attribute来得到要导出的表头(没有支持多语言),使用时只要组织好要导出的数据,调用方法就好了,希望对大家有用. 使用时只需引用下载包里 ...

  8. JavaScript语言基础知识11

    JavaScript字符的比较. 在接下来的学习内容的开始,我们先来看一下alert()此功能,它是一个消息框. OK,接下来正式介绍代码: <HTML> <HEAD> < ...

  9. selenium之多线程启动grid分布式测试框架封装(二)

    五.domain类创建 在domain包中创建类:RemoteLanchInfo.java 用来保存启动信息. package com.lingfeng.domain; public class Re ...

  10. Java之IO转换流

    直接上码:   读取键盘录入数据代码演示:   import java.io.IOException; import java.io.InputStream; /** *读取键盘录入的数据,并打印在控 ...