宽带信号处理实现DOA估计(ISM算法、MUSIC、MVDR、CBF)

这篇具有很好参考价值的文章主要介绍了宽带信号处理实现DOA估计(ISM算法、MUSIC、MVDR、CBF)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%% 宽带信号DOA估计算法:ISM  算法%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%%%%%%% Developed by HHU's Boya (河海大学_信息与通信工程_李蓉) %%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%% EMAIL:15006120517@163.com %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%% MUSIC \ CBF \ MVDR %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clc; 
clear all;
close all;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 参数定义 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
M=12;                                     %阵元数 
N=200;                                    %快拍数 
X=2;                                      %信源数
ts=0.01;                                  %时域采样间隔   
fl=80;                                    %入射信号最低频率 
fh=120;                                   %入射信号最高频率 
fm=(fl+fh)/2;                             %入射信号中心频率 
c=1500;                                   %声速 
lambda=c/fm;                              %波长 
d=lambda/2;                               %阵元间距 
SNR=15;                                   %信噪比
ang2rad = pi/180;                         %角度转弧度系数
theta1=30*ang2rad;                        %入射信号波束角1 
theta2=-45*ang2rad;                       %入射信号波束角2 
n=ts:ts:N*ts;                             %采样时间矢量                           
theta=[theta1,theta2]; 
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% produce signal %%%%%%%%%%%%%%%%%%%%%%%%%%%% 
 
s1=chirp(n,fl,1,fh);                     %生成线性调频信号1;
s1=awgn(s1,SNR,'measured');              %在信号中添加高斯噪声
s1_fft=fft(s1);                          %进行FFT变换;Y = fft(X,n) 返回 n 点 DFT。如果未指定任何值,则 Y 的大小与 X 相同
s2=chirp(n+0.100,fh,1,fl);               %生成线性调频信号2 
s2=awgn(s2,SNR,'measured');              %在信号中添加高斯噪声
s2_fft=fft(s2);                          %进行FFT变换 
  
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ISM算法 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%构造接收信号、协方差矩阵
sump_music=zeros(1,361);       %角度功率谱初始化
sump_mvdr= zeros(1,361);       %角度功率谱初始化
sump_cbf = zeros(1,361);       %角度功率谱初始化
for i=1:N                      %遍历各频点
    f=80+(i-1)*1.0;            %具体频点   +1
    s_music=[s1_fft(i) s2_fft(i)]';                %2个声源信号的频域快拍_MUSIC\后续考虑增加快拍数\目前是1%%
    s_mvdr=[s1_fft;s2_fft];                        %MVDR200个快拍一起
    s_cbf=[s1_fft;s2_fft];                         %CBF200个快拍一起
    %接收矢量阵
    a = exp(-1j*2*pi*f*d/c*(0:M-1)'*sin(theta));   %方向矢量矩阵M*2  M为阵元数 2为声源数目 
    %%协方差矩阵music
    Xmusic=a*s_music;          %接收信号快拍矩阵 Xn 12*1维   12*1 = 12*2 * 2*1
    R_music=Xmusic*Xmusic';    %快拍信号的协方差矩阵
    %%协方差矩阵mvdr
    Xmvdr=a*s_mvdr;            %接收信号快拍矩阵
    R_mvdr=Xmvdr*Xmvdr'/N;     %快拍信号的协方差矩阵
    %%协方差矩阵cbf
    Xcbf=a*s_cbf;              %接收信号快拍矩阵
    R_cbf=Xcbf*Xcbf'/N;        %快拍信号的协方差矩阵
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ISM_MUSIC 算法 %%%%%%%%%%%%%%%%%%%%%%%%%
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ISM_MVDR算法 %%%%%%%%%%%%%%%%%%%%%%%%%%%
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ISM_CBF算法 %%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %%噪声子空间En
    [Ev,D] = eig(R_music);     % 特征值分解 D:特征值的对角矩阵 Ev:右特征列向量组成的矩阵
    EVA = diag(D)';            % 将特征值提取为1行 
    [EVA,I] = sort(EVA);       % 对特征值排序,从小到大。其中I为索引向量
    EV = fliplr(Ev(:,I));      % 按照索引I对顺序特征矢量排序得到Ev,再fliplr水平颠倒列向量得到特征值从大到小分布的特征列向量组成的矩阵EV
    En = EV(:,X+1:M);          % 取特征向量矩阵的第X+1到M列特征向量组成噪声子空间En
    
    % 遍历所有角度,计算空间谱
    for i = 1:361
        angle(i) = (i-181)/2;           % 映射到-90度到90度
        theta_m = angle(i)*ang2rad;
        a_theta = exp(-1j*2*pi*f/c*d*(0:M-1)'*sin(theta_m));    %导向矢量M*1
        p_music(i) = abs(1/(a_theta'*En*En'*a_theta));          %MUSIC算法功率谱
        p_mvdr(i)=1/abs(a_theta'*inv(R_mvdr)*a_theta);          %MVDR算法功率谱
        p_cbf(i)=abs(a_theta'*R_cbf*a_theta);                   %CBF算法功率谱
        
    end
    sump_music=sump_music+p_music;                              %累加各频点功率谱
    sump_mvdr=sump_mvdr+p_mvdr;                                 %累加各频点功率谱
    sump_cbf=sump_cbf+p_cbf;                                    %累加各频点功率谱
end 

%%%%%%%%%%%%%%%%%%%%%%%%%%%% 归一化处理、作图 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%%ISM_MUSIC
p_music_max = max(sump_music);
sump_music = 10*log10(sump_music/p_music_max); 

%%ISM_MVDR
p_mvdr_max = max(sump_mvdr);
sump_mvdr = 10*log10(sump_mvdr/p_mvdr_max); 

%%ISM_CBF
p_cbf_max=max(sump_cbf);
sump_cbf=10*log10(sump_cbf/p_cbf_max);

%%作图ISM_MUSIC \ MVDR \ CBF
%%ISM——MUSIC
figure(1);
subplot(3,1,1); 
plot(angle,sump_music,'b-');
title('ISM——MUSIC空间谱');
xlabel('入射角/度'); 
ylabel('空间谱/dB');
%%ISM——MVDR
subplot(3,1,2); 
plot(angle,sump_mvdr,'r-');
title('ISM——MVDR空间谱');
xlabel('入射角/度'); 
ylabel('空间谱/dB');
%%ISM——CBF
subplot(3,1,3); 
plot(angle,sump_cbf,'g-');
title('ISM——CBF空间谱');
xlabel('入射角/度'); 
ylabel('空间谱/dB');

%%ISM——MUSIC
figure(2);
plot(angle,sump_music,'b-');
title('ISM——MUSIC空间谱');
xlabel('入射角/度'); 
ylabel('空间谱/dB');

%%ISM——MVDR
figure(3);
plot(angle,sump_mvdr,'r-');
title('ISM——MVDR空间谱');
xlabel('入射角/度'); 
ylabel('空间谱/dB');

%%ISM——CBF
figure(4);
plot(angle,sump_cbf,'g-');
title('ISM——CBF空间谱');
xlabel('入射角/度'); 
ylabel('空间谱/dB');




1 常规波束形成算法(CBF)

功率谱:                            

2 MVDR算法

功率谱:                            

3 多重信号分类法(MUSIC)

功率谱:                           

       由快拍信号 计算协方差矩阵 ,其中 ,为快拍长度;对上述的空间谱公式遍历各个角度,计算对应角度的导向矢量,带入空间谱计算公式得到各个角度的功率值,遍历预想的全部角度以后就得到各种方法的空间谱啦;

       代码中使用了MUSIC算法,也使用了CBF和MVDR算法,效果并不是很完美;代码存在瑕疵,请多多包涵或自行修改,取代码请关注博主吧,唯一小要求;

注:其中  为导向矢量, 为快拍信号的协方差矩阵, 为协方差矩阵 特征值分解得到的噪声子空间矩阵;   文章来源地址https://www.toymoban.com/news/detail-856119.html

到了这里,关于宽带信号处理实现DOA估计(ISM算法、MUSIC、MVDR、CBF)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【OTFS与信号处理:论文阅读4】OTFS时延多普勒域嵌入导频辅助信道估计

    2023.07.10 虽说目前已经有频谱效率更高的叠加导频设计,但是这篇论文堪称OTFS嵌入式导频的经典之作,经常被其他论文引用,左思右想觉得还是有必要重新阅读并记录学习过程。(注:关于MIMO的部分暂未深入)。 论文题目:Embedded Pilot-Aided Channel Estimation for OTFS in Delay–Dopp

    2024年02月15日
    浏览(35)
  • 【OTFS与信号处理:论文阅读1】:考虑分数多普勒的OTFS系统有效信道估计(已更新)

    2023.06.05 最近在研究OTFS考虑分数多普勒时信道估计与信号检测相关问题,最近精读了一篇论文,并针对论文中部分公式进行推导,故记录一下学习过程。 论文题目: Efficient Channel Estimation for OTFS Systems in the Presence of Fractional Doppler 论文地址: https://ieeexplore.ieee.org/document/10118

    2024年02月11日
    浏览(36)
  • 基于FPGA的信号处理算法,FFT法相差检测verilog实现

    基于FPGA的信号处理算法,FFT法相差检测verilog实现 。 1.硬件平台:altera芯片 2.软件平台:Quartusii 13.1 Verilog 3.实现功能:检测两路正弦波的相位差 基于FPGA的信号处理算法,FFT法相差检测verilog实现 引言 在现代通信系统中,信号处理算法在实时性和精度方面面临着巨大的挑战。

    2024年04月16日
    浏览(46)
  • 【OTFS与信号处理:论文阅读1】:考虑分数多普勒的OTFS系统有效信道估计(24.01.16更新)

    2023.06.05 最近在研究OTFS考虑分数多普勒时信道估计与信号检测相关问题,最近精读了一篇论文,并针对论文中部分公式进行推导,故记录一下学习过程。 论文题目: Efficient Channel Estimation for OTFS Systems in the Presence of Fractional Doppler 论文地址: https://ieeexplore.ieee.org/document/10118

    2024年01月17日
    浏览(36)
  • 【OTFS与信号处理:论文阅读4】OTFS时延多普勒域嵌入导频辅助信道估计(已更新)

    2023.07.10 虽说目前已经有频谱效率更高的叠加导频设计,但是这篇论文堪称OTFS嵌入式导频的经典之作,经常被其他论文引用,左思右想觉得还是有必要重新阅读并记录学习过程。(注:关于MIMO的部分暂未深入)。 论文题目:Embedded Pilot-Aided Channel Estimation for OTFS in Delay–Dopp

    2024年02月08日
    浏览(44)
  • 现代信号处理——阵列信号处理(空域滤波原理及其算法)

    一、阵列信号处理简介 1、阵列信号处理的研究内容:检测、估计、滤波、成像等。 2、阵列信号处理的研究对象:空间传播波携带信号(空域滤波) 3、阵列信号处理方法:统计与自适应信号处理技术(如谱估计、最优与自适应、滤波) 4、阵列信号处理的目的:①滤波:增强

    2024年02月02日
    浏览(83)
  • DOA估计算法——Capon算法

            在理解Capon算法之前,我们有必要先了解波束形成的基本思想以及原理到底是什么。这有助于我们更好的理解Capon算法的思想。 图 1  如图1展示了均匀阵列波束导向的示意图。图中 wm 表示加权值,波速形成(DBF)的基本思想就是将各阵元输出进行加权求和,在一定时

    2024年02月02日
    浏览(32)
  • 基于确定性最大似然算法 DML 的 DoA 估计,用牛顿法实现(附 MATLAB 源码)

    本文首次在公众号【零妖阁】上发表,为了方便阅读和分享,我们将在其他平台进行自动同步。由于不同平台的排版格式可能存在差异,为了避免影响阅读体验,建议如有排版问题,可前往公众号查看原文。感谢您的阅读和支持! 在 DoA 估计中,最大似然方法主要分为 确定性

    2024年02月17日
    浏览(36)
  • 聊聊音频信号处理中一个不太起眼的算法-limiter

    本文对笔者关于音频信号处理中的 Limiter 的理解作以记录。如有表述不当之处欢迎批评指正。欢迎任何形式的转载,但请务必注明出处。 由于工作上的需要,笔者花了一周左右的时间对 limiter (它属于动态范围控制器里面的一种算法,动态范围控制器包括 compressor, expander,

    2024年02月21日
    浏览(45)
  • 【数字信号处理课程设计】基于MATLAB实现语音信号的采集与处理(偏重滤波)

    目录 一、目标与任务 二、原理介绍 2.1 录音原理 2.2 滤波器的设计原理及设计方法 2.3 IIR 数字滤波器设计原理 2.4 双线性变换法 三、GUI界面设计与实现 四、基于MATLAB仿真 4.1实验过程 4.2 结果分析 五、总结 5.1 函数用法总结 5.2 心得体会 六、参考文献 这个项目在我的B站上有专

    2024年01月18日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包