📄 rankofclutter.m
字号:
% 杂波散射点的仿真
clear all;clc;
% 基本参数设定
K = 3; % 脉冲的个数
M = 4; % 杂波散射点个数
% Texture 产生
b = 1; % scale 参数
v = 0.5; % shape 参数
T = gamrnd(v,b,M,1); % 对应 M 个散射点的Texture
% speckle 产生
a = abs(normrnd(0,0.1,K,M)); % 杂波散射点的反射率
b = abs(randn(1,K)'); % 目标对入射波的反射率
tau_t = 3 ; % 目标的延迟时间
tau_c = [1,5,7,8]; % 杂波散射点的延迟时间
% 发射信号
fs = 100; % 采样频率 hz
ts = 1/fs; % 采样间隔 us
np1 = 0.3;
np2 = 0.6;
taup = np2 - np1 ; % 脉冲宽度
ns = 0;
nf = 1;
[x1,n] = stepseq(np1,ns,nf,ts);
[x2,n] = stepseq(np2,ns,nf,ts);
s = x1 - x2; % 发射信号
ssp = zeros(K,length(n));
nssp = zeros(K,length(n));
prf = 10; % 脉冲重频
ss = s;
nss = n;
for i = 1:K
[ssp(i,:),nssp(i,:)] = seqshift(s,n,prf*i);
ss = [ss,ssp(i,:)];
nss = [nss,nssp(i,:)];
end
plot(nss,ss); % 最终发射信号
% 回波信号
[y_t,ny_t] = seqshift(ss,nss,tau_t); % 目标回波信号
nlegth = length(n);
for j =1:K
y_t(((j-1)*nlegth+1):(j*nlegth)) = y_t(((j-1)*nlegth+1):(j*nlegth))*b(j,1);
end
y_c = zeros(M,length(ss)); % 杂波散射点回波信号
ny_c = zeros(M,length(ss));
for i = 1:M
[y_c(i,:),ny_c(i,:)] = seqshift(ss,nss,tau_c(i));
for j =1:K
y_c(i,((j-1)* nlegth+1):(j*nlegth)) = y_c(i,((j-1)*nlegth+1):(j*nlegth)) * a(j,i);
end
end
nr = zeros(K,length(nss));
sr = zeros(K,length(nss)); % 回波信号
% 构造回波数据矩阵
for j = 1:K
ons = y_c(:,((j-1)*nlegth+1):(j*nlegth)); % 回波数据
nns = ny_c(:,((j-1)*nlegth+1):(j*nlegth)); % 回波位置信息
onns = ons(1,:);
nnns = nns(1,:);
for i = 2:M
onns = [onns,ons(i,:)];
nnns = [nnns,nns(i,:)];
end
for p = 1:length(nnns)
for q = (p+1):length(nnns)
if nnns(p) == nnns(q)
onns(p) = onns(p) + onns(q);
nnns(q) = -100;
end
end
end
nrr = nnns(find(nnns~=-100));
gr = onns(find(nnns~=-100));
end
%
% nrp = [ny_c(1,:),ny_t,ny_c(2,:),ny_c(3,:),ny_c(4,:)];
% grp = [y_c(1,:),y_t,y_c(2,:),y_c(3,:),y_c(4,:)];
% for i=1:length(nrp)
% for j =(i+1):length(nrp)
% if nrp(i) == nrp(j)
% grp(i) = grp(i) + grp(j);
% nrp(j) = -100;
% end
% end
% end
% nr = nrp(find(nrp~=-100));
% gr = grp(find(nrp~=-100));
figure;plot(nr,gr);
zs = xcorr(ss,gr);
R = corrcoef(zs');
rrank = rank(R)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -