波束形成(最大信噪比准则、LCMV、MSC、LMS、RLS)

article/2025/8/22 3:24:02

波束形成(最大信噪比准则、LCMV、MSC、LMS、RLS)

波束形成的基本概念

在这里插入图片描述
# 波束形成准则
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

分别对上面所阐述的最大信噪比准则,旁瓣对消器,线性最小均方误差,以及自适应LMS和RLS算法进行仿真。
最大信噪比准则:仿真中阵列有10个阵元,阵元间隔为0.5倍波长,信号的入射角为20度,得到的仿真结果的方向图如图1所示。
LCMV:仿真中阵列有8个阵元,阵元间隔为0.5倍波长,信号入射角为0度,干扰入射角为-30和30,得到的仿真结果的方向图如图2所示。
MSC:仿真中阵列有8个阵元,阵元间隔为0.5倍波长,信号入射角为0度,干扰入射角为-40和40,得到的仿真结果的方向图如图3所示。
LMS:仿真中阵列有8个阵元,阵元间隔为0.5倍波长,信号入射角为0度,干扰入射角为-30和30,得到的仿真结果的方向图如图4所示。
RLS:仿真中阵列有8个阵元,阵元间隔为0.5倍波长,信号入射角为0度,干扰入射角为-30和30,得到的仿真结果的方向图如图5所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

附程序
%lcmv
clear all;
J=8;%传感器的个数
j=sqrt(-1);
r=1/2;%避免空间采样重叠设置传感器间隔与波长的比值为0.5
sita=-90:0.5:90;%设置角度范围
sita1=0;%设置信号入射角
sita2=[-30 30];%设置干扰入射角
N=500;%设置采样点数
s=exp(j2pi*(16000*[0:1:N-1]/200)) ;%构造有用信号(正弦信号)
noise=(randn(J,N)+jrandn(J,N))/sqrt(2);%噪声分量
a1=sqrt(10)exp(-jpi
[0:J-1]‘sin(sita1/180pi));
a2=sqrt(10)exp(-jpi*[0:J-1]‘sin(sita2/180pi));
xi=(randn(2,N)+jrandn(2,N))/sqrt(2);%干扰
X=a1
s+a2xi+noise;%含噪声的接收到的信号
Rx=X
X’/N;
C=a1;
%F=1;
w=inv(Rx)Cinv(C’inv(Rx)C);
for n=1:length(sita)
a=exp(-j
2
pirsin(sita(n)pi/180)[0:J-1]’);%导向矢量
p(n)=w’a;%天线方向图
end
P=20
log10(abs§/max(abs(abs§)));%换算成dB
plot(sita,P);
grid on;
xlabel(‘sita/度’);
ylabel(‘P / dB’);
title(‘lcmv方向图’);

lms程序:
clc;
J=8;%传感器的个数
j=sqrt(-1);
r=1/2;%避免空间采样重叠设置传感器间隔与波长的比值为0.5
sita=-90:0.5:90;%设置角度范围
sita1=0;%设置信号入射角
sita2=[-30 30];%设置干扰入射角
N=500;%设置采样点数
s=exp(j2pi*(16000*[0:1:N-1]/200)) ;%有用信号(正弦信号)
noise=(randn(J,N)+jrandn(J,N))/sqrt(2);%噪声
a1=sqrt(10)exp(-jpi
[0:J-1]'sin(sita1/180pi));
a2=sqrt(10)exp(-jpi*[0:J-1]'sin(sita2/180pi));
xi=(randn(2,N)+jrandn(2,N))/sqrt(2);%干扰
X=a1
s+a2xi+noise;%含噪声的接收到的信号
xs=a1
s;
yd=xs(1,:);%期望信号
mu=0.005;%迭代步长
w=zeros(J,1);%w初始状态
for k =1:N
y(k)=w’X(:,k);
e(k)=yd(k)-y(k);%公式
w=w+mu
X(:,k)*conj(e(k));%公式
end

for n=1:length(sita)
a=exp(-j2pirsin(sita(n)pi/180)[0:J-1]’);%导向矢量
p(n)=w’a;%天线方向图
end
P=20
log10(abs§/max(abs(abs§)));%换算成dB
plot(sita,P);
grid on;
xlabel(‘sita/度’);
ylabel(‘P / dB’);
title(‘lms方向图’);

maxsnr程序:
clc;
J=10;%传感器的个数
j=sqrt(-1);
r=1/2;%避免空间采样重叠设置传感器间隔与波长的比值为0.5
sita=[-90:0.5:90];%设置角度范围
sita1=20;%设置信号入射角
sita2=[-40 40];%设置干扰入射角
N=500;%设置采样点数
s=exp(j2pi*(16000*[0:1:N-1]/200)) ;%有用信号(正弦信号)
noise=(randn(J,N)+jrandn(J,N))/sqrt(2);%噪声
a1=sqrt(10)exp(-jpi
[0:J-1]‘sin(sita1/180pi));
% a2=sqrt(10)exp(-jpi*[0:J-1]‘sin(sita2/180pi));
% xi=(randn(2,N)+jrandn(2,N))/sqrt(2);%干扰
% X=a1
s+a2xi+noise;%含噪声的接收到的信号
xs=a1;
Rs=xs
xs’/N;%信号的自相关矩阵
Rn=noisenoise’/N;%噪声的自相关矩阵
[V,D] = eig(Rs,Rn);%求(Rs,Rn)的广义特征值构成的对角阵D和特征向量构成的矩阵V
[D,ind] = sort(diag(D));%取出D的对角线元素并按照从小到大次序排列,ind为原矩阵D的变动索引
w=V(:,ind(10));%最优权值w为(Rs,Rn)的最大广义特征值所对应的特征向量
for n=1:length(sita)
a=exp(-j
2pir*sin(sita(n)pi/180)[0:J-1]’);%导向矢量
p(n)=w’a;%天线方向图
end
P=20
log10(abs§/max(abs§));%换算成dB
plot(sita,P);
grid on;
xlabel(‘sita/度’);
ylabel(‘P / dB’);
title(‘最大信噪比方向图’);

msc程序:
clc;
J=8;%传感器的个数
j=sqrt(-1);
r=1/2;%避免空间采样重叠设置传感器间隔与波长的比值为0.5
sita=-90:0.2:90;%设置角度范围
sita1=0;%设置信号入射角
sita2=[-40 40];%设置干扰入射角
N=500;%设置采样点数
s=exp(j2pi*(16000*[0:1:N-1]/200)) ;%有用信号(正弦信号)
noise1=(randn(J,N)+jrandn(J,N))/sqrt(2);%辅助信道噪声
noise2=(randn(1,N)+j
randn(1,N))/sqrt(2);%主信道噪声
a1=sqrt(10)exp(-jpi*[0:J-1]'sin(sita1/180pi));%角sita1上的阵列响应矢量
a2=sqrt(10)exp(-jpi*[0:J-1]'sin(sita2/180pi));%角sita2上的阵列响应矢量
xi=(randn(2,N)+jrandn(2,N))/sqrt(2);%辅助信道干扰
xii=(randn(1,N)+j
randn(1,N))/sqrt(2);%主信道干扰
Xa=a1s+a2xi+noise1;%辅助信道信号
Xmc=(100s+xii+noise2).’;%主信道信号
% xs=a1
s;
% yd=xs(1,:);%期望信号
Ra=XaXa’/N;%Xa自相关矩阵
Rma=Xa
(conj(Xmc))/N;%Xa和Xmc的互相关矩阵
w=inv(Ra)Rma;
for n=1:length(sita)
a=exp(-j
2pirsin(sita(n)pi/180)[0:J-1]’);%导向矢量
p(n)=w’a;%天线方向图
end
P=20
log10(abs§/max(abs§));%换算成dB
plot(sita,P);
grid on;
xlabel(‘sita/度’);
ylabel(‘P / dB’);
title(‘MSC方向图’);
RLS程序:
clc;
J=8;%传感器的个数
j=sqrt(-1);
r=1/2;%避免空间采样重叠设置传感器间隔与波长的比值为0.5
sita=-90:0.5:90;%设置角度范围
sita1=0;%设置信号入射角
sita2=[-40 40];%设置干扰入射角
N=500;%设置采样点数
s=exp(j
2pi(16000*[0:1:N-1]/200)) ;%有用信号(正弦信号)
noise=(randn(J,N)+jrandn(J,N))/sqrt(2);%噪声
a1=sqrt(10)exp(-jpi
[0:J-1]'sin(sita1/180pi));
a2=sqrt(10)exp(-jpi*[0:J-1]'sin(sita2/180pi));
xi=(randn(2,N)+jrandn(2,N))/sqrt(2);%干扰
X=a1
s+a2xi+noise;%含噪声的接收到的信号
xs=a1
s;
yd=xs(1,:);%期望信号
I=eye(J);
p=0.3I;
lam=1;
w=zeros(J,1);%w初始状态
%RLS算法过程
for k =2:N
L=p
X(:,k)/(lam+X(:,k)‘pX(:,k));
e(k)=yd(k)-w’X(:,k);
w=w+L
conj(e(k));
p=(p-LX(:,k)'p)/lam;
end
for n=1:length(sita)
a=exp(-j
2
pirsin(sita(n)pi/180)[0:J-1]’);%导向矢量
pp(n)=w’a;%天线方向图
end
P=20
log10(abs(pp)/max(abs(abs(pp))));%换算成dB
plot(sita,P);
grid on;
xlabel(‘sita/度’);
ylabel(‘P / dB’);
title(‘rls方向图’);


http://chatgpt.dhexx.cn/article/IyqNQT3Y.shtml

相关文章

语音领域的波束形成Beamforming小结

关注、点赞、收藏是对我最大的支持,谢谢^v^ 目录 1. 背景介绍 2. 多通道信号的公式描述 3. 传统波束形成(delay-and-sum和filter-and-sum) 4. MVDR 4.1 传统MVDR 4.2 融入深度学习的MVDR 5. GEV(Generalized eigenvalue) beamformer …

空间谱专题02:波束形成(Beamforming)

作者:桂。 时间:2017-08-22 10:56:45 链接:http://www.cnblogs.com/xingshansi/p/7410846.html 前言 本文主要记录常见的波束形成问题,可以说空间谱估计是波束形成基础上发展而来,在系统论述空间谱之前,有…

UE4 插件 简单全景播放器

UE4 插件 1分钟完成全景展示项目(Simple panorama player and video player) 全景图、全景视频播放器,附带列表和热点模板。另附带一个视频播放器。全景播放器可以使用本地资源或Web URL。 完全由蓝图实现,易于扩展和修改。 具有…

Android VR Player(全景视频播放器) [10]: VR全景视频渲染播放的实现(exoplayer,glsurfaceview,opengl es)

前言 此博客的大部分内容来自我的毕业设计论文,因此语言上会偏正式一点,如果您有任何问题或建议,欢迎留言。在此感谢实验室的聂师兄,全景视频render部分的代码设计主要参考了他所编写的代码来完成,他对视频渲染过程的…

VR+全景播放器+头控讲解-07

VR全景播放器头控讲解-01-知识储备VR全景播放器头控讲解-02-创建球体VR全景播放器头控讲解-03-渲染视频VR全景播放器头控讲解-04-滑动手势VR全景播放器头控讲解-05-伸缩画面VR全景播放器头控讲解-06-头控实现VR全景播放器头控讲解-07-分屏技术 学习目标 如何实现分屏 实现思路 …

[OpenGL]从零开始写一个Android平台下的全景视频播放器——目录

Github项目地址 为了方便没有准备好梯子的同学,我把项目在CSDN上打包下载,不过不会继续更新(保留在初始版本) 先放一张效果图: Youtube 优酷 前言 Android平台下的全景视频(360,Panoram…

VR+全景播放器+头控讲解-06

VR全景播放器头控讲解-01-知识储备VR全景播放器头控讲解-02-创建球体VR全景播放器头控讲解-03-渲染视频VR全景播放器头控讲解-04-滑动手势VR全景播放器头控讲解-05-伸缩画面VR全景播放器头控讲解-06-头控实现VR全景播放器头控讲解-07-分屏技术 学习目标 掌握头控部分布局 如何检…

mxreality.js 免费开源的全景图/全景视频/VR 直播播放器介绍

[2018-10-20 重要更新]支持VR直播功能支持全景视频poster支持全景图和视频和场景之间随意切换全景模式切换回默认主视角播放列表 优点: 1、全景图支持全景模式和VR模式 2、支持网页端全景图补天功能,有效去除顶部和底部拼接留下的痕迹、做出真正完美的…

Unity3D制作极简版VR全景视频播放器

自从Unity5.6.4还是2017的版本开始,官方提供了兼容移动端和Windows端的视频播放器控件——Video Player,下面介绍如何使用这个控件,制作VR播放器。 1、新建空白场景,新建球体Sphere,Camera放置球心位置; …

基于threejs,完成一个简单的全景图播放器

直接上代码 CameraControls.js相机控制器 import * as THREE from three;function CameraControls(object, domElement, cb, update) {this.object object;this.domElement domElement ! undefined ? domElement : document;this.enabled true;this.lookSpeed 0.1;this.…

使用SceneKit编写VR全景播放器

最近用SceneKit做了全景看房的功能,现总结下如何实现的。 先看下最终的效果: gif1.gif VR图片全景播放器有以下功能: 360度手势滑动,缩放陀螺仪分屏(VR眼镜)热点hotpot头控/eyepick 手势滑动,缩放&#…

AVProVideo☀️五、播放全景视频

🎊 商务合作:https://skode.cn/file/businesscard/wechat.jpg 🎥 本文由 星河造梦坊公司官方 原创! 🏅 如果你有技术问题或项目开发,都可以加上方的联系方式,和我聊一聊你的故事🧡 文章目录 🟥 360球形全景视频🟧 360立方体全景视频🟨 360天空盒全景视频🟩…

[OpenGL]从零开始写一个Android平台下的全景视频播放器——3.1 全景视频是如何实现的

Github项目地址 为了方便没有准备好梯子的同学,我把项目在CSDN上打包下载,不过更新会慢一些 回到目录 恭喜Martin同学获得由CSDN颁发的“更新慢慢慢”荣誉称号 全景视频有很多种类,例如Sphere全景,Skybox(Cubemap&…

VR全景播放器 AvPro Video

最近项目需要,使用Unity开发VR全景播放器,包括PC端和VR一体机端(Android)。Unity5.6开始支持VideoPlayer,使用自带的VideoPlayer,很顺利把播放器完成了,使用了很长时间,一直没什么性…

FFmpeg 开发(07):FFmpeg + OpenGLES 实现 3D 全景播放器

该文章首发于微信公众号:字节流动 FFmpeg 开发系列连载: FFmpeg 开发(01):FFmpeg 编译和集成 FFmpeg 开发(02):FFmpeg + ANativeWindow 实现视频解码播放 FFmpeg 开发(03):FFmpeg + OpenSLES 实现音频解码播放 FFmpeg 开发(04):FFmpeg + OpenGLES 实现音频可视化播放 FFm…

html全景直播播放器,Insta360 Player(全景视频播放器) V2.3.6 官方版

Insta360 Player是一款性能强劲且专业的全景视频播放器,它支持播放Insta360全景相机拍摄的全景视频和图片,并且支持本地视频的播放,操作非常的简单,有需要的用户可以下载来使用,此软件支持播放 Insta360全景相机产生的…

全景播放器,免安装支持全景视频

全景图片播放器,同时支持全景视频,可直接拖入页面查看。免安装全景播放器,文件不要大于20M Hpano 3D全景播放器是一款免安装可以720度互动浏览的全景图片查看器,通过拖球形全景图片或视频文件进行预览,720度的全方位图片查看器让你…

android 简单的exoplayer全景播放器

全景播放器网上一搜也是一堆一堆的,还有google推出的vrsdk,所以也没啥好说的,就简单记录一下 实现全景主要用到的还是opengles,只要用的开源播放器有setSurface(Surface surface)这个函数,就可以不改播放器源码实现 …

全景播放器

在github上发现的,绿色免安装,完全免费,只有一个界面三个按键,超级简单。里面带来几个全景视频和图片的demo,想体验全景的可以直接打开看看。想换片的时候按键盘的空格键既可以返回主界面。视角查看用鼠标左键点击拖动…

OpenGL ES_手把手教你打造VR全景播放器

OpenGL ES _ 入门_01OpenGL ES _ 入门_02OpenGL ES _ 入门_03OpenGL ES _ 入门_04OpenGL ES _ 入门_05OpenGL ES _ 入门练习_01OpenGL ES _ 入门练习_02OpenGL ES _ 入门练习_03OpenGL ES _ 入门练习_04OpenGL ES _ 入门练习_05OpenGL ES _ 入门练习_06OpenGL ES _ 着色器 _ 介…