空间谱专题02:波束形成(Beamforming)
作者:桂。
时间:2017-08-22 10:56:45
链接:http://www.cnblogs.com/xingshansi/p/7410846.html
前言
本文主要记录常见的波束形成问题,可以说空间谱估计是波束形成基础上发展而来,在系统论述空间谱之前,有必要分析一些Beamforming的基本特性。
一、波束形成模型
以均匀线阵为例:
按窄带模型分析:
可以写成矩阵形式:
其中为方向矢量或导向矢量(Steering Vector),波束形成主要是针对各个接收信号X进行权重相加。
二、波束形成基本理论
A-波束形成
权重相加:
不同的波束形成,就是不同的权重W。
B-瑞利限
以均匀直角窗为例:
得出方向图:
主瓣宽度正比于孔径宽度的倒数:
因为孔径的限制,造成波束宽度存在限制(不会无限制小),近而落在主瓣波束内部的两个信号便会混在一起而分不清,这就存在瑞利限的问题。
直角窗主瓣宽度为:
其中λ为入射波长,theta1为入射角,Md为阵列孔径。
C-常见窗函数
对于空间不同的阵列信号,类似采样分析(空域采样),自然可以加窗进行处理,不加窗可以认为是直角窗,另外也可以选择汉明窗、hanning窗等等。
加窗可以改变波束宽度以及主瓣、副瓣等特性,可以借助MATLAB 的wvtool观察不同窗函数特性。
- N = 192;
- w = window(@blackmanharris,N);
- wvtool(w)
D-DFT实现
阵列的采样间隔是相位信息:
这就类似于频域变换,只不过这里的相位信息:对应的不是频率,而是不同位置,可以看作空域的变换。
分别对阵列信号进行直接加权、加窗、DFT实现:
- function x = StatSigGenerate(M,N,DOA,SNR,SignalMode,lambda,d)
- ld = length(DOA);
- if strcmp(SignalMode,'Independent')
- st = randn(ld,N)+1j*randn(ld,N);
- elseif strcmp(SignalMode,'Coherent')
- st = [];
- st1 = randn(1,N)+1j*randn(1,N);
- for k = 1:ld
- st = [st;st1];
- end
- end
- st = st/sqrt(trace(st*st'/N)/ld);
- nt = randn(M,N)+1j*randn(M,N);
- nt = nt/sqrt(trace(nt*nt'/N)/M);
- SNR = ones(1,ld)*SNR;
- Amp = diag(10.^(SNR/20));
- A = exp(1j*2*pi*[0:M-1]'*sind(DOA)*d/lambda);
- x = A*Amp*st+nt;
- end
主程序:
- clc;clear all;close all
- M = 32;
- DOA = [-30 30];
- SNR = 10;
- theta = -90:.1:90;
- len = length(theta);
- SignalMode = 'Independent';
- fc = 1e9;
- c = 3e8;
- lambda = c/fc;
- d = lambda/2;
- N = 100;%snap points
- x = StatSigGenerate(M,N,DOA,SNR,SignalMode,lambda,d);
- R_hat = 1/N*x*x';
- output = zeros(3,len);
- for i = 1:len
- a = exp(1j*2*pi*[0:M-1]'*sind(theta(i))*d/lambda);
- W = (inv(R_hat)*a)*(1./(a'*inv(R_hat)*a));
- output(1,i) = mean(abs(W'*x),2);
- output(2,i) = 1./(a'*inv(R_hat)*a);
- output(3,i) = a'*x*ones(N,1);
- end
- output = abs(output);
- output = output - repmat(mean(output.')',1,size(output,2));
- output = output./repmat(max(output.')',1,size(output,2));
- %plot
- plot(theta,output(1,:),'k',theta,output(2,:),'r--',theta,output(3,:),'b');
- legend('MVDR 波束','MVDR 谱','固定权重 波束');
对应结果图:
E-自适应波束形成
直接相加也好、加窗也好,都是固定的权重系数,没有考虑到信号本身的特性,所以如果结合信号本身去考虑就形成了一系列算法:自适应波束形成。
这类步骤通常是:
1)给定准则函数;
2)对准则函数进行求解。
准则常用的有:信噪比(snr)最大准则、均方误差最小准则(MSE)、线性约束最小方差准则(LCMV)、最大似然准则(ML)等等;
求解的思路大体分两类:1)直接求解,例如MVDR中的求解;2)也可以利用梯度下降的思想,如随机梯度下降、批量梯度下降、Newton-raphson等方法,不再详细说明。
以MVDR举例:
这里采用直接求解的思路:
将求解的W带入
即可得到波束形成。
F-栅瓣现象
栅瓣是一类现象,对应干涉仪就是相位模糊(相位超过2*pi),对应到Beamforming就是栅瓣问题,具体不再论述,给出现象(同样的波束,在不同的位置分别出现):
G-波束形成与空间谱
之前分析过MVDR的方法,得到的输出(含有约束的最小均方误差准则)为:
有时候也称这个输出为空间谱,其实就是|y2(t)|,但这个与MUSIC等算法的谱还不是一回事,只是有时候也被称作空间谱,所以这里多啰嗦几句,分析这个说法的来源。
已知N个采样点的信号,对其进行傅里叶变换:
进一步得到功率谱密度:
根据上文的分析:y(t)其实对应的就是空域变换(可借助DFT实现),类比于时频处理中的频域变换。而这里又可以看到频域变换的平方/长度,对应就是功率谱,这是频域的分析。
对应到空域,自然就是|y2(t)|/长度,对应空间谱,长度只影响比例关系,所以MVDR的最小方差输出被称作:空间谱也是合适的。
给出一个测试(这里如果),对比MVDR的y(t)、MVDR功率谱以及普通Beamforming的结果:
- clc;clear all;close all
- M = 32;
- DOA = [-30 30];
- SNR = 10;
- theta = -90:.1:90;
- len = length(theta);
- SignalMode = 'Independent';
- fc = 1e9;
- c = 3e8;
- lambda = c/fc;
- d = lambda/2;
- N = 100;%snap points
- x = StatSigGenerate(M,N,DOA,SNR,SignalMode,lambda,d);
- R_hat = 1/N*x*x';
- output = zeros(3,len);
- for i = 1:len
- a = exp(1j*2*pi*[0:M-1]'*sind(theta(i))*d/lambda);
- W = (inv(R_hat)*a)*(1./(a'*inv(R_hat)*a));
- output(1,i) = mean(abs(W'*x),2);
- output(2,i) = 1./(a'*inv(R_hat)*a);
- output(3,i) = a'*x*ones(N,1);
- end
- output = abs(output);
- output = output - repmat(mean(output.')',1,size(output,2));
- output = output./repmat(max(output.')',1,size(output,2));
- %plot
- plot(theta,output(1,:),'k',theta,output(2,:),'r--',theta,output(3,:),'b');
- legend('MVDR 波束','MVDR 谱','固定权重 波束');
对应结果:
如果将d = lambda/2;改为d = lambda/0.5;,自然就有了栅瓣:
空间谱专题02:波束形成(Beamforming)的更多相关文章
- 空间谱专题10:MUSIC算法
作者:桂. 时间:2017-09-19 19:41:40 链接:http://www.cnblogs.com/xingshansi/p/7553746.html 前言 MUSIC(Multiple ...
- 空间谱专题13:联合解算DOA(ML/AP)
其中作者:桂. 时间:2017-10-16 07:51:40 链接:http://www.cnblogs.com/xingshansi/p/7675380.html 前言 主要记录二维测向中,分别利 ...
- OI养老专题02:约瑟夫问题求幸存者
如题.人数为n(1<=n<=30000),共k(1<=k<=30000)组数据,所报的数m恒为2,只要求输出幸存者. 如果你还不知道什么是约瑟夫问题...——https://w ...
- Oracle 11g安装,新建表空间和用户
windows版: 官网下载,两个压缩包,总共2G,解压到同一个文件夹下,setup.exe双击执行,首次安装的话,一直下一步就可以了,最后一步可能时间比较长,等着就好了,一般性能的机器大概要半小时左 ...
- 使用R进行空间自相关检验
「全局溢出」当一个区域的特征变化影响到所有区域的结果时,就会产生全局溢出效应.这甚至适用于区域本身,因为影响可以传递到邻居并返回到自己的区域(反馈).具体来说,全球溢出效应影响到邻居.邻居到邻居.邻居 ...
- Analysis of Two-Channel Generalized Sidelobe Canceller (GSC) With Post-Filtering
作者:凌逆战 地址:https://www.cnblogs.com/LXP-Never/p/12071748.html 题目:带后置滤波的双通道广义旁瓣相消器(GSC)的分析 作者:Israel Co ...
- 大型网站seo优化之行业网站seo优化具体操作思路
第一部分:站内优化 第二部分:站外优化 第三部分:内容建设 第四部分:网站完善 一.站内优化 1.站内结构优化 2.内链策略 3.站内细节优化 4.网站地图设置 5.关键词竞争度分析 5.关键词部 ...
- DOA——MUSIC算法
一.均匀圆阵(UCA, Uniform Circular Array)的MUSIC算法 假设一个半径为R的M元均匀圆阵的所有阵元均位于坐标系X-Y平面内,第k-1个阵元坐标为,第i个窄带信号波长为,来 ...
- BCB:如何在BCB中使用CodeGuard
www.educity.cn 发布者:xjxyj2006 来源:网络转载 发布日期:2013年12月13日 文章评论 发表文章 一. 为什么写这篇东西 自己在使用 BCB5 写一些程序时需要检查很多东 ...
随机推荐
- asp.net core2.0大白话带你入门
本系列包括: 1.新建asp.net core项目2.web项目目录解读3.配置访问地址4.环境变量详解5.配置文件6.日志7.DI容器8.服务的生命周期9.session的使用10.cookie的使 ...
- HDU3306 Another kind of Fibonacci 矩阵
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - HDU3306 题意概括 A0=1,A1=1,AN=X*AN-1+Y*AN-2(N>=2).求SN,SN ...
- 6-1 平衡的括号 uva673
简单栈题 #include<bits/stdc++.h> using namespace std; int main() { int cas;cin>>cas;getchar( ...
- Codeblocks 常用快捷键
编辑部分: Ctrl + A:全选Ctrl + C:复制Ctrl + X: 剪切Ctrl + V:粘贴Ctrl + Z:撤销Ctrl + S:保存Ctrl + Y / Ctrl + Shift + Z ...
- HDU 1348 Wall 【凸包】
<题目链接> 题目大意: 给出二维坐标轴上 n 个点,这 n 个点构成了一个城堡,国王想建一堵墙,城墙与城堡之间的距离总不小于一个数 L ,求城墙的最小长度,答案四舍五入. 解题分析: 求 ...
- linux学习之使用fdisk命令进行磁盘分区(八)
linux下使用fdisk命令进行磁盘分区 目录 分区类型 分区方法表示 文件系统 fdisk命令分区过程 分区类型 主分区:总共最多只能分四个 扩展分区:只能有一个,也算作主分区的一种,也就是说主分 ...
- 线程安全地获取插入mysql的条目的id
在往mysql中插入条目时有时会希望能得到该插入条目的id,一种方式是再执行一个select语句条件为max(id)来获取,但这种形式在并发环境里并不是线程安全的,因为在你完成插入到再执行一个sele ...
- Java并发程序设计(七)乐天派:无锁
无锁 一.概述 无锁是处理并发的一种乐观策略,它会假设对资源的访问是没有冲突的.既然没有冲突自然不需要等待,所以所有的线程都可以在不停顿的状态下执行.那遇到冲突怎么办?接下来请看,无锁绝招“CAS”即 ...
- Flask的使用
一.路由系统 1.子域名的配置 """ 可传入的参数: @app.route('/user/<username>') @app.route('/post/&l ...
- 429. N叉树的层序遍历
429. N叉树的层序遍历 题意 给定一个 N 叉树,返回其节点值的层序遍历. (即从左到右,逐层遍历). 解题思路 和二叉树的层次遍历的思想一样: 实现 class Solution(object) ...