急求:用MATLAB做个仿真题目是:零向波束形成器的研究与仿真 老师要做毕业论文!!谢谢!

急求:用MATLAB做个仿真题目是:零向波束形成器的研究与仿真 老师要做毕业论文!!谢谢!,第1张

出售与定制Matlab毕业设计和课程设计或者文献翻译,成品部分罗列>

括概率与随机变量、随机过程、随机变量与随机过程在信号处理和通信中的应用三部分。通过大量内容来支撑和扩展本书重点,用600多个实例和MATLAB来增强和阐明随机量的特征和特性,翔实的统计数据将经典的贝叶斯估计和一些最优性准则用于参数估计技术。最后着重阐述了随机过程与系统在通信系统和信息理论、最优滤波(维纳滤波和卡尔曼滤波)、自适应滤波(FIR和IIR)、天线波束形成、信道均衡和测向中

你这里有两个程序,第二个程序与第一个实质上是一样的,区别就是信号与导向矢量的写法有点不同,这里我就不注释了。还有,我下面附了一段我自己的写的程序,里面有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做个仿真 题目是:零向波束形成器的研究与仿真 老师要做毕业论文!!谢谢!全部的内容,包括:急求:用MATLAB做个仿真 题目是:零向波束形成器的研究与仿真 老师要做毕业论文!!谢谢!、doa跟踪matlab仿真时怎么获取阵列接收信号、概率,随机变量和随机过程在信号处理中的应用需要哪些知识等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存