【通信仿真】基于matlab STAP全自由度空时自适应处理【含Matlab源码 1956期】
一、获取代码方式
获取代码方式1:
完整代码已上传我的资源:【通信仿真】基于matlab STAP全自由度空时自适应处理【含Matlab源码 1956期】
获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。
备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);
二、空时自适应处理简介
空时自适应处理是一个用来描述同时处理空域和时域的自适应阵列的术语,信号的空域分量由阵列传感器收集(与所有阵列工作相同),而信号的时域分量用每个阵列传感器后等间隔延时单元产生,为此目的,一个尺寸N阵列有N个子通道(每个传感器后面对应一个)在每个子通道中,来自第j个距离单元的信号组成了M个脉冲,这M个脉冲按照雷达脉冲间隔交错。然后来自所有M个延时响应的输出进行相干累加,以产生合成的阵列响应,假设阵列输入由目标回波、杂波回波及干扰信号回波组成。
三、部分源代码
clear
tic
%杂波仿真参数
N = 12; % 阵元个数
M = 10; % 相干脉冲数
CNR = 30; % 杂噪比
beta = 1; % 杂波折叠系数(beta = 2*v*T/d)
sita_a = -90:.9:90.; % 杂波单元个数
sita = sita_a*pi/180;
[NN N_bin] = size(sita);
%目标参数
sita_t = -25; % 目标DOA
omiga_t = 0.4; % 目标Doppler
SNR = 0; % 信噪比
%空间导向矢量和时间导向矢量
%空间频率和Dopple频率满足 omiga_d = beta * omiga_s
omiga_s = pi*sin(sita);
omiga_d = beta*omiga_s;
aN = zeros(N,N_bin);
bN = zeros(M,N_bin);
aN = exp(-j*[0:N-1]'*omiga_s)./sqrt(N);
bN = exp(-j*[0:M-1]'*omiga_d)./sqrt(M);
%目标空时信号
aN_t = zeros(N,1);
bN_t = zeros(M,1);
aN_t = exp(-j*pi*[0:N-1]'*sin(sita_t*pi/180))/sqrt(N);
bN_t = exp(-j*pi*[0:M-1]'*omiga_t)/sqrt(M);
S_t = zeros(M*N,1);
S_t = kron(aN_t,bN_t);
%计算杂波协方差矩阵
R = zeros(M*N,M*N);
S = zeros(M*N,N_bin);
ksai = 10^(CNR/10)*(randn(1,N_bin)+j*randn(1,N_bin))/sqrt(2); %服从正态分布的随机幅值,方差为1
for ii = 1:N_bin
S(:,ii) = kron(aN(:,ii),bN(:,ii));
R = R + ksai(ii).*(S(:,ii)*S(:,ii)');
end
%干扰协方差矩阵,杂噪比为30dB
R = R +eye(M*N); %CNR = 30dB
inv_R = inv(R); %逆矩阵
%求特征值谱
[u s v] = svd(R); %特征值分解
figure(1);
plot(10*log10(diag(s)));
title('阵元数N=12, 相干脉冲数M=10');
axis([0 120 -10 50]);
xlabel('特征值数目');
ylabel('特征值(dB)');
grid on
P_f = zeros(N_bin,N_bin);
P_min_var = zeros(N_bin,N_bin);
%求杂波谱
for ii = 1:N_bin
for jj = 1:N_bin
SS = kron(aN(:,ii),bN(:,jj));
P_f(ii,jj) = SS'*R*SS; %傅氏谱
P_min_var(ii,jj) = 1./(SS'*inv_R*SS);
end
end
%最小方差功率谱
figure(2)
mesh(sin(sita),omiga_d/pi,20*log10(abs(P_min_var)));
title('阵元数N=12, 相干脉冲数M=10');
xlabel('方位余弦');
ylabel('归一化Dopple频率');
zlabel('功率(dB)');
grid on
%空时最优权向量
w_opt = inv(R)*S_t./(S_t'*inv_R*S_t);
%w_opt = inv(RR)*a_t;
%求最优空时响应
for ii = 1:N_bin
for jj = 1:N_bin
SSS = kron(aN(:,ii),bN(:,jj));
res_opt(ii,jj) = SSS'*w_opt;
end
end
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
四、运行结果
五、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 沈再阳.精通MATLAB信号处理[M].清华大学出版社,2015.
[2]高宝建,彭进业,王琳,潘建寿.信号与系统——使用MATLAB分析与实现[M].清华大学出版社,2020.
[3]王文光,魏少明,任欣.信号处理与系统分析的MATLAB实现[M].电子工业出版社,2018.
文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。
原文链接:qq912100926.blog.csdn.net/article/details/125698827
- 点赞
- 收藏
- 关注作者
评论(0)