相位phei = 2*pi*f*d*sind(theta),因此理论上来讲测向的算法都可以用来测频。

ESPRIT:Estimating signal parameters viarotational invariance techniques,中文为旋转因子不变法。

ESPRIT用于测频:

%Example_esprit
clear all;clc;close all;
N=200; %signal length
m = N/2;
L=N-m;
s_amp=[1.31*exp(1i*pi/4),2.07*exp(1i*pi/3),1.88*exp(1i*pi/5)];
s_omega=[0.12*pi,0.37*pi,0.72*pi];
eps_sigma=0;
sigma=0.5;
x=zeros(1,N);%initialize
w = sqrt(sigma)*randn(1,N);
n = [1:N];
for slen=1:length(s_omega)
x = x+s_amp(slen)*exp(1j*s_omega(slen)*n) ;
end
x=x+w;
for n = 1:L
X(:,n) = x(n:(n+m-1));
end
for n = 1:L
Y(:,n) = x((n+1):(n+m));
end
%Rxx\Rxy
Rxx = 0;
for i = 1:L
Rxx = Rxx+X(:,i)*X(:,i)';
end
Rxx = Rxx/L;
Rxy = 0;
for i = 1:L
Rxy = Rxy+X(:,i)*Y(:,i)';
end
Rxy = Rxy/L;
[A,B] = eig(Rxx);
var = min(diag(B));
I = eye(m);
Z = diag(ones(1,m-1),-1);
Cxx = Rxx - I*var;
Cxy = Rxy - Z*var;
[~,B] = eig(Cxx,Cxy);
f=angle(diag(B));
[~,fpos]=sort(abs(abs(diag(B))-1));
f=f(fpos);
fval=f(f>0);
omega_est=sort(fval(1:length(s_amp)));
disp('结果对比:')
[omega_est,s_omega']

  

ESPRIT用于测向:

clear all
clf
set(0,'defaultaxesfontsize',22);
M=12;
Nb=32;
P=3;
%angles=[25 80 135]*(pi/180);
angdeg=[80 90 115];
angles=angdeg*(pi/180);
dlambda=0.5;
%generate random bits of information
poles=zeros(1,P);
X=zeros(M,Nb);
Rideal=zeros(M,M);
for k=1:P,
mu=pi*cos(angles(1,k));
poles(1,k)=exp(j*mu);
a=exp(j*mu*(0:M-1)).';
Rideal=Rideal+a*a';
br=ones(1,Nb);
temp=rand(1,Nb);
br(find(temp<.5))=-1;
bi=ones(1,Nb);
temp=rand(1,Nb);
bi(find(temp<.5))=-1;
b=br+j*bi;
X=X+a*b;
end
%add some noise
X=X+0.6*(randn(M,Nb)+j*randn(M,Nb));
Rxx=X*X'/Nb;
[E,D,V]=svd(Rxx);
%ESPRIT algorithm:
Es=E(:,1:P);
Es1=Es(1:M-1,:); Es2=Es(2:M,:);
Psi=Es1\Es2;
[T,Phi]=eig(Psi);
Phivec=diag(Phi);
%plot eigenvalues from ESPRIT and compare with true frequencies
polar(0,1,'.')
hold on
plot(real(poles),imag(poles),'kx','MarkerSize',12,'Linewidth',2);
plot(real(Phivec),imag(Phivec),'ro','MarkerSize',12,'Linewidth',2);
hold off
legend('True "poles"','ESPRIT eigenvalues')

  

DOA——ESPRIT算法的更多相关文章

  1. DOA——MUSIC算法

    一.均匀圆阵(UCA, Uniform Circular Array)的MUSIC算法 假设一个半径为R的M元均匀圆阵的所有阵元均位于坐标系X-Y平面内,第k-1个阵元坐标为,第i个窄带信号波长为,来 ...

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

    原创博文,转载请注明出处 下面的论文是我的雷达处理的作业,拿来共享,不喜勿喷.由于公式编辑器的原因,无法复制公式,全部内容请点击. 基于多重信号分类算法的DOA估计 1引言 多重信号分类(MUSIC) ...

  3. 宽带DOA估计方法

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

  4. 空间谱专题10:MUSIC算法

    作者:桂. 时间:2017-09-19  19:41:40 链接:http://www.cnblogs.com/xingshansi/p/7553746.html 前言 MUSIC(Multiple ...

  5. Cordic算法简介

    作者:桂. 时间:2017-08-14  19:22:26 链接:http://www.cnblogs.com/xingshansi/p/7359940.html 前言 CORDIC算法常用来求解信号 ...

  6. 个性化排序算法实践(三)——deepFM算法

    FM通过对于每一位特征的隐变量内积来提取特征组合,最后的结果也不错,虽然理论上FM可以对高阶特征组合进行建模,但实际上因为计算复杂度原因,一般都只用到了二阶特征组合.对于高阶特征组合来说,我们很自然想 ...

  7. B树——算法导论(25)

    B树 1. 简介 在之前我们学习了红黑树,今天再学习一种树--B树.它与红黑树有许多类似的地方,比如都是平衡搜索树,但它们在功能和结构上却有较大的差别. 从功能上看,B树是为磁盘或其他存储设备设计的, ...

  8. 分布式系列文章——Paxos算法原理与推导

    Paxos算法在分布式领域具有非常重要的地位.但是Paxos算法有两个比较明显的缺点:1.难以理解 2.工程实现更难. 网上有很多讲解Paxos算法的文章,但是质量参差不齐.看了很多关于Paxos的资 ...

  9. 【Machine Learning】KNN算法虹膜图片识别

    K-近邻算法虹膜图片识别实战 作者:白宁超 2017年1月3日18:26:33 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

随机推荐

  1. 如何在Linux中用命令行工具管理KVM虚拟环境

    第一步: 配置存储池 Virsh命令行工具是一款管理virsh客户域的用户界面,它能在命令行中运行所给的命令以及它的参数,我们要用它给我们的KVM环境创建存储池,想知道关于这个工具的更多信息,用以下这 ...

  2. Convert CString to ANSI string in UNICODE projects

    Convert CString to ANSI string in UNICODE projects Quick Answer: use an intermediate CStringA. Norma ...

  3. Python访问MongoDB数据库

    #encoding: utf-8 __author__ = 'Administrator' #import pymongo from pymongo import MongoClient,GEO2D ...

  4. c语言 多重排序

    经过了两天,终于会了. #include<stdio.h> #include<string.h> struct A { char name[100]; int gread; } ...

  5. ArcGIS放射状流向地图

    今年百度推出了一个百度迁徙,在其他人看是好像是还挺专业的,其实不复杂.下面是百度的迁徙图示例:从图中可以看出从一个城市到另一个城市迁徙的直线路径,多个路径可以反映城市是否为热点城市,即人口流动比较大. ...

  6. ZH奶酪:PHP中添加HTML代码的三种方法

    php中添加HTML代码,就是php类型的文件中添加html代码~ 第一种是在HTML中加PHP. 大段大段的html代码中,在各个需要执行php的地方<?php .... ?> 比如 l ...

  7. 解决Synergy的鼠标无法从服务器(server)机屏幕移动到客户机(client)屏幕的问题

    我在工作时使用一台Win 7笔记本和一台Ubuntu台式机,为了提升工作效率,我使用Synergy在两台机器间共享了笔记本的鼠标和键盘,即笔记本作为服务器,台式机作为客户机. 这样使用了大概一年多,但 ...

  8. eclipse 代码上传github 笔记

    第一步 先share project 如图所示  第二步 如果所示  第三步 点击 下面的create 然后点击完成  第四步提交  第五步: 第六步: 

  9. Hibernate日期映射类型

    映 射 类 型 Java类型 标准SQL类型 描    述 date java.util.Date或者java.sql.Date DATE 代表日期,形式为: YYYY-MM-DD time java ...

  10. 安装ubuntu后不能从ubuntu引导修复方法

    sudo fdisk -l sudo -i mkdir /media/tempdir mount /dev/sda7 /media/tempdir grub-install --root-direct ...