首页
归档
逛逛与留言
关于
Search
1
执勿山爬山游记
102 阅读
2
AI的使用第二期
91 阅读
3
捏泥巴
87 阅读
4
备案了!记录下
82 阅读
5
博客捣鼓记
67 阅读
默认分类
生活随记
代码编程
看看风景
学习记录
登录
Search
标签搜索
日常
Shu
累计撰写
32
篇文章
累计收到
53
条评论
首页
栏目
默认分类
生活随记
代码编程
看看风景
学习记录
页面
归档
逛逛与留言
关于
搜索到
1
篇与
的结果
2025-06-20
【雷达学习】双基地MIMO-ESPRIT方法解互耦回忆
主要学习来源于这篇文章:《Joint DOD and DOA estimation of bistatic MIMO radar in the presence of unknown mutual coupling》大致思路是:先回忆了下 ULA 的 ESPRIT 方法;然后是 MIMO 下的 ESPRIT 方法然后是看文章看不懂,然后 AI 帮我解析,先读出大致的框架,然后丰富细节,最后对自己的理解进行确认,然后画出代码仿真的关键点下面在这个网盘下面提供 2 个 PDF 和一个代码方便之后回顾学习https://a.siyouyun.ren:30597/OutSaveFile2/RadarXG/ESPRIT_Double_mimomatlab 代码预览clc,clear all,close all; %% Parameters of the radar system M = 7; % number of Tx N = 7; % number of Rx d = 0.5; % inter-element space % theta = [15 -10 5]; % DOA % phi = [20 35 60]; theta = [-50 20 60]; % DOD % DOA phi = [20 40 60]; K = length(theta); % number of target % dopplor frequency shift L = 100; % number of sanpshot SNR = 30; % signal-to-noise ratio before matched filtering Geo_Rx = [0:N-1]; % geometry of Rx Geo_Tx = [0:M-1]; % geometry of Tx At = exp(-j*2*pi*d*Geo_Tx.'*sind(phi)); % transmitting direction matrix Ar = exp(-j*2*pi*d*Geo_Rx.'*sind(theta)); % receiving direction matrix item = 10; %% 设置互耦系数; mc_K = 2; mc_nb = mc_K+1; C_t = generateMCMmat(M,mc_nb); C_r = generateMCMmat(N,mc_nb); C = kron(C_t,C_r); %% 设置选择Pt和Pt矩阵 Pt = [zeros(M-2*mc_K,mc_K),eye(M-2*mc_K),zeros(M-2*mc_K,mc_K)]; Pr = [zeros(N-2*mc_K,mc_K),eye(N-2*mc_K),zeros(N-2*mc_K,mc_K)]; M1 = M-2*mc_K; N1 = N-2*mc_K; P = kron(Pr,Pt); % number of trials %% Selective matrices JM1 = [eye(M1-1),zeros(M1-1,1)]; JM2 = [zeros(M1-1,1),eye(M1-1)]; JN1 = [eye(N1-1),zeros(N1-1,1)]; JN2 = [zeros(N1-1,1),eye(N1-1)]; Jt1 = kron(JM1,eye(N1)); Jt2 = kron(JM2,eye(N1)); Jr1 = kron(eye(M1),JN1); Jr2 = kron(eye(M1),JN2); a_kronrao = zeros(M*N,K); for i=1:K a_kronrao(:,i) = kron(At(:,i),Ar(:,i)); end for item_num = 1:item disp(['SNR = ',num2str(SNR),' dB, ',num2str(item_num), ' # try : ']); %% Matched Filtering S = randn(K,L)+1i*randn(K,L); X_0 = C*a_kronrao * S; X = awgn(X_0,SNR,"measured","dB"); Y = P * X; %% Eigen decomposition %Rx = (X*X')/L; % Estimated covariance matrix Rx = (Y*Y')/L; [Es,D] = eigs(Rx,K,'LM'); % Signal subspace %% Rotational invariant property Vt = pinv(Jt2*Es)*Jt1*Es; %Vt = pinv(Jt1*Es)*Jt2*Es; [T,Phit] = eig(Vt); Phir = inv(T)*pinv(Jr2*Es)*Jr1*Es*T; %Phir = inv(T)*pinv(Jr1*Es)*Jr2*Es*T; E_theta = asind(angle(diag(Phir))/pi).'; E_phi = asind(angle(diag(Phit))/pi).'; plot(E_theta,E_phi,'k*');hold on; end H(1)=plot(E_theta,E_phi,'k*');hold on; H(2)=plot(theta,phi,'rx','markersize',28);grid on; xlabel('DOA'),ylabel('DOD'); legend([H(1),H(2)],'Esimated','Ture')闲聊没想到 matlab 还可以画出这样的图片,“赛博生命”,hhhhttps://mp.weixin.qq.com/s/GS-jSHnasVxrrIn5C2E3WQfigure('Position',[300,50,900,900], 'Color','k'); axes(gcf, 'NextPlot','add', 'Position',[0,0,1,1], 'Color','k'); axis([0, 400, 0, 400]) SHdl = scatter([], [], 2, 'filled','o','w', 'MarkerEdgeColor','none', 'MarkerFaceAlpha',.4); t = 0; i = 0:2e4; x = mod(i, 100); y = floor(i./100); k = x./4 - 12.5; e = y./9 + 5; o = vecnorm([k; e])./9; while true t = t + pi/90; q = x + 99 + tan(1./k) + o.*k.*(cos(e.*9)./4 + cos(y./2)).*sin(o.*4 - t); c = o.*e./30 - t./8; SHdl.XData = (q.*0.7.*sin(c)) + 9.*cos(y./19 + t) + 200; SHdl.YData = 200 + (q./2.*cos(c)); drawnow end
2025年06月20日
5 阅读
0 评论
0 点赞