clc;
clear;
close all;
warning off;
addpath(genpath(pwd));
L=8;
K=50;
d=1;
M=3;
sigma=1;
snr=-10:30;
N = 500;
%初始化输出信干噪比矩阵
osinr_mpdr=zeros(length(snr),N);
osinr_smi=zeros(length(snr),N);
osinr_rmi=zeros(length(snr),N);
osinr_dl=zeros(length(snr),N);
osinr_sip=zeros(length(snr),N);
%初始化失配广义夹角矩阵
angle_mismatched_mpdr=zeros(1,length(snr));
angle_mismatched_smi=zeros(1,length(snr));
angle_mismatched_rmi=zeros(1,length(snr));
angle_mismatched_dl=zeros(1,length(snr));
angle_mismatched_sisp=zeros(1,length(snr));
theta0=0;
theta1=60;
theta2=-60;
a0=exp(1i*2*pi*d*sin(theta0*pi/180)*(0:L-1)');
a1=exp(1i*2*pi*d*sin(theta1*pi/180)*(0:L-1)');
a2=exp(1i*2*pi*d*sin(theta2*pi/180)*(0:L-1)');
b0=exp(1i*2*pi*d*sin((theta0+2)*pi/180)*(0:L-1)');
for m=1:length(snr)
sigma0=sigma*10^(snr(m)/20);
%两个干扰源,信干噪比为-30dB
inr1=snr(m)+30;
inr2=snr(m)+30;
sigma1=sigma*10^(inr1/20);
sigma2=sigma*10^(inr2/20);
Rxx = sigma0^2*(a0*a0')+sigma1^2*(a1*a1')+sigma2^2*(a2*a2')+sigma^2*eye(L);
Rin = sigma1^2*(a1*a1')+sigma2^2*(a2*a2')+sigma^2*eye(L);
for i = 1:N
st0=(randn(1,K)+1i*randn(1,K))/sqrt(2)*sigma0;
st1=(randn(1,K)+1i*randn(1,K))/sqrt(2)*sigma1;
st2=(randn(1,K)+1i*randn(1,K))/sqrt(2)*sigma2;
nt =(randn(L,K)+1i*randn(L,K))/sqrt(2)*sigma;
xt = a0*st0+a1*st1+a2*st2+nt;
sRxx = xt*xt'/ K;
[eive,eiva] = eig(sRxx); %eive是特征向量,eiva是特征值
[temp,order] = sort(diag(eiva)); %order排序后对应原向量元素位置;temp 排序后的元素;从小到大排序
sigma_e = sqrt(sum(temp(1:L-M)));
Us = eive(:,order(L-M+1:L));
Rin_e = a1*a1'/(a1'*inv(sRxx)*a1) + a2*a2'/(a2'*inv(sRxx)*a2) + sigma_e^2*eye(L);%?小特征值对应噪声功率
w_mpdr = inv(Rxx)*a0 /(a0'*inv(Rxx)*a0);
w_smi = inv(sRxx)*b0/(b0'*inv(sRxx)*b0);
w_rmi = inv(Rin_e)*b0/(b0'*inv(Rin_e)*b0);
w_dl = inv(sRxx+1*sigma_e^2*eye(L))*b0/(b0'*inv(sRxx+1*sigma_e^2*eye(L))*b0); %rou=10
w_sip = inv(sRxx)*Us*Us'*b0;
osinr_mpdr(m,i)=sigma0^2*(abs(w_mpdr'*a0))^2/abs(w_mpdr'*Rin*w_mpdr);
osinr_smi(m,i) =sigma0^2*(abs(w_smi'*a0))^2/abs(w_smi'*Rin*w_smi);
osinr_rmi(m,i) =sigma0^2*(abs(w_rmi'*a0))^2/abs(w_rmi'*Rin*w_rmi);
osinr_dl(m,i) =sigma0^2*(abs(w_dl'*a0))^2/abs(w_dl'*Rin*w_dl);
osinr_sip(m,i) =sigma0^2*(abs(w_sip'*a0))^2/abs(w_sip'*Rin*w_sip);
a0_mpdr=Rxx*inv(Rxx)*a0;
a0_smi=Rxx*inv(sRxx)*b0;
a0_rmi=Rxx*inv(Rin_e)*b0;
a0_dl=Rxx*inv(sRxx+1*sigma_e^2*eye(L))*b0;
a0_sisp=Rxx*inv(sRxx)*Us*Us'*b0;
angle_mismatched_mpdr(m)=angle_mismatched_mpdr(m)+(abs(a0_mpdr'*inv(Rin)*a0))^2/((a0_mpdr'*inv(Rin)*a0_mpdr)*(a0'*inv(Rin)*a0));
angle_mismatched_smi(m)=angle_mismatched_smi(m)+(abs(a0_smi'*inv(Rin)*a0))^2/((a0_smi'*inv(Rin)*a0_smi)*(a0'*inv(Rin)*a0));
angle_mismatched_rmi(m)=angle_mismatched_rmi(m)+(abs(a0_rmi'*inv(Rin)*a0))^2/((a0_rmi'*inv(Rin)*a0_rmi)*(a0'*inv(Rin)*a0));
angle_mismatched_dl(m)=angle_mismatched_dl(m)+(abs(a0_dl'*inv(Rin)*a0))^2/((a0_dl'*inv(Rin)*a0_dl)*(a0'*inv(Rin)*a0));
angle_mismatched_sisp(m)=angle_mismatched_sisp(m)+(abs(a0_sisp'*inv(Rin)*a0))^2/((a0_sisp'*inv(Rin)*a0_sisp)*(a0'*inv(Rin)*a0));
end
osinr_mpdr(m,1) = sum(osinr_mpdr(m,:))/N ;
osinr_smi(m,1) = sum(osinr_smi(m,:))/N ;
osinr_rmi(m,1) = sum(osinr_rmi(m,:))/N ;
osinr_dl(m,1) = sum(osinr_dl(m,:))/N ;
osinr_sip(m,1) = sum(osinr_sip(m,:))/N ;
angle_mismatched_mpdr(m)= abs(angle_mismatched_mpdr(m)/N);
angle_mismatched_mpdr(m)= acos(sqrt(angle_mismatched_mpdr(m)))/pi*180;
angle_mismatched_smi(m)=angle_mismatched_smi(m)/N;
angle_mismatched_smi(m)= acos(sqrt(angle_mismatched_smi(m)))/pi*180;
angle_mismatched_rmi(m)= angle_mismatched_rmi(m)/N;
angle_mismatched_rmi(m)= acos(sqrt(angle_mismatched_rmi(m)))/pi*180;
angle_mismatched_dl(m)=angle_mismatched_dl(m)/N;
angle_mismatched_dl(m)= acos(sqrt(angle_mismatched_dl(m)))/pi*180;
angle_mismatched_sisp(m)=angle_mismatched_sisp(m)/N;
angle_mismatched_sisp(m)= acos(sqrt(angle_mismatched_sisp(m)))/pi*180;
end
%绘制输出信干噪比随输入信噪比变化
figure(1);hold on;
plot(snr,10*log(osinr_mpdr(:,1)),'--','linewidth',2);
plot(snr,10*log(osinr_smi(:,1)),'-.','linewidth',2);
plot(snr,10*log(osinr_rmi(:,1)),'-*','linewidth',2);
plot(snr,10*log(osinr_dl(:,1)),'-o','linewidth',2);
plot(snr,10*log(osinr_sip(:,1)),'-+','linewidth',2);
xlabel('SNR/dB');ylabel('OSINR/dB');
title('输出信干噪比随输入信噪比变化趋势');
legend('MPDR','SMI','RMI','DL','SIP');
%输出失配广义夹角随输入信噪比变化
figure(2);hold on;
plot(snr,angle_mismatched_mpdr,'--','linewidth',2);
plot(snr,abs(angle_mismatched_smi),'-.','linewidth',2);
plot(snr,abs(angle_mismatched_rmi),'-*','linewidth',2);
plot(snr,abs(angle_mismatched_dl),'-o','linewidth',2);
plot(snr,abs(angle_mismatched_sisp),'-+','linewidth',2);
xlabel('SNR/dB');ylabel('失配广义夹角/(^o)');
title('失配广义夹角随输入信噪比变化趋势');
legend('MPDR','SMI','RMI','DL','SIP');
%% DL
clear,clc,close all;
L=16;
K=50;
d=1;
M=3;
sigma=1;
snr=-10:30;
N = 500;
%初始化输出信干噪比矩阵
osinr_mpdr=zeros(length(snr),N);
osinr_smi=zeros(length(snr),N);
osinr_rmi=zeros(length(snr),N);
osinr_dl=zeros(length(snr),N);
osinr_sip=zeros(length(snr),N);
%初始化失配广义夹角矩阵
angle_mismatched_mpdr=zeros(1,length(snr));
angle_mismatched_smi=zeros(1,length(snr));
angle_mismatched_rmi=zeros(1,length(snr));
angle_mismatched_dl=zeros(1,length(snr));
angle_mismatched_sisp=zeros(1,length(snr));
theta0=0;
theta1=60;
theta2=-60;
a0=exp(1i*2*pi*d*sin(theta0*pi/180)*(0:L-1)');
a1=exp(1i*2*pi*d*sin(theta1*pi/180)*(0:L-1)');
a2=exp(1i*2*pi*d*sin(theta2*pi/180)*(0:L-1)');
b0=exp(1i*2*pi*d*sin((theta0+2)*pi/180)*(0:L-1)');
for m=1:length(snr)
sigma0=sigma*10^(snr(m)/20);
%两个干扰源,信干噪比为-30dB
inr1=snr(m)+30;
inr2=snr(m)+30;
sigma1=sigma*10^(inr1/20);
sigma2=sigma*10^(inr2/20);
Rxx = sigma0^2*(a0*a0')+sigma1^2*(a1*a1')+sigma2^2*(a2*a2')+sigma^2*eye(L);
Rin = sigma1^2*(a1*a1')+sigma2^2*(a2*a2')+sigma^2*eye(L);
for i = 1:N
st0=(randn(1,K)+1i*randn(1,K))/sqrt(2)*sigma0;
st1=(randn(1,K)+1i*randn(1,K))/sqrt(2)*sigma1;
st2=(randn(1,K)+1i*randn(1,K))/sqrt(2)*sigma2;
nt =(randn(L,K)+1i*randn(L,K))/sqrt(2)*sigma;
xt = a0*st0+a1*st1+a2*st2+nt;
sRxx = xt*xt'/ K;
[eive,eiva] = eig(sRxx); %eive是特征向量,eiva是特征值
[temp,order] = sort(diag(eiva)); %order排序后对应原向量元素位置;temp 排序后的元素;从小到大排序
sigma_e = sqrt(sum(temp(1:L-M)));
w_mpdr = inv(sRxx+1*sigma_e^2*eye(L))*b0/(b0'*inv(sRxx+1*sigma_e^2*eye(L))*b0);
w_smi = inv(sRxx+5*sigma_e^2*eye(L))*b0/(b0'*inv(sRxx+5*sigma_e^2*eye(L))*b0);
w_rmi = inv(sRxx+10*sigma_e^2*eye(L))*b0/(b0'*inv(sRxx+10*sigma_e^2*eye(L))*b0);
w_dl = inv(sRxx+15*sigma_e^2*eye(L))*b0/(b0'*inv(sRxx+15*sigma_e^2*eye(L))*b0);
w_sip = inv(sRxx+20*sigma_e^2*eye(L))*b0/(b0'*inv(sRxx+20*sigma_e^2*eye(L))*b0);
osinr_mpdr(m,i)=sigma0^2*(abs(w_mpdr'*a0))^2/abs(w_mpdr'*Rin*w_mpdr);
osinr_smi(m,i) =sigma0^2*(abs(w_smi'*a0))^2/abs(w_smi'*Rin*w_smi);
osinr_rmi(m,i) =sigma0^2*(abs(w_rmi'*a0))^2/abs(w_rmi'*Rin*w_rmi);
osinr_dl(m,i) =sigma0^2*(abs(w_dl'*a0))^2/abs(w_dl'*Rin*w_dl);
osinr_sip(m,i) =sigma0^2*(abs(w_sip'*a0))^2/abs(w_sip'*Rin*w_sip);
a0_mpdr=Rxx*inv(sRxx+1*sigma_e^2*eye(L))*b0;
a0_smi=Rxx*inv(sRxx+5*sigma_e^2*eye(L))*b0;
a0_rmi=Rxx*inv(sRxx+10*sigma_e^2*eye(L))*b0;
a0_dl=Rxx*inv(sRxx+15*sigma_e^2*eye(L))*b0;
a0_sisp=Rxx*inv(sRxx+20*sigma_e^2*eye(L))*b0;
angle_mismatched_mpdr(m)=angle_mismatched_mpdr(m)+(abs(a0_mpdr'*inv(Rin)*a0))^2/((a0_mpdr'*inv(Rin)*a0_mpdr)*(a0'*inv(Rin)*a0));
angl
【含仿真录像】雷达信号失配广义夹角随信噪比变化的matlab仿真分析
版权申诉
123 浏览量
2022-11-19
05:14:02
上传
评论
收藏 1.96MB RAR 举报
fpga和matlab
- 粉丝: 16w+
- 资源: 2559
最新资源
- IMG_0694.GIF
- 基于图像的三维模型重建C++源代码+文档说明(高分课程设计)
- 基于聚焦法的工件立体测量方案,根据数据进行三维重建 使用HALCON处理图像,MATLAB拟合数据+源代码+数据集+效果图
- 锄战三国村 修改:货币使用不减 v1.10(2) 原创 (中文).apk
- 基于python实现的单目双目视觉三维重建+源代码+图像图片(高分课程设计)
- 基于C+++OPENCV的全景图像拼接源码(课程设计)
- 基于Python+OpenCV对多张图片进行全景图像拼接,消除鬼影,消除裂缝+源代码+文档说明+界面截图(高分课程设计)
- 基于C++实现的全景图像拼接源码(课程设计)
- 基于SIFT特征点提取和RASIC算法实现全景图像拼接python源码+文档说明+界面截图+详细注释(95分以上课程大作业)
- 基于matlab实现眼部判别的疲劳检测系统+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈