我是靠谱客的博主 无语宝马,最近开发中收集的这篇文章主要介绍窄带/宽带MUSIC方位估计,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

窄带MUSIC
在这里插入图片描述
在这里插入图片描述

宽带MUSIC
在这里插入图片描述

在这里插入图片描述

代码如下:

theta_s = 50;%	声源方位角
phi_s = 90;%	声源俯仰角
B = zeros( 91, 361 );%	方位谱
M = 16;%	阵元数
c = 1500;%	水下声速
f = 100;%	声波频率
fs = 10000;%	采样率
T = 1;
t = 0:1/fs:T;
lamda = c / f;
r = 2*lamda;%	圆形阵列半径
pos = r*[cos(2*pi*[1:M]/M); sin(2*pi*[1:M]/M); zeros(1, M) ];
k = 2*pi/lamda*[sind(phi_s)*cosd(theta_s); sind(phi_s)*sind(theta_s); cosd(phi_s)];
p = exp( 1i*k'*pos );
band = 0;
K = band/T;
SourceNum = 1;
% signal = p.'*exp( 1i*2*pi*f*t );%   cw
signal = p.'*exp( 1i*(2*pi*f*t+pi*K*t.^2) );%   lfm
N = 1;%	将原始信号分为N段

theta = linspace( 0 , 360 , 361 );% 方位角
phi = linspace( 0 , 90 , 91 );% 仰角
[m, n] = size( signal );
%--------------------------------------------------------------------------
%	窄带
% R = signal * signal' / n;
% % 特征值分解
% [ Q , D ] = eig( R );
% [ ~ , I ] = sort( diag( D ) , 1 , 'descend' );
% Q = Q( :,I );
% Qn = Q( : ,SourceNum + 1:end );                                  % 信号子空间
% for ii = 1:361
%     for jj = 1:91
%         k = 2 * pi / lamda * [ sind(phi(jj))*cosd(theta(ii));sind(phi(jj))*sind(theta(ii));cosd(phi(jj))];
%         p = exp( 1i*k'*pos );p = p.';
%         B( jj , ii ) = (1/(p'*(Qn*Qn')*p));
%     end
% end
% B = abs( B );
%--------------------------------------------------------------------------
%	宽带MUSIC
signalLength = ceil( n / N );
if mod( n, N ) ~= 0
    signal = [ signal, zeros( m, N*signalLength-n ) ];
end
signalFFT = zeros( m, 1024 );
for num1 = 1:N
    signalTemp = signal( :, (( num1-1 )*signalLength+1: num1*signalLength) );
    signalTempFFT = fft( signalTemp, 1024, 2 );
    signalFFT = signalFFT + signalTempFFT;
end
signalFFT = signalFFT / N;
fre = (0:1024/2-1)/1024*fs;
for num2 = 1:20:1024/2
    R = signalFFT( :, num2 )*signalFFT( :, num2 )';
    [ Q, D ] = eig( R );
    [ ~, I ] = sort( diag( D ), 1, 'descend' );
    Q = Q( :,I );
    Qn = Q( : ,SourceNum + 1:end );% 信号子空间
    FTemp = zeros( 91, 361 );
    lamda = c/fre(num2);
    for ii = 1:361
        for jj = 1:91
            k = 2 * pi / lamda * [ sind(phi(jj))*cosd(theta(ii)); sind(phi(jj))*sind(theta(ii)); cosd(phi(jj)) ];
            p = exp( 1i*k'*pos );p = p.';
            FTemp( jj, ii ) = (1/(p'*(Qn*Qn')*p));
        end
    end
    B = B + FTemp;
end
B = abs( B ) / signalLength;
%--------------------------------------------------------------------------

figure(1)
mesh(B)
xlabel( 'Azimuth angle/°' ); ylabel( 'Pitch angle/°' ); zlabel( 'Amp' );
set( gca ,'FontName','Times New Roman' );

最后

以上就是无语宝马为你收集整理的窄带/宽带MUSIC方位估计的全部内容,希望文章能够帮你解决窄带/宽带MUSIC方位估计所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部