📄 resolution_mmusic_s.m
字号:
%function resolution_mmusic_s
% function resolution_mmusic_s_1
% antenna_number 天线阵元个数
% A0A 信号的方位角/度
% A0A_radian 设置信号的角度为弧度
% signal_number 信号源个数
% signal_frequency 信号的中心频率
% sample_frequency 抽样频率
% lambda_bochang 信号源波长
% antenna_space 天线阵元的间距
% samplepoint_number 对天线阵输出X的采样个数
% SNR 信号与噪声的对数信噪比
clc; % MATLAB语言实现MUSIC算法在天线测向上的应用
clear;
close all;
antenna_number=5; %天线阵元个数
AOA=[-2 5]; %信号的方位角/度
AOA_radian=AOA*pi/180; %设置信号的角度为弧度
signal_number=length(AOA); %信号源个数
signal_frequency=6*1e9;
sample_frequency=2.5*signal_frequency;
lambda_bochang=3*1e11/signal_frequency;
antenna_space=0.5*lambda_bochang; %天线阵元的间距
samplepoint_number=1000; %采样个数
SNR=[7 7 5]; %信号与噪声的信噪比
%#####设置信号的方向矩阵azimuth_matrice
for row_1=1:antenna_number;
for column_1=1:signal_number;
t=(row_1-1)*2*pi*antenna_space/lambda_bochang*sin(AOA_radian(column_1));
azimuth_matrice(row_1,column_1)=exp(-j*t);
end;
end;
Jm=zeros(antenna_number,antenna_number);
for row_3=1:antenna_number
Jm(row_3,antenna_number-(row_3-1))=1;
end;
%生成高斯噪声
sigma_noise=1;
noise=normrnd(0,sigma_noise,antenna_number,samplepoint_number);
%产生实正弦连续波信号signal
signal_amplitude=sigma_noise*10.^(SNR/20);
initialphase_s_1=6*pi/180;
for column_s_1=1:samplepoint_number;
signal_1(1,column_s_1)=signal_amplitude(1)*cos(2*pi*signal_frequency*column_s_1/sample_frequency+initialphase_s_1);
end;
initialphase_s_2=[96 90 84.5 78.5 72.5 66 59 51.5 43 32 6]*pi/180;
initial_length=length(initialphase_s_2);
for initialphase_index=1:initial_length
signal_2=s_differ_initialphase(samplepoint_number,signal_amplitude,signal_frequency,sample_frequency,initialphase_s_2(initialphase_index));
signal_corrcoeff=corrcoef(signal_1,signal_2);
signal_corr(initialphase_index)=signal_corrcoeff(1,2);
signal_cell{initialphase_index}=[signal_1;signal_2];
end;
%#####求天线阵输出信号X、及其协方差矩阵R
measured_number=100;
for initialphase_index=1:initial_length
for measured_index=1:measured_number
X{initialphase_index,measured_index}=azimuth_matrice*signal_cell{initialphase_index}+normrnd(0,sigma_noise,antenna_number,samplepoint_number);
R{initialphase_index,measured_index}=1/samplepoint_number*X{initialphase_index,measured_index}*X{initialphase_index,measured_index}';
Rb_m{initialphase_index,measured_index}=Jm*conj(R{initialphase_index,measured_index})*Jm;
Rmmusic{initialphase_index,measured_index}=R{initialphase_index,measured_index}+Rb_m{initialphase_index,measured_index};
end;
end;
resoluted_propability_music=reso_propa_mmusic(R,initial_length,antenna_number,samplepoint_number,antenna_space,lambda_bochang,measured_number);
resoluted_propability_mmusic=reso_propa_mmusic(Rmmusic,initial_length,antenna_number,samplepoint_number,antenna_space,lambda_bochang,measured_number);
figure(1)
plot(signal_corr,resoluted_propability_music,signal_corr,resoluted_propability_mmusic,'r:');
xlabel('信号源相关系数\rho'); ylabel('信号源AOA分辨概率');
grid; legend('music','mmusic'); axis([0,1,0,1]);
figure(2)
subplot(2,1,1); plot(signal_corr,resoluted_propability_music); grid; legend('music'); title('信号源AOA分辨概率');
subplot(2,1,2); plot(signal_corr,resoluted_propability_mmusic); grid; legend('mmusic');
xlabel('信号源相关系数\rho');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -