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

📄 toeplitz_page110.m

📁 阵列信号处理的几个程序
💻 M
字号:
%%%%%%可能是程序写的不好,算法的仿真结果不行,分辨力较差@@@@@@@@@
clc;
clear ;
close all;
tic
M=20;%阵元数目
N=3;%信源数目
b=5;%形成的波束个数
snap=1000;%快拍数目
C=3e8;
f0=10e6;
lamda=C/f0;
d=0.5*lamda;
% k=d/lamda;
theta0=50;
theta1=30;
theta2=20;
fs=1000;
ts=1/fs;
t=(0:snap-1)*ts;
a=[0:M-1]';%阵列矢量
u0=5;
u1=10;
u2=20;


s0=exp(j*2*pi*(f0*t+0.5*u0*t.^2));
s1=exp(j*2*pi*(f0*t+0.5*u1*t.^2));
s2=exp(j*2*pi*(f0*t+0.5*u2*t.^2));

%阵列流行矢量

a_theta0=exp(j*2*pi*d/lamda*a*sin(theta0/180*pi));
a_theta1=exp(j*2*pi*d/lamda*a*sin(theta1/180*pi));
a_theta2=exp(j*2*pi*d/lamda*a*sin(theta2/180*pi));

A=[a_theta0 a_theta1 a_theta2];
S=[s0;s1;s2];
X0=A*S;
SNR=10;
randn('state',0);
real_noise=randn(size(X0));
randn('state',3);
imag_noise=randn(size(X0));
noise0=(real_noise+j*imag_noise)/2^0.5;
noise=10^(-SNR/20)*noise0;
X=X0+noise;
Rx=X*X'/length(t);

jj=1;
for n=0:M-1
    temp=0;
    for ii=1:M-n
        temp=temp+Rx(ii,ii+n);
        
    end
  
    rt(jj)=(temp/(M-n));
    rt(2*M-jj)=conj(rt(jj));
    jj=jj+1;
end



Rt=zeros(M,M);
for iii=1:M
    for jjj=1:M
        Rt(iii,jjj)=rt(iii-jjj+M);
    end
end
Rt

[V,D]=eig(Rt);
D=abs(real((sum(D,1))));%按列相加再求实部
U=V; %所有的特征向量   

%=======寻找噪声子空间,找到P个信源对应的大特征值并把它清空再寻找次大的
for i=1:N
    [temp,index]=max(D);%找出特征向量中的max
    D(index)=[];        %将其置空
    U(:,index)=[];      %在特征矩阵中把最大特征向量对应的列特征向量置空
end



theta=-90:0.1:90;
for iiii=1:length(theta)
    a_theta=exp(j*2*pi*d/lamda*a*sin(theta(iiii)/180*pi));
    P(iiii)=10*log10(1/sum((abs(a_theta'*U)).^2));
end

figure(1);
plot(theta,P);grid on;
toc


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -