matlab程序画图

matlab程序画图,第1张

是这样的,如果你再程序开始添加holdon这个的画,表示这之后的每一次作图都保留以前的图,这样就可以连续画图了

反之holdoff,表示打开这个之后,每次画图,删除以前的图,

你这里有两个程序,第二个程序与第一个实质上是一样的,区别就是信号与导向矢量的写法有点不同,这里我就不注释了。还有,我下面附了一段我自己的写的程序,里面有SIM算法。G-S正交化算法等。是基于圆阵形式的,你的算法是基于线阵的,他们程序上的区别在于导向矢量的不同。我的算法是某项目中的,保证好使。建议学习波束形成技术,注意把程序分块,例如分成,求导向矢量;最优权值;形成波束等等。

程序如下:

4单元均匀线阵自适应波束形成图

clear

clc

format long;

v=1;

M=4;

N=1000;%%%%%%%快拍数

f0=2110^3;%%%%%%%%%%%信号与干扰的频率

f1=1110^3;

f2=1510^3;

omiga0=2pif0;%%%%%%%信号与干扰的角频率

omiga1=2pif1;

omiga2=2pif2;

sita0=08; %信号方向

sita1=04; %干扰方向1

sita2=21; %干扰方向2

for t=1:N %%%%%%%%%%%%信号

adt(t)=sin(omiga0t/(Nf0));

a1t(t)=sin(omiga1t/(Nf1));

a2t(t)=sin(omiga2t/(Nf2));

end

for i=1:M %%%%%%%%%%%%信号的导向矢量:线阵的形式

ad(i,1)=exp(j(i-1)pisin(sita0));

a1(i,1)=exp(j(i-1)pisin(sita1));

a2(i,1)=exp(j(i-1)pisin(sita2));

end

R=zeros(M,M);

for t=1:N

x=adt(t)ad+a1t(t)a1+a2t(t)a2; %阵列对信号的完整响应

R=R+xx';%信号的协方差矩阵

end

R=R/N;%%%%%%%%%协方差矩阵,所有快拍数的平均

miu=1/(ad'inv(R)ad);%%%%%%这个貌似是LMS算法的公式,具体我记不太清,这里是求最优权值,根据这个公式求出,然后加权

w=miuinv(R)ad;

%%%%%%形成波束%%%%%%%%%%%%%%%%%%%

for sita=0:pi/100:pi

for i=1:M

x_(i,1)=exp(j(i-1)pisin(sita));

end

y(1,v)=w'x_;%%%%%%%对信号进行加权,消除干扰

v=v+1;

end

y_max=max(y(:));%%%%%%%%%%%%%%%归一化

y_1=y/y_max;

y_db=20log(y_1);

sita=0:pi/100:pi;

plot(sita,y)

Xlabel(‘sitaa’)

Ylabel(‘天线增益db’)

4单元均匀线阵自适应波束形成

目标

clear

clc

format long;

v=1;

M=4;阵元数

N=100;

f0=2110^3;

omiga0=2pif0;

sita0=06;%信号方向

for t=1:N

adt(t)=sin(omiga0t/(Nf0));

end

for i=1:M

ad(i,1)=exp(j(i-1)pisin(sita0));

end

R=zeros(4,4);

r=zeros(4,1);

for t=1:N

x=adt(t)ad;

R=R+xx';

end

R=R/N;

miu=1/(ad'inv(R)ad);

w=miuinv(R)ad;

for sita=0:pi/100:pi/2

for i=1:M

a(i,1)=exp(j(i-1)pisin(sita));

end

y(1,v)=w'a;

v=v+1;

end

sita=0:pi/100:pi/2;

plot(sita,y)

xlabel('sita')

ylabel('天线增益’)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%我的程序%%%%%%%%%%%%%%%

function jieshousignal

%期望信号数:1个

%干扰信号数:4个

%信噪比已知

%干燥比已知

%方位角已知

clc;

clear all;

close all;

%//参数设置===========================================

1=0;

2=0;

3=0;

% for rrr=1:16000

signal_num=1; %signal number

noise_num=5; %interference number

R0=06; %圆的半径

SP=2000; %Sample number

N=8; %阵元数

snr=-10; %Signal-to-Noise

sir1=10; %Signal-to-Interference one

sir2=10; %Signal-to-Interference two

sir3=10; %Signal-to-Interf

sir4=10;

sir5=10;

%//================noise Power-to-signal Power====================

factor_noise_1=10^(-sir1/10);

factor_noise_2=10^(-sir2/10);

factor_noise_3=10^(-sir3/10);

factor_noise_4=10^(-sir4/10);

factor_noise_5=10^(-sir5/10);

factor_noise_targe=10^(-snr/10);

% //======================== ===============

d1=85pi/180;%%干扰1的方位角

d2=100pi/180;%干扰2的方位角

d3=147pi/180;%干扰3的方位角

d4=200pi/180;%干扰4的方位角

d5=250pi/180;%干扰5的方位角

d6=150pi/180;%目标的方位角

e1=15pi/180;%%干扰1的俯仰角

e2=25pi/180;%干扰2的俯仰角

e3=85pi/180;%干扰3的俯仰角

e4=50pi/180;%干扰4的俯仰角

e5=70pi/180;%干扰5的俯仰角

e6=85pi/180;%目标的俯仰角

% //====================目标信号==========================

t=1:1:SP;

fc=2e7;

Ts=1/(3e10);

S0=5cos(2pifctTs);%目标信号

for kk=1:N

phi_n(kk)=2pi(kk-1)/N;

end

%//==================== *** 纵矢量==========================================

A=[conj(exp(j2piR0cos(d6-phi_n)sin(e6)));conj(exp(j2piR0cos(d1-phi_n)sin(e1)));conj(exp(j2piR0cos(d2-phi_n)sin(e2)));conj(exp(j2piR0cos(d3-phi_n)sin(e3)));conj(exp(j2piR0cos(d4-phi_n)sin(e4)));conj(exp(j2piR0cos(d5-phi_n)sin(e5)))]';

A1=[conj(exp(j2piR0cos(d1-phi_n)sin(e1)));conj(exp(j2piR0cos(d2-phi_n)sin(e2)));conj(exp(j2piR0cos(d3-phi_n)sin(e3)));conj(exp(j2piR0cos(d4-phi_n)sin(e4)));conj(exp(j2piR0cos(d5-phi_n)sin(e5)))]';

% //==========================================================Power of the interference

% // depending on the signal power and SIR

Ps1=0;

Ps2=0;

Ps3=0;

Ps4=0;

Ps5=0;

S1=zeros(1,SP);

S2=zeros(1,SP);

S3=zeros(1,SP);

S4=zeros(1,SP);

S5=zeros(1,SP);

Ps0=S0S0'/SP; % signal power

Ps1=Ps0factor_noise_1;

Ps2=Ps0factor_noise_2;

Ps3=Ps0factor_noise_3;

Ps4=Ps0factor_noise_4;

Ps5=Ps0factor_noise_5;

% //==========================干扰信号的随机包络=========================

S1=normrnd(0,sqrt(Ps1/2),1,SP)+jnormrnd(0,sqrt(Ps1/2),1,SP);

S2=normrnd(0,sqrt(Ps2/2),1,SP)+jnormrnd(0,sqrt(Ps2/2),1,SP);

S3=normrnd(0,sqrt(Ps3/2),1,SP)+jnormrnd(0,sqrt(Ps3/2),1,SP);

S4=normrnd(0,sqrt(Ps4/2),1,SP)+jnormrnd(0,sqrt(Ps4/2),1,SP);

S5=normrnd(0,sqrt(Ps5/2),1,SP)+jnormrnd(0,sqrt(Ps5/2),1,SP);

%//

S=[S0;S1;S2;S3;S4;S5];

SS1=[S1;S2;S3;S4;S5];

X=AS;%信号加干扰

XX2=A1SS1; %接收到的干扰

Pw_noise=sqrt(Ps0factor_noise_targe/2);

a1=randn(N,SP);

a2=randn(N,SP);

a1=a1/norm(a1);

a2=a2/norm(a2);

W=Pw_noise(a1+sqrt(-1)a2);

X=X+W;

% //--------------------------SMI算法----------------------------------------

Rd=XS0'/SP;

R=XX'/(SP1);

Wc_SMI=pinv(R)Rd/(Rd'pinv(R)Rd);%权向量

Wc_SMI=Wc_SMI/norm(Wc_SMI);

Y_SMI=Wc_SMI'X; %SMI算法恢复出来的信号

%//-------------------------------------GS算法------------------

m=1;

for i=1:400:2000

X2(:,m)=XX2(:,i);

m=m+1;

end

a=zeros(1,8);

phi_n=zeros(1,8);

phi=0:pi/180:2pi;

theta=0:pi/180:pi/2;

for kk=1:8

a(kk)=1;

phi_n(kk)=2pi(kk-1)/8;

end

x1=zeros(1,8);

x2=zeros(1,8);

x3=zeros(1,8);

x4=zeros(1,8);

x5=zeros(1,8);

x1=X2(:,1)';

x2=X2(:,2)';

x3=X2(:,3)';

x4=X2(:,4)';

x5=X2(:,5)';

Z1=x1;

Z1_inner_product=Z1conj(Z1);

Z1_mode=sqrt(sum(Z1_inner_product));

Y1=Z1/Z1_mode;

Inner_product=sum(x2conj(Y1));

Z2=x2-Inner_productY1;

Z2_inner_product=sum(Z2conj(Z2));

Z2_mode=sqrt(Z2_inner_product);

Y2=Z2/Z2_mode;

Inner_product1=sum(x3conj(Y1));

Inner_product2=sum(x3conj(Y2));

Z3=x3-Inner_product1Y1-Inner_product2Y2;

Z3_inner_product=sum(Z3conj(Z3));

Z3_mode=sqrt(Z3_inner_product);

Y3=Z3/Z3_mode;

Inner_product1_0=sum(x4conj(Y1));

Inner_product2_0=sum(x4conj(Y2));

Inner_product3_0=sum(x4conj(Y3));

Z4=x4-Inner_product1_0Y1-Inner_product2_0Y2-Inner_product3_0Y3;

Z4_inner_product=sum(Z4conj(Z4));

Z4_mode=sqrt(Z4_inner_product);

Y4=Z4/Z4_mode;

Inner_product1_1=sum(x5conj(Y1));

Inner_product2_1=sum(x5conj(Y2));

Inner_product3_1=sum(x5conj(Y3));

Inner_product4_1=sum(x5conj(Y4));

Z5=x5-Inner_product1_1Y1-Inner_product2_1Y2-Inner_product3_1Y3-Inner_product4_1Y4;

Z5_inner_product=sum(Z5conj(Z5));

Z5_mode=sqrt(Z5_inner_product);

Y5=Z5/Z5_mode;

%Y1

%Y2

%Y3

%Y4

%Y5

w0=zeros(1,8);

w=zeros(1,8);

for mm=1:8;

w0(mm)=exp(-j2piR0cos(d6-phi_n(mm))sin(e6));

end

dd1=sum(w0conj(Y1))Y1;

dd2=sum(w0conj(Y2))Y2;

dd3=sum(w0conj(Y3))Y3;

dd4=sum(w0conj(Y4))Y4;

dd5=sum(w0conj(Y5))Y5;

w=w0-dd1-dd2-dd3-dd4-dd5;

Wc_GS=w;

Wc_GS=Wc_GS/(norm(Wc_GS));

Y_GS=Wc_GSX; %GS算法恢复出来的图像

%//----------------------------------MMSE算法-----------------------

Rd=XS0'/SP;

R=XX'/(SP1);

Wc_MMSE=pinv(R)Rd;

Wc_MMSE=Wc_MMSE/norm(Wc_MMSE);

Y_MMSE=Wc_MMSE'X; %MMSE算法恢复出来的信号

S0=S0/norm(S0);

Y_GS=Y_GS/norm(Y_GS);

Y_SMI=Y_SMI/norm(Y_SMI);

Y_MMSE=Y_MMSE/norm(Y_MMSE);

% figure(1)

% plot(real(S0));

% title('原始信号');

% xlabel('采样快拍数');

% ylabel('信号幅度');

% figure(2)

% plot(real(Y_SMI));

% title('运用SMI算法处理出的信号');

% xlabel('采样快拍数');

% ylabel('信号幅度');

% figure(3)

% plot(real(Y_GS));

% title('运用G-S算法处理出的信号');

% xlabel('采样快拍数');

% ylabel('信号幅度');

% figure(4)

% plot(real(Y_MMSE));

% for i=1:SP

% ss(i)=abs(S0(i)-Y_SMI(i))^2;

% end

% q_1=mean(ss);

% for i=1:SP

% ss1(i)=abs(S0(i)-Y_GS(i))^2;

% end

% q_2=mean(ss1);

% for i=1:SP

% ss2(i)=abs(S0(i)-Y_MMSE(i))^2;

% end

% q_3=mean(ss2);

%

% 1=1+q_1;

% 2=2+q_2;

% 3=3+q_3;

% end

% 1/16000

% 2/16000

% 3/16000

phi=0:pi/180:2pi;

theta=0:pi/180:pi/2;

%

% % //------------------------ 形成波束-----------------------------------------

F_mmse=zeros(91,361);

F_smi=zeros(91,361);

F_gs=zeros(91,361);

for mm=1:91

for nn=1:361

p1=sin(theta(mm));

p2=cos(phi(nn));

p3=sin(phi(nn));

q1=sin(e6);

q2=cos(d6);

q3=sin(d6);

for hh=1:8

w1=cos(phi_n(hh));

w2=sin(phi_n(hh));

zz1=q2w1+q3w2;

zz2=p2w1+p3w2;

zz=zz2p1-zz1q1;

F_mmse(mm,nn)= F_mmse(mm,nn)+conj(Wc_MMSE(hh))(exp(j2piR0(zz2p1)));

F_smi(mm,nn)=F_smi(mm,nn)+conj(Wc_SMI(hh))(exp(j2piR0(zz2p1)));

F_gs(mm,nn)=F_gs(mm,nn)+conj((Wc_GS(hh))')(exp(j2piR0(zz2p1)));

end

end

end

F_MMSE=abs(F_mmse);

F_SMI=abs(F_smi);

F_GS=abs(F_gs);

figure(5)

mesh(20log10(F_MMSE))

figure(6)

mesh(20log10(F_SMI))

title('SMI算法波束形成图');

xlabel('方位角');

ylabel('俯仰角');

zlabel('幅度/dB');

figure(7)

mesh(20log10(F_GS))

title('G-S算法波束形成图');

xlabel('方位角');

ylabel('俯仰角');

zlabel('幅度/dB');

要将电路的状态方程写入Matlab程序并产生数据,需要按照以下步骤进行 *** 作:

1 确定电路的状态方程:电路的状态方程描述了电路中各个元件的状态随时间变化的关系,通常是一组微分方程。根据电路的拓扑结构和元件特性,可以推导出电路的状态方程。

2 将状态方程转化为矩阵形式:将状态方程转化为矩阵形式,可以方便地在Matlab中进行计算。通常需要用到矩阵运算和微分方程求解方法。

3 编写Matlab程序:根据状态方程和矩阵形式,编写Matlab程序来求解电路的状态随时间的变化。程序中需要包括对初始条件的设定、微分方程求解方法的选择、时间步长的设置等。

4 运行程序并可视化数据:运行Matlab程序,得到电路状态随时间的变化数据。可以将数据可视化,比如绘制电路各个节点的电压随时间的变化曲线,来更直观地观察电路的动态响应。

总之,将电路的状态方程写入Matlab程序并产生数据需要深入了解电路的拓扑结构和元件特性,掌握矩阵运算和微分方程求解方法,以及熟悉Matlab编程技巧。

以上就是关于matlab程序画图全部的内容,包括:matlab程序画图、MATLAB 程序详解(关于波束形成)、如何将电路的状态方程写入matlab程序产生数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10115800.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存