?? abdf.txt
字號:
% 標量陣最小均方準則(LMS)自適應波束形成器(ADBF)
close all;
Sound_velocity=1200; %聲速
Frequency=300; %信號頻率
Sample_Frequency=100*Frequency; %采樣頻率
Array_num=16; %陣元數
Array_distance=1/2*(Sound_velocity/Frequency); %陣元間距
Signal_Length=0.1; %信號長度100ms
SNR=0; %信噪比
INR=10; %干噪比
target=[60,20]; %tartet(1)為有用信號入射方向,target(2)為同頻干擾入射方向
angle=target.*pi/180;
%*********************************************************
% 有用信號
P=zeros(Array_num,Signal_Length*Sample_Frequency);
for i=1:Array_num
m=1;
for t=0:1/Sample_Frequency*(Signal_Length-1/Sample_Frequency)
P(i,m)=cos(2*pi*Frequency*(t-(i-1)*Array_distance*cos(angle(1))/Sound_velocity));
m=m+1;
end
end
%*********************************************************
% 干擾
P_int=zeros(Array_num,Signal_Length*Sample_Frequency);
for i=1:Array_num
m=1;
for t=0:1/Sample_Frequency*(Signal_Length-1/Sample_Frequency)
P_int(i,m)=cos(2*pi*Frequency*(t-(i-1)*Array_distance*cos(angle(2))/Sound_velocity));
m=m+1;
end
end
%*********************************************************
% 噪聲
P_noise=normrnd(0,1,Array_num,Signal_Length*Sample_Frequency);
b=fir1(300,[200/(Sample_Frequency/2),400/(Sample_Frequency/2)]);
P_noise=(filter(b,1,P_noise'))';
noise_var=mean(var(P_noise'));
temp=noise_var*10^(SNR/10);
temp=sqrt(1/(2*temp));
P=P/temp;
temp=noise_var*10^(INR/10);
temp=sqrt(1/(2*temp));
P_int=P_int/temp;
%*********************************************************
% 陣元接收信號
Pr=P+P_int+P_noise;
Pr=hilbert(P');%復信號
Pr=Pr';
% LMS波束形成
u=0.00001;
w=zeros(1,Array_num);
for i=1:Signal_Length*Sample_Frequency
y=w*Pr(:,i);
e(i)=P(1,i)-y;
w=w+u*conj(e(i))*Pr(:,i)';
end
for theta=0:1:179
phase=exp(-j*(Array_num-1))*(2*pi*Frequency*Array_distance*cos(theta*pi/180)/Sound_velocity);
y(theta+1)=sum((abs(w*phase')).^2);
end
y=y/max(y);
figure;
plot(0:179,10*log10(y),'r');xlabel('方位角(度)');title('波束形成輸出');grid on;
figure;
polar((0:179)*pi/180,y,'r');title('波束指向性');
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -