⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rankofclutter.m

📁 求杂波秩的Matlab源代码
💻 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 + -