matlab 程序详解
R=zeros(M,M);fort=1:Nx=adt(t)*ad+a1t(t)*a1+a2t(t)*a2;R=R+x*x';endR=R/N;miu=1/(ad'*inv...
R=zeros(M,M);
for t=1:N
x=adt(t)*ad+a1t(t)*a1+a2t(t)*a2;
R=R+x*x';
end
R=R/N;
miu=1/(ad'*inv(R)*ad);
w=miu*inv(R)*ad;
for sita=0:pi/100:pi
for i=1:M
x_(i,1)=exp(j*(i-1)*pi*sin(sita));
end
y(1,v)=w'*x_;%加权,消除干扰
v=v+1;
end
y_max=max(y(:));
y_1=y/y_max;
y_db=20*log(y_1);
1:这段,我感觉需要详细的解释。
R=zeros(M,M); 这个是定义零矩阵吧?可是顶一下来的是个具体的什么模式啊?比如说
这样的,M行M列的矩阵吗?
对于我的俩个仿真来说,这个是都需要的吧?是不是就是可以不 深究?
2:x=adt(t)*ad+a1t(t)*a1+a2t(t)*a2;
这个是
R=R+x*x';,这个是什么意思啊?一个矩阵?加上x*x',是X和X的导数的乘积吗?得到的是新的矩阵码?还是什么啊?
miu=1/(ad'*inv(R)*ad);
w=miu*inv(R)*ad;
这俩个就是算法了吧?INV来说怎么用呢?inv是对矩阵R求逆?这俩句为什么这样啊?简单下来不就是W=1/AD吗?
Ad=
for sita=0:pi/100:pi %角度范围
for i=1:M %i为阵元代码吧?从1到M个
x_(i,1)=exp(j*(i-1)*pi*sin(sita));%这个就是那个上面的ad啊,
end
y(1,v)=w'*x_;%加权,消除干扰
v=v+1;%这个是不是对下一个信号的连续啊什么意思的啊?
end
这段开始赋值了,所有不同算法来说,这段是一样的吧?
附加原来程序全段参考:
clear
clc
format long;
v=1;
M=4;%阵元数
N=100;
f0=21*10^3;
omiga0=2*pi*f0;
sita0=0.6;%信号方向
for t=1:N
adt(t)=sin(omiga0*t/(N*f0));
end
for i=1:M
ad(i,1)=exp(j*(i-1)*pi*sin(sita0));
end
R=zeros(4,4);
r=zeros(4,1);
for t=1:N
x=adt(t)*ad;
R=R+x*x.';
end
R=R/N;
miu=1/(ad.'*inv(R)*ad);
w=miu*inv(R)*ad;
for sita=0:pi/100:pi/2
for i=1:M
a(i,1)=exp(j*(i-1)*pi*sin(sita));
end
y(1,v)=w.'*a;
v=v+1;
end
sita=0:pi/100:pi/2;
plot(sita,y)
xlabel('sita')
ylabel('天线增益’)
详解增分
R=R+x*x';,这个是什么意思啊?一个矩阵?加上x*x',是X和X的导数的乘积吗?得到的是新的矩阵码?还是什么啊?
miu=1/(ad'*inv(R)*ad);
w=miu*inv(R)*ad;
这俩个就是算法了吧?INV来说怎么用呢?inv是对矩阵R求逆?这俩句为什么这样啊?简单下来不就是W=1/AD吗?
这上面是上面意思啊?miu是不是就是一个算法的中间值啊?可是,我还是不是很理解啊? 展开
for t=1:N
x=adt(t)*ad+a1t(t)*a1+a2t(t)*a2;
R=R+x*x';
end
R=R/N;
miu=1/(ad'*inv(R)*ad);
w=miu*inv(R)*ad;
for sita=0:pi/100:pi
for i=1:M
x_(i,1)=exp(j*(i-1)*pi*sin(sita));
end
y(1,v)=w'*x_;%加权,消除干扰
v=v+1;
end
y_max=max(y(:));
y_1=y/y_max;
y_db=20*log(y_1);
1:这段,我感觉需要详细的解释。
R=zeros(M,M); 这个是定义零矩阵吧?可是顶一下来的是个具体的什么模式啊?比如说
这样的,M行M列的矩阵吗?
对于我的俩个仿真来说,这个是都需要的吧?是不是就是可以不 深究?
2:x=adt(t)*ad+a1t(t)*a1+a2t(t)*a2;
这个是
R=R+x*x';,这个是什么意思啊?一个矩阵?加上x*x',是X和X的导数的乘积吗?得到的是新的矩阵码?还是什么啊?
miu=1/(ad'*inv(R)*ad);
w=miu*inv(R)*ad;
这俩个就是算法了吧?INV来说怎么用呢?inv是对矩阵R求逆?这俩句为什么这样啊?简单下来不就是W=1/AD吗?
Ad=
for sita=0:pi/100:pi %角度范围
for i=1:M %i为阵元代码吧?从1到M个
x_(i,1)=exp(j*(i-1)*pi*sin(sita));%这个就是那个上面的ad啊,
end
y(1,v)=w'*x_;%加权,消除干扰
v=v+1;%这个是不是对下一个信号的连续啊什么意思的啊?
end
这段开始赋值了,所有不同算法来说,这段是一样的吧?
附加原来程序全段参考:
clear
clc
format long;
v=1;
M=4;%阵元数
N=100;
f0=21*10^3;
omiga0=2*pi*f0;
sita0=0.6;%信号方向
for t=1:N
adt(t)=sin(omiga0*t/(N*f0));
end
for i=1:M
ad(i,1)=exp(j*(i-1)*pi*sin(sita0));
end
R=zeros(4,4);
r=zeros(4,1);
for t=1:N
x=adt(t)*ad;
R=R+x*x.';
end
R=R/N;
miu=1/(ad.'*inv(R)*ad);
w=miu*inv(R)*ad;
for sita=0:pi/100:pi/2
for i=1:M
a(i,1)=exp(j*(i-1)*pi*sin(sita));
end
y(1,v)=w.'*a;
v=v+1;
end
sita=0:pi/100:pi/2;
plot(sita,y)
xlabel('sita')
ylabel('天线增益’)
详解增分
R=R+x*x';,这个是什么意思啊?一个矩阵?加上x*x',是X和X的导数的乘积吗?得到的是新的矩阵码?还是什么啊?
miu=1/(ad'*inv(R)*ad);
w=miu*inv(R)*ad;
这俩个就是算法了吧?INV来说怎么用呢?inv是对矩阵R求逆?这俩句为什么这样啊?简单下来不就是W=1/AD吗?
这上面是上面意思啊?miu是不是就是一个算法的中间值啊?可是,我还是不是很理解啊? 展开
2个回答
展开全部
1 x'-- x的转置矩阵
x*x'的结果是矩阵或数值,由x的维数(x若为向量,维数就是其长度)决定
2 inv 求逆矩阵。
miu=1/(ad'*inv(R)*ad);
既然程序没有报错,那么(ad'*inv(R)*ad)就是一个数值,而
w = miu*inv(R)*ad = 1/(ad'*inv(R)*ad) * inv(R)*ad 是矩阵运算,
不能按照代数四则运算进行简单的“约分”。
3 y(1,v)=w.'*a;
v=v+1; 这是为了记录向量y,v表示当前值在向量中的位置。算完这一个后,位置向后移动,从v到(v+1),继续循环,算出的y值就记录在(v+1)位置处
x*x'的结果是矩阵或数值,由x的维数(x若为向量,维数就是其长度)决定
2 inv 求逆矩阵。
miu=1/(ad'*inv(R)*ad);
既然程序没有报错,那么(ad'*inv(R)*ad)就是一个数值,而
w = miu*inv(R)*ad = 1/(ad'*inv(R)*ad) * inv(R)*ad 是矩阵运算,
不能按照代数四则运算进行简单的“约分”。
3 y(1,v)=w.'*a;
v=v+1; 这是为了记录向量y,v表示当前值在向量中的位置。算完这一个后,位置向后移动,从v到(v+1),继续循环,算出的y值就记录在(v+1)位置处
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询