【信号频率估计】MVDR算法及MATLAB仿真

目录

  • 一、MVDR算法
    • 1.1 简介
    • 1.2 原理
    • 1.3 特点
      • 1.3.1 优点
      • 1.3.2 缺点
  • 二、算法应用实例
    • 2.1 信号的频率估计
    • 2.2 MATLAB仿真代码
  • 三、参考文献

一、MVDR算法

1.1 简介

最小方差无失真响应(Mininum Variance Distortionless Response,MVDR)算法最早是J. Capon于1969年提出,用于多维地震阵列传感器的频率-波数分析。随后,Lacoss在1971年将其引入到一维时间序列的分析中。
MVDR算法由于是Capon提出的,所以也将其称为Capon算法。

1.2 原理

根据数字波束形成的原理,得到输入信号 x ( n ) x(n) x(n) 经空域滤波后的输出为:
y ( n ) = w H x ( n ) = w H a ( θ ) s ( n ) ( 1 − 1 ) y(n)=w^{H}x(n)=w^{H}a(θ)s(n) (1-1) y(n)=wHx(n)=wHa(θ)s(n)11
其中,输入信号 x ( n ) x(n) x(n) 为期望、干扰、噪声三种信号的耦合; a ( θ ) a(θ) a(θ) 为导向矢量。
当一个远场窄带信号 s ( n ) s(n) s(n) 入射到 M 个阵元的均匀线阵时,阵列输出信号的平均功率为:
P ( θ ) = E [ ∣ y ( n ) ∣ 2 ] = E [ w H x ( n ) x H ( n ) w ] = w H R w ( 1 − 2 ) P(θ)=E[|y(n)|^2]=E[w^{H}x(n)x^{H}(n)w]=w^{H}Rw (1-2) P(θ)=E[y(n)2]=E[wHx(n)xH(n)w]=wHRw12
式(1-2)中 R = E [ x ( n ) x H ( n ) ] R=E[x(n)x^{H}(n)] R=E[x(n)xH(n)] 为接收信号 x ( n ) x(n) x(n) 的空间相关矩阵。

假设期望信号从 θ 0 θ_{0} θ0 方向入射,阵列接收信号为 x 0 ( n ) = a ( θ 0 ) s ( n ) x_{0}(n)=a(θ_{0})s(n) x0(n)=a(θ0)s(n) ,为了使 x 0 ( n ) x_{0}(n) x0(n) 通过空域滤波器后无失真,权矢量 w w w 需满足:
w H a ( θ 0 ) = 1 ( 1 − 3 ) w^{H}a(θ_{0})=1 (1-3) wHa(θ0)=113
选择的加权矢量 w w w 满足式(1-3)就可以实现对干扰信号以及噪声的抑制,从而使输出信号的平均功率 P ( θ ) P(θ) P(θ) 最小。由此可以建立目标优化方程为:
在这里插入图片描述
采用拉格朗日乘数法对式(1-4)构造代价函数为:
J ( w ) = w H R w + λ ( w H a ( θ 0 ) − 1 ) ( 1 − 5 ) J(w)=w^{H}Rw+λ(w^{H}a(θ_{0})-1) (1-5) J(w)=wHRw+λ(wHa(θ0)1)15
对式(1-5)关于 w w w 求梯度,并令其为零,得到:
▽ J ( w ) = 2 R w − 2 λ a ( θ 0 ) = 0 ( 1 − 6 ) ▽J(w)=2Rw-2λa(θ_{0})=0 (1-6) J(w)=2Rw2λa(θ0)=016
解得: w = λ R − 1 a ( θ 0 ) w=λR^{-1}a(θ_{0}) w=λR1a(θ0) ,将结果代入式(1-3)可得:
λ = 1 a H ( θ 0 ) R − 1 a ( θ 0 ) ( 1 − 7 ) λ=\frac{1}{a^{H}(θ_{0})R^{-1}a(θ_{0})} (1-7) λ=aH(θ0)R1a(θ0)117
将式(1-7)代入求得的权矢量结果中,可得到 MVDR 波束形成器的最优权向量为:
w o p t = R − 1 a ( θ 0 ) a H ( θ 0 ) R − 1 a ( θ 0 ) ( 1 − 8 ) w_{opt}=\frac{R^{-1}a(θ_{0})}{a^{H}(θ_{0})R^{-1}a(θ_{0})} (1-8) wopt=aH(θ0)R1a(θ0)R1a(θ0)18
以上就是 MVDR 波束形成求权值的完整过程。当阵列的阵元个数为 M M M 时,阵列的自由度为 M − 1 M-1 M1,所以 MVDR 波束形成器要求干扰源个数必须小于或等于 M − 1 M-1 M1
在实际情况中,阵列的接收数据协方差矩阵只能在有限次快拍的情况下,用时间平均对采样数据进行估计得到,即:
R ˆ = 1 N ∑ n = 1 N x ( n ) x H ( n ) ( 1 − 9 ) R^{ˆ}=\frac{1}{N}\sum_{n=1}^{N}x(n)x^{H}(n) (1-9) Rˆ=N1n=1Nx(n)xH(n)19
其中, N N N 是采样快拍数, N N N 值越大,估计矩阵 R ˆ R^{ˆ} Rˆ 更接近理想的相关矩阵 R R R

1.3 特点

1.3.1 优点

(1)高分辨率:MVDR算法能够有效地分辨出多个声源的方向,具有较高的分辨率。这使得它在处理复杂声学环境时能够提供更准确的声源定位信息。

(2)鲁棒性强:MVDR算法对噪声和混响信号具有较强的鲁棒性。在存在噪声和混响的环境中,该算法能够较好地保持对声源方向的估计能力,提高系统的稳定性和可靠性。

(3)计算量相对较小:相较于一些更复杂的算法,MVDR算法的计算量相对较小,这使得它在实时性要求较高的应用场景中具有一定的优势。

(4)干扰抑制能力强:MVDR算法通过最小化其他方向的信号功率,能够有效地抑制多径干扰和噪声,提高信号的质量。这在无线通信、声纳和雷达等领域尤为重要。

1.3.2 缺点

(1)远场假设限制:MVDR算法假设声源位于远场,即声源与麦克风阵列之间的距离远大于阵列的尺寸。这一假设限制了算法在近场声源定位中的应用,因为对于近场声源,算法的定位精度会显著下降。

(2)对导向矢量误差敏感:MVDR算法的性能在很大程度上依赖于导向矢量的准确性。如果导向矢量存在误差,将会对算法的估计结果产生较大影响,降低定位精度。

(3)阵列尺寸限制:MVDR算法的性能与阵列尺寸有关。一般来说,阵列尺寸越大,算法的性能越好。然而,在实际应用中,受到成本和空间等因素的限制,阵列尺寸往往无法做到足够大,这可能会限制算法的性能。

(4)计算复杂度较高:尽管相对于一些更复杂的算法而言,MVDR算法的计算量较小,但在实时性要求极高的应用场景中,其计算复杂度仍然可能成为一个挑战。此外,为了获得更好的性能,可能需要对算法进行进一步的优化和加速。

二、算法应用实例

2.1 信号的频率估计

仿真1:对目标信号的到达角进行估计
设一维均匀线阵的阵元数目为8,其间距为半波长,有3个目标信号的到达角分别为-30°,0°,20°,利用MVDR算法对该目标信号进行到达角估计,计算结果如下图所示。
在这里插入图片描述
读者可根据自己的需求,设置阵元数、目标信号个数及目标真实角度、信号的信噪比等条件进行实验。

2.2 MATLAB仿真代码

clc;
clear;
close all;%% MVDR算法估计到达角
d_lambda = 0.5;         % 阵元间距与波长比
Rx_Num = 8;             % 接收天线阵元数N = 1000;               % 采样快拍数
sigNum = 3;             % 信源数目
theta0 = [-30,0,20];     % 真实来波角度
snr = 10;               % 信噪比S = randn(sigNum,N)+1j*randn(sigNum,N);     % 远场窄带信号
A = exp(1j*2*pi*d_lambda*sind(theta0).'*(0:Rx_Num-1)).';     % 导向矢量
X = A*S;                            % 接收信号
Y = awgn(X,snr,'measured');         % 添加噪声的接收信号R = Y*Y'/N;         % 接收数据的协方差矩阵
R_ = inv(R);        % 协方差矩阵的逆矩阵thetaScan = (-90:0.1:90);       % 扫描角度范围
As = exp(1j*2*pi*d_lambda*sind(thetaScan).'*(0:Rx_Num-1)).';num = 0;
P = zeros(1,length(thetaScan));     % 谱峰函数初始化
for ii = thetaScannum = num+1;P(num) = 1/(As(:,num)'*R_*As(:,num));
end
P = 10*log10(abs(P)/max(abs(P)));   % 对谱峰函数进行归一化并取对数
figure;
plot(thetaScan,P,'b','LineWidth',1);xlabel('扫描角范围');ylabel('归一化幅度/dB');hold on
ylim = get(gca,'Ylim');
for jj = 1:sigNum% 画出真实波达角的值进行对比line([theta0(jj) theta0(jj)],[ylim(1) ylim(2)],'Color','r','LineStyle','--');hold on;
end
legend('MVDR估计值','真实值');

三、参考文献

[1] Capon J. High-resolution frequency-wavenumber spectrum analysis[J]. Proc. IEEE, 1969, 57(8): 1408-1418.
[2] Lacoss R T. Data adaptive spectral analysis methods[J]. Geophysics, 1971, 36(8): 661-675.
[3] 胡君丽.数字阵列接收同时多波束技术研究[D].电子科技大学,2019.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3249540.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

PWM再理解(1)

前言 昨天过于劳累,十点睡觉,本来想梳理一下PWM,今天补上。 PWM内涵 PWM全称:Pulse Width Modulation,也就是脉宽调制的意思,字面意思理解就是对脉冲的宽度进行改变。准确就是通过数字输出对模拟电路进行…

Artix7系列FPGA实现SDI视频编解码+UDP以太网传输,基于GTP高速接口,提供工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本博已有的以太网方案本博已有的FPGA图像缩放方案本方案的缩放应用本方案在Xilinx--Kintex系列FPGA上的应用本方案在Xilinx--Zynq系列FPGA上的应用 3、详细设计方案设计原理框图SDI 输入设备Gv8601a 均衡…

ChaosMeta for AI:混沌工程让AI稳定性更上一层楼

作者:刘凇杉 在今天的AI时代,AI系统的架构愈发复杂,其稳定性、资源利用率以及故障自愈能力也显得尤为重要。如果我们在实际运行中遇到问题再去修复,不仅成本高,还会对用户体验造成影响。混沌工程则是通过主动暴露和解…

「Vue组件化」封装i18n国际化

前言 在Vue应用中实现国际化(i18n),通常需要使用一些专门的库,比如vue-i18n。本文主要介绍自定义封装i18n,支持Vue、uniapp等版本。 设计思路 一、预期效果 二、核心代码 2.1 i18n.xlsx文件准备 2.2 脚本执行 根目录main.js根目录locali18n.xlsxnode main.jsmain.js 文件…

昇思25天学习打卡营第15天|两个分类实验

打卡 目录 打卡 实验1:K近邻算法实现红酒聚类 数据准备 模型构建--计算距离 计算演示 模型预测 实验2:基于MobileNetv2的垃圾分类 任务说明 数据集 参数配置(训练/验证/推理) 数据预处理 MobileNetV2模型搭建 Mobile…

尚品汇-(二十一)

目录: (1)使用redis实现分布式锁 (2)优化之设置锁的过期时间 (3.)优化之UUID防误删 (4)优化之LUA脚本保证删除的原子性 (1)使用redis实现分布…

基于FPGA的多路选择器

目录 一、组合逻辑 二、多路选择器简介: 三、实战演练 摘要:本实验设计并实现了一个简单的多路选择器,文章后附工程代码 一、组合逻辑 组合逻辑是VerilogHDL设计中的一个重要组成部分。从电路本质上讲,组合逻辑电路的特点是输…

macpdf转图片 macpdf导出为图片 mac如何将pdf存为jpg

在数字化办公的今天,pdf文件因其良好的文档保存和分享特性,已成为工作生活中不可或缺的一部分。然而,在某些场景下,我们需要将pdf文件转换为图片格式,以便于分享或展示。本文将向您介绍多种pdf转图片的方法&#xff0c…

Net8 Spire最新版去水印,去页数限制,转word/pptx/ofd等

新建控制台程序,添加Spire.pdf,最新版本为2024年7月17日 try {Spire.Pdf.PdfDocument pdf new Spire.Pdf.PdfDocument();pdf.LoadFromFile("test.pdf");pdf.SaveToFile("newpdf.pdf");pdf.SaveToFile("newppx.pptx", Spi…

github上的工程如何下载子模块.gitmodules如何下载指定的模块download submodules开源项目子模块下载externals

github上的工程如何下载子模块.gitmodules如何下载指定的模块download submodules 说明(废话)解决方案无法执行下载子模块无法下载子项目 说明(废话) 今天在编译一个开源库时,该开源库依赖其他项目,并且项目还挺多的,所以有此解决方案 在编…

springboot 配置 spring data redis

1、在pom.xml引入父依赖spring-boot-starter-parent&#xff0c;其中2.7.18是最后一版支持java8的spring <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.18</…

cms wpscan使用方式--kali linux

WPScan是一个用于WordPress安全审计和漏洞扫描的工具&#xff0c;可以通过以下命令来使用WPScan&#xff1a; 扫描一个网站&#xff1a; wpscan --url http://example.com扫描一个网站并指定用户名和密码&#xff1a; wpscan --url http://example.com --useradmin --passwo…

【go】Excelize处理excel表 带合并单元格、自动换行与固定列宽的文件导出

文章目录 1 简介2 相关需求与实现2.1 导出带单元格合并的excel文件2.2 导出增加自动换行和固定列宽的excel文件 1 简介 之前整理过使用Excelize导出原始excel文件与增加数据校验的excel导出。【go】Excelize处理excel表 带数据校验的文件导出 本文整理使用Excelize导出带单元…

【微服务实战之Docker容器】第六章-复杂安装(Mysql主从Redis集群)

系列文章目录 【微服务实战之Docker容器】第一章-下载及安装 文章目录 系列文章目录安装mysql主从复制1、新建主服务器容器实例33072、新建从服务器33083. 主从复制测试 Redis篇穿插Redis面试题哈希槽分区进行亿级数据存储Hash取余分区一致性Hash算法分区Hash槽分区&#xff0…

解决TypeError: __init__() takes 1 positional argument but 2 were given

问题描述&#xff1a; 如下图&#xff0c;在使用torch.nn.Sigmoid非线性激活时报错 源代码&#xff1a; class testrelu(nn.Module):def __init__(self):super().__init__()self.sigmoid Sigmoid()def forward(self, input):output self.sigmoid(input)return outputwriter…

最新开源的解析效果非常好的PDF解析工具MinerU (pdf2md pdf2json)

毫不夸张的说 PDF解析工具MinerU是照进RAG黑暗中的一道光——这是我对它的评价。我测过太多了文档解析工具&#xff01; 最近在做文档解析的工作。看了很多的开源的文档解析的工具&#xff0c;版面分析的工具&#xff0c;其中包括paddelpaddel这样30kstar的明星工具。但是效果都…

JVM:MAT内存泄漏检测原理

文章目录 一、介绍 一、介绍 MAT提供了称为支配树&#xff08;Dominator Tree&#xff09;的对象图。支配树展示的是对象实例间的支配关系。在对象引用图中&#xff0c;所有指向对象B的路径都经过对象A&#xff0c;则认为对象A支配对象B。 支配树中对象本身占用的空间称之为…

【Node.js】会话控制

express 中操作 cookie cookie 是保存在浏览器端的一小块数据。 cookie 是按照域名划分保存的。 浏览器向服务器发送请求时&#xff0c;会自动将 当前域名下可用的 cookie 设置在请求头中&#xff0c;然后传递给服务器。 这个请求头的名字也叫 cookie &#xff0c;所以将 c…

PHP场地预约共享茶室棋牌室小程序系统源码

&#x1f375;&#x1f3b2;【聚会新宠】场地预约神器&#xff0c;共享茶室棋牌室小程序大揭秘&#xff01;&#x1f389; &#x1f3e1;【开篇&#xff1a;告别繁琐&#xff0c;聚会新选择】&#x1f3e1; 还在为找不到合适的聚会场地而烦恼吗&#xff1f;想要一个既私密又舒…

LLaMA 背景

什么是LLaMA&#xff1f; 模型介绍&#xff1a;LLaMA是Meta开发的语言模型&#xff0c;旨在推动开放科学和人工智能的实践。 参数范围&#xff1a;这些模型的参数数量从7B到65B不等&#xff0c;覆盖了不同规模的需求。 训练数据&#xff1a;LLaMA模型是在数万亿个公开数据集的…