✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
基于Matlab模拟MVDR波束形成器,输出信干噪比SINR随快拍数snap变化曲线
⛄ 代码
%输出信干噪比随快拍数变化
tic;
clc;clear;close all;
N_element=60;%阵元数
snaps_all=100:100:10000;%快拍数
Monte_Carlo=200;%蒙特卡洛仿真次数
SINR_MVDR=zeros(1,length(snaps_all));
rand_state = 0;
rng('default');
rng(rand_state);
for i_snaps=1:1:length(snaps_all)
snaps=snaps_all(i_snaps);
for i_M = 1:1:Monte_Carlo
%信噪比,干燥比以及角度信息
SNR=0;angle0=50;
INR1=30;angle1=20;
%导向向量
a0=exp(-1i*pi*(0:1:N_element-1)'*sind(angle0));
a1=exp(-1i*pi*(0:1:N_element-1)'*sind(angle1));
%生成信号
s0=10^(SNR/20)*randn(1,snaps);
s1=10^(INR1/20)*randn(1,snaps);
%高斯复噪声
noise=1/sqrt(2)*(randn(N_element,snaps)+1i*randn(N_element,snaps));
%%接收的数据
x=a0*s0+a1*s1+noise;
%%数据协方差矩阵
R=(x*x')/(snaps);
iR=eye(N_element)/(R);%+1e-5*eye(N_element)
%加权向量
w_mvdr=iR*a0/(a0'*iR*a0);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% % 不能使用这种方法,会存在R的计算误差。
% % SINR_SMI(i_snr, i_snaps) = SINR_SMI(i_snr, i_snaps) +...
% % abs(w_smi'*R*w_smi)/abs(w_smi'*Rin*w_smi);%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SINR_MVDR(1,i_snaps)=SINR_MVDR(1,i_snaps) +...
10^(SNR/10)*abs(w_mvdr'*a0)^2/...
(10^(INR1/10)*abs(w_mvdr'*a1)^2+w_mvdr'*w_mvdr);
end
SINR_MVDR(1,i_snaps)=SINR_MVDR(1,i_snaps)/Monte_Carlo;
end
figure(1)
plot(snaps_all,10*log10(abs(SINR_MVDR(1,:))),'r','linewidth',1.3,'linestyle','-');
%ylim([-30 15])
%xlim([0 1000])
xlabel('快拍数');
ylabel('SINR/dB');
legend('MVDR');
toc;
⛄ 运行结果
⛄ 参考文献
[1]竺士蒙, 宋明凯, 宫先仪. 改进MVDR波束形成性能的计算机模拟[J]. 声学学报, 1994, 19(6):1.
⛳️ 代码获取关注我
❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料