基于MATLAB的均勻面陣MUSIC算法DOA估計仿真

基于MATLAB的均勻面陣MUSIC算法DOA估計仿真

文章目錄

  • 前言
  • 一、二維MUSIC算法原理
  • 二、二維MUSIC算法MATLAB仿真
  • 三、MATLAB源代碼
  • 總結


前言

\;\;\;\;\; 在波達角估計算法中,MUSIC 算法與ESPRIT算法屬于特征結構子空間算法,是波達角估計算法中的基石。在前面的文章 一文讀懂MUSIC算法DOA估計的數學原理并仿真 中詳細介紹了一維MUSIC算法即線陣MUSIC算法DOA估計的原理及仿真,本文將介紹二維MUSIC算法即均勻面陣的MUSIC算法DOA估計原理及MATLAB仿真。


提示:以下是本篇文章正文內容,尊重版權,引用請附上鏈接。

一、二維MUSIC算法原理

下圖為面陣入射信號模型,
?在這里插入圖片描述
\;\;\;\;\; 假設從遠場有 K K K 個互不相關的窄帶信號,入射到一個陣元個數為 M × N M×N M×N 的平面陣列上。記第 i i i個入射信號的方位角和俯仰角分別為 θ i \theta_i θi? φ i \varphi_i φi? ,則陣列接收信號可以表示為:
z ( t ) = A s ( t ) + n ( t ) \boldsymbol{z}(t)=\boldsymbol A \boldsymbol s(t)+\boldsymbol n(t) z(t)=As(t)+n(t)其中 A \boldsymbol A A是維度為(MN×K)的均勻矩形陣列的陣列流形,可以表示為如下所示的式子:
A = [ a ( θ k , φ 1 ) , a ( θ 2 , φ 2 ) , ? , a ( θ K , φ K ) ] T \mathbf{A}=\begin{bmatrix}\boldsymbol{a}(\theta_k,\varphi_1),\boldsymbol{a}(\theta_2,\varphi_2),\cdots,\boldsymbol{a}(\theta_K,\varphi_K)\end{bmatrix}^T A=[a(θk?,φ1?),a(θ2?,φ2?),?,a(θK?,φK?)?]T a ( θ k , φ k ) \boldsymbol{a}(\theta_k,\varphi_k) a(θk?,φk?)為第k個入射信號的導向矢量,僅僅由陣列的陣元排布和參考陣元的選擇所決定,用公式可以表示為:
a ( θ k , φ k ) = a x ( θ k , φ k ) ? a y ( θ k , φ k ) ∈ C M N × 1 \boldsymbol{a}(\theta_k,\varphi_k)=\boldsymbol{a}_x(\theta_k,\varphi_k)\otimes\boldsymbol{a}_y(\theta_k,\varphi_k)\in C^{MN\times1} a(θk?,φk?)=ax?(θk?,φk?)?ay?(θk?,φk?)CMN×1 其中 ? \otimes ?表示的是克羅內克內積(Kronecker Product), a x ( θ k , φ k ) \boldsymbol{a}_x(\theta_k,\varphi_k) ax?(θk?,φk?)表示x軸方向上均勻線陣接收信號的方向矢量, a y ( θ k , φ k ) \boldsymbol{a}_y(\theta_k,\varphi_k) ay?(θk?,φk?)表示y軸方向上均勻線陣接收信號的方向矢量,可分別寫為如下數學表達式:
a x ( θ k , φ k ) = [ a x , 0 ( θ k , φ k ) , a x , 1 ( θ k , φ k ) , ? , a x , M ? 1 ( θ k , φ k ) ] T \boldsymbol{a}_x(\theta_k,\varphi_k)=\begin{bmatrix}a_{x,0}(\theta_k,\varphi_k),a_{x,1}(\theta_k,\varphi_k),\cdots,a_{x,M-1}(\theta_k,\varphi_k)\end{bmatrix}^T ax?(θk?,φk?)=[ax,0?(θk?,φk?),ax,1?(θk?,φk?),?,ax,M?1?(θk?,φk?)?]T a y ( θ k , φ k ) = [ a y , 0 ( θ k , φ k ) , a y , 1 ( θ k , φ k ) , ? , a y , N ? 1 ( θ k , φ k ) ] T \boldsymbol{a}_y(\theta_k,\varphi_k)=\begin{bmatrix}a_{y,0}(\theta_k,\varphi_k),a_{y,1}(\theta_k,\varphi_k),\cdots,a_{y,N-1}(\theta_k,\varphi_k)\end{bmatrix}^T ay?(θk?,φk?)=[ay,0?(θk?,φk?),ay,1?(θk?,φk?),?,ay,N?1?(θk?,φk?)?]T 式中的 s ( t ) \mathbf{s}(t) s(t)是信號源矢量, n ( t ) \mathbf{n}(t) n(t)為高斯白噪聲矢量,服從 N ( 0 , σ 2 ) N(0,\sigma^2) N(0,σ2)分布,可以分別表示如下式子:
s ( t ) = [ s 0 ( t ) , s 1 ( t ) , ? , s K ? 1 ( t ) ] T \mathbf{s}(t)=\left[\mathbf{s}_0(t),\mathbf{s}_1(t),\cdots,\mathbf{s}_{K-1}(t)\right]^T s(t)=[s0?(t),s1?(t),?,sK?1?(t)]T n ( t ) = [ n 0 ( t ) , n 1 ( t ) , ? , n M N ( t ) ] T \mathbf{n}(t)=\left[\mathbf{n}_0(t),\mathbf{n}_1(t),\cdots,\mathbf{n}_{MN}(t)\right]^T n(t)=[n0?(t),n1?(t),?,nMN?(t)]T \;\;\;\;\; 陣列接收信號的協方差矩陣可以表示為: R = E [ z z H ] \mathbf{R} = \mathbb{E}[\mathbf{z}\mathbf{z}^H] R=E[zzH] = A E [ s s H ] A H + σ 2 I = \mathbf A\mathbb{E}[\mathbf{s}\mathbf{s}^H]\mathbf A^H + \sigma^2\mathbf{I} =AE[ssH]AH+σ2I = A R S A H + σ 2 I =\mathbf A \mathbf R_S\mathbf A^H + \sigma^2\mathbf{I} =ARS?AH+σ2I 其中 R S \mathbf{R}_S RS?表示入射信號的協方差矩陣, σ 2 I \sigma^2\mathbf{I} σ2I表示功率為 σ 2 \sigma^2 σ2的高斯白噪聲的協方差矩陣。
\;\;\;\;\; 實際應用中天線陣列獲取的信息是有限次的快拍,因此只能得到協方差矩陣的估計值 R ^ \hat{\mathbf{R}} R^,其計算公式如下:
R ^ = 1 J ∑ j = 1 J z ( j ) z H ( j ) \hat{\mathbf{R}} = \frac{1}{J}\sum_{j=1}^{J}\mathbf{z}(j)\mathbf{z}^H(j) R^=J1?j=1J?z(j)zH(j) \;\;\;\;\; 由于接收信號的協方差矩陣 R \mathbf{R} R是對稱矩陣,因此可以對其進行特征值分解,可以得到:
R = U Λ U T \mathbf{R} = \mathbf{U}\boldsymbol{\Lambda}\mathbf{U}^T R=UΛUT 其中 U \mathbf{U} U R \mathbf{R} R的特征向量構成的矩陣, Λ \boldsymbol{\Lambda} Λ是一個由特征值構成的對角矩陣。
Λ = d i a g { λ 1 , λ 2 , . . . , λ M N } \boldsymbol{\Lambda} = diag\{ \lambda_1,\lambda_2,...,\lambda_{MN} \} Λ=diag{λ1?,λ2?,...,λMN?} \;\;\;\;\; 假設對角矩陣中的特征值降序排列,滿足如下關系:
λ 1 ≥ λ 2 ≥ ? ≥ λ K > λ K + 1 = ? = λ M N = σ 2 \lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_K > \lambda_K + 1 = \cdots = \lambda_{MN} = \sigma^2 λ1?λ2??λK?>λK?+1=?=λMN?=σ2 由前 K K K個較大的特征值構成的對角矩陣 Λ S \boldsymbol{\Lambda}_S ΛS?,其對應的特征向量構成的矩陣 U S \mathbf U_S US?為信號子空間。由后 M ? K M-K M?K個較小的特征值構成的對角矩陣 A N \mathbf A_N AN?,其對應的特征向量構成的矩陣 U N \mathbf U_N UN?為噪聲子空間。

\;\;\;\;\; 根據前文假設,信號與噪聲相互獨立,因此信號子空間與噪聲子空間是相互正交的,故信號陣列流矢量與噪聲子空間也具有正交性。同一維MUSIC算法一樣,可構造二維空間譜函數:
P 2 D ? M U S I C ( θ , ? ) = 1 a H ( θ , ? ) U N U N H a ( θ , ? ) P_{2D-MUSIC}(\theta, \phi) = \frac{1}{\mathbf a^{H}(\theta, \phi) \mathbf U_N \mathbf U_N^{H} \mathbf a(\theta, \phi)} P2D?MUSIC?(θ,?)=aH(θ,?)UN?UNH?a(θ,?)1? \;\;\;\;\; 當天線陣列的方向矢量與噪聲子空間近似正交時,上式分母部分取極小值,空間譜函數在此時取得極大值,得到空間譜的譜峰。對空間譜進行譜峰搜索,就能夠得到入射信號的方位角與俯仰角的角度,至此完成了對于信源的二維 DOA估計。

二、二維MUSIC算法MATLAB仿真

\;\;\;\;\; 參數設置如下:改變任何一個參數,仿真結果都會跟著改變,可以通過修改參數觀察不同條件對估計結果的影響。

M=3;           % x軸陣元個數
N=2;           % y軸陣元個數
K=1024;        % 快拍數
fc=100e+6;     % 載波
fs=300e+6;     % 采樣頻率
Pn=1;          % 噪聲功率fines=[45 180 250 300]; % 信號入射方位角
thetas=[5 30 55 75];    % 信號入射俯仰角
signal_f=[15e6 30e6 45e6 60e6]; % 信號頻率
signal_SNR=[30 30 30 30];       % 信噪比m=(0:M-1)';    % x軸坐標
n=(0:N-1)';    % y軸坐標
c=3e+8;        % 光速
lamda=c/fc;    % 波長
dx=1/2*lamda;  % x軸陣元間距
dy=1/2*lamda;  % y軸陣元間距

在這里插入圖片描述
在這里插入圖片描述
\;\;\;\;\; 通過觀察參數,可以得出以下結論,可以自己通過改變參數來驗證,這里就不貼圖了。
1、隨著陣元數目的增大,MUSIC 算法的分辨率逐漸增強。
2、隨著信號信噪比的增大,MUSIC 算法的分辨率逐漸增強。
3、當陣元間距與波長的比值為二分之一時,MUSIC算法能夠有效進行 DOA 估計;當陣元間距小于波長的二分之一時,MUSIC 算法的分辨率會降低;當陣元間距大于波長的二分之一時,由于采樣嚴重不足,MUSIC算法可能會喪失分辨能力。

三、MATLAB源代碼

均勻面陣MUSIC算法DOA估計MATLAB仿真源代碼


總結

\;\;\;\;\; 以上就是今天記錄的所有內容,分享了均勻面陣MUSIC算法DOA估計的原理及其在MATLAB軟件上仿真的結果。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/70329.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/70329.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/70329.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

組學數據分析實操系列 |(四) 富集氣泡圖的繪制

前言:在上一篇中,我們介紹了利用Metascape零代碼實現富集分析,但是Metascape的富集分析結果是以柱狀圖的形式展示的。文章中更常使用的富集結果可視化方式是氣泡圖。氣泡圖可以通過氣泡的坐標、形狀、顏色、大小等來展示更加豐富的富集分析結果&#xff…

實現一個專注應用-后端開發(一)-搭建

搭建后端服務 搭建服務拆分下用戶服務 增加公共庫通用模塊 運行一下接入數據庫安裝Prisma增加prisma庫 redis增加redis服務 搭建服務 使用nestjs來做 這里是nestjs的網站Nestjs 安裝 nest npm i -g nestjs/cli創建一個項目 并在開發工具打開 nest new todonest new xx 是新…

C++17并行化加速STL算法——std::execution

C17 并行化STL算法 文章目錄 C17 并行化STL算法概念環境準備工具類 并行算法 - 使用并行算法 - 執行策略總覽選擇標準詳細介紹順序執行 seq并行化順序執行 par并行化亂序執行 par_unseq 并行算法 - 異常處理可以不使用并行算法并行算法 - 限制并行算法有哪些原有算法17引入新算…

Deepseek 懟CHATGPT實況

提示詞: 用犀利的語言批評ChatGPT 深度思考(R1) 嗯,用戶讓我用犀利的語言批評ChatGPT。首先,我需要理解他們的動機。可能他們遇到了ChatGPT的某些問題,比如回答不準確或者缺乏深度,所以想表達不滿。也有…

always和assign語法區別

always語句可以帶時鐘, 也可以不帶時鐘。 一,assign和always區別 assign 語句使用時不能帶時鐘。 assign a=1; assign b=2; 在always不帶時鐘時,邏輯功能和assign完全一致,都是只產生組合邏輯。比較簡單的組合邏輯推薦使用assign語句,比較復雜的組合邏輯推薦使用 al…

解析跨域:原理、解決方案與實踐指南

解析跨域:原理、解決方案與實踐指南 🌐 在現代Web開發中,跨域問題是一個常見且重要的挑戰。隨著互聯網應用的日益復雜,前端與后端之間的交互越來越頻繁,跨域請求的需求也隨之增加。 一、跨域問題的本質與產生條件 &a…

鴻蒙開發:熟知@BuilderParam裝飾器

前言 本文代碼案例基于Api13。 在實際的開發中,我們經常會遇到自定義組件的情況,比如通用的列表組件,選項卡組件等等,由于使用方的樣式不一,子組件是動態變化的,針對這一情況,就不得不讓使用方把…

MSI微星電腦沖鋒坦克Pro Vector GP76 12UGS(MS-17K4)原廠Win11系統恢復鏡像,含還原功能,預裝OEM系統下載

適用機型:【MS-17K4】 鏈接:https://pan.baidu.com/s/1P8ZgXc6S_J9DI8RToRd0dQ?pwdqrf1 提取碼:qrf1 微星筆記本原裝出廠WINDOWS11系統自帶所有驅動、出廠主題壁紙、系統屬性專屬聯機支持標志、Office辦公軟件、MSI Center控制中心等預裝…

【面試題】杭州士騰科技-面試題匯總

歷史小劇場 歷史是一個好客的主人,卻從不容許客人取代它的位置。歷史也從來就不是一個人或事幾個人可以支配創造的。所謂時勢造英雄,實乃至理名言。 真正支配歷史的人,不是朱元璋,是稻田里辛勤勞作的老農,是官道上來往…

Go入門之map

map類型是引用類型,必須初始化才能使用,為key-value形式 var userinfo make(map[string]string)userinfo["username"] "zhangsan"var user map[string]string{"username": "張三","age": &qu…

切換鏡像源(npm)

常見的npm鏡像源 官方源 URL: https://registry.npmjs.org 淘寶鏡像源(npmmirror) URL: https://registry.npmmirror.com 其他常用鏡像源 URL: https://registry.cnpmjs.org (CNPM) 這里是引用 切換npm鏡像源 切換到官方源 npm config set registry http…

【大模型】DeepSeek 高級提示詞技巧使用詳解

目錄 一、前言 二、DeepSeek 通用提示詞技巧 2.1 DeepSeek 通用提示詞技巧總結 三、DeepSeek 進階使用技巧 3.1 DeepSeek一個特定角色的人設 3.1.1 為DeepSeek設置角色操作案例一 3.1.2 為DeepSeek設置角色操作案例二 3.2 DeepSeek開放人設升級 3.2.1 特殊的人設&#…

Qt開發③Qt的信號和槽_概念+使用+自定義信號和槽+連接方式

目錄 1. 信號和槽概述 1.1 事件和控件 1.2 信號的本質 1.3 槽的本質 2. 信號和槽的使用 2.1 connect 連接信號和槽 2.2 查看內置信號和槽 2.3 Qt Creator 生成信號槽代碼 3. 自定義信號和槽 3.1 不帶參數的信號和槽 3.2 帶參數的信號和槽 4. 信號與槽的連接方式 4…

【動態路由】系統Web URL資源整合系列(后端技術實現)【apisix實現】

需求說明 軟件功能需求:反向代理功能(描述:apollo、eureka控、apisix、sentinel、普米、kibana、timetask、grafana、hbase、skywalking-ui、pinpoint、cmak界面、kafka-map、nacos、gateway、elasticsearch、 oa-portal 業務應用等多個web資…

Vue2 中使用 UniApp 時,生命周期鉤子函數總結

在 Vue2 中使用 UniApp 時,生命周期鉤子函數是一個重要的概念。它允許開發者在特定的時間點運行代碼,管理組件的生命周期。以下是 Vue2 中 UniApp 常用的生命周期鉤子函數總結: 1. beforeCreate 說明: 組件實例剛被創建,此時數據…

在Ubuntu24.04上安裝Stable-Diffusion1.10.1版本

之前曾介紹過在Ubuntu22.04上安裝Stable-Diffusion: 在Ubuntu22.04上部署Stable Diffusion_ubuntu stable dif-CSDN博客 這個安裝我們使用conda python虛擬機。這次我們介紹的是在Ubuntu24.04安裝Stable-Diffusion的最新版本V1.10.1(截止到今天最新版&…

IIS asp.net權限不足

檢查應用程序池的權限 IIS 應用程序池默認使用一個低權限賬戶(如 IIS_IUSRS),這可能導致無法刪除某些文件或目錄。可以通過以下方式提升權限: 方法 1:修改應用程序池的標識 打開 IIS 管理器。 在左側導航樹中&#x…

MongoDB 常用命令速查表

以下是一份 MongoDB 常用命令速查表&#xff0c;涵蓋數據庫、集合、文檔的增刪改查、索引管理、聚合操作等場景&#xff1a; 1. 數據庫操作 命令說明show dbs查看所有數據庫use <db-name>切換/創建數據庫&#xff08;需插入數據后才會顯示&#xff09;db.dropDatabase()…

23種設計模式 - 模板方法

模式定義 模板方法模式&#xff08;Template Method Pattern&#xff09;是一種行為型設計模式&#xff0c;它通過定義算法的骨架&#xff08;固定步驟&#xff09;&#xff0c;允許子類在不改變算法結構的情況下重寫特定步驟。該模式的核心是將通用流程封裝在基類中&#xff…

使用Java爬蟲獲取1688自定義API操作接口

在電商領域&#xff0c;1688作為國內領先的B2B平臺&#xff0c;提供了豐富的API接口&#xff0c;允許開發者獲取商品信息、店鋪信息等。其中&#xff0c;custom 接口允許開發者進行自定義操作&#xff0c;獲取特定的數據。本文將詳細介紹如何使用Java爬蟲技術&#xff0c;通過1…