算法原理-Music
应用
DOA估计
原理
MUSIC算法,叫做多信号分类算法 (Multiple Signal Classification),是一种基于特征结构的高分辨率DOA算法。该算法利用了信号子空间和噪声子空间正交性的特点,构造噪声空间然后通过谱峰搜索来检测信号的波达方向。需要注意的是,该算法有一个前提,即各个入射信号之间互不相关,这样才能保证入射信号的协方差矩阵是满秩的。
一维阵列
线阵
二维阵列
矩阵
python实现
import numpy as np import matplotlib.pyplot as plt # 高斯白噪声 def awgn(x: np.array, snr: int or float) -> np.array: # snr(dB) len_x = len(x) Ps = np.sum(np.power(x, 2)) / len_x Pn = Ps / np.power(10, snr / 10) n_gaussian = np.sqrt(Pn / 2) * np.random.randn(len_x) return x + n_gaussian f = 10e9 # 频率10GHz c = 3e8 # 光速 l = c / f # 波长 d = l / 2 # 半波长 M = 10 # 阵元数 N = 100 # 快拍数(采样点) K = 6 # 信源数 phi = np.asarray([-30, 0, 20, 40, 60, 75]) # 来波方向 phi = phi * np.pi / 180 dd = np.arange(M) * d A = np.exp(-2j * np.pi * np.outer(dd, np.sin(phi)) / l) S = np.sqrt(2) / (np.random.randn(K, N) + 1j * np.random.randn(K, N)) X = A @ S Rx = X @ np.conj(X).T / N V, U = np.linalg.eig(Rx) index = np.argsort(V)[::-1] U = U[:, index] P = np.sum(V) P_cum = np.cumsum(V) J = np.where(P_cum / P >= 0.95) Un = U[:, int(J[0][0]+1):] theta = np.arange(-90, 90, 0.1) theta = np.pi / 180 * theta doa = np.exp(-2j * np.pi * np.outer(dd, np.sin(theta)) / l) music = np.abs(1 / np.diag(np.conj(doa).T @ Un @ np.conj(Un).T @ doa)) music = 10 * np.log10(music/np.max(music)) plt.rcParams['font.family'] = ['SimSun', 'Times New Roman'] # 设置字体族,中文为SimSun,英文为Times New Roman plt.rcParams['font.size'] = 12 plt.rcParams['lines.linewidth'] = 1 plt.rcParams['lines.color'] = 'r' plt.rcParams['axes.unicode_minus'] = False plt.rcParams['mathtext.fontset'] = 'stix' # 设置数学公式字体为stix fig, ax = plt.subplots(1, 1, figsize=(5, 3.95)) fig.set_tight_layout('pad') ax.plot(np.arange(-90, 90, 0.1), music) ax.set_ylabel('空间谱(dB)') ax.set_xlabel('角度($^o$)') plt.show()
本文来自博客园,作者:工大鸣猪,转载请注明原文链接:https://www.cnblogs.com/hit-ztx/p/18290642
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)