您现在的位置:首页 >> ★免费资源 >> 源码下载 >> 内容

MATLAB代做-python代做-FPGA代做-均匀线阵列波束形成

时间:2019-5-26 0:54:23 点击:

  核心提示:MATLAB代做-python代做-FPGA代做-均匀线阵列波束形成 ...
%%  均匀线阵列波束形成   

clear;
clc;
close all;


% 相关参数设置
c=1500;                                           %声速,单位m
d=0.15;                                           %阵元间距,单位m
wave_length=0.3;                                  %波长,单位是m
signal_f=c/wave_length;                           %信号的中心频率
fp=[3000 7000];                                   %信号的通带起始频率是3000hz,截止频率是7000hz
f=5000 ;                                          
fs=20000;                                         %设定采样频率为20khz
signal_num=1;                                     %信号数
array_num=32;                                     %阵元个数
signal_direction=50*pi/180;                       %信号方向
snr=-23;                                           %信噪比,分别为6dB,0dB,-6dB
sample_time=0.2048;                               %采样时间
N=fs*sample_time;                                 %采样点数
beam_num=91;                                      %要产生的波束个数


%产生带限白噪声,带宽为3KHz--7KHz

%产生白噪声,目标信号的源信号
signal=randn(N,1);                              
nfftss = 2^nextpow2(length(signal));
Pss = abs(fft(signal,nfftss)).^2/length(signal)/fs;
figure(1);
signal_ss = dspdata.psd(Pss(1:length(Pss)/2),'Fs',fs);  
plot(signal_ss); 
title('源信号的功率谱密度(白噪声)');


%设计FIR带通滤波器

wp=fp/fs*2;                                      %数字频率
[b,a]=fir1(50,wp);                               %用FIR1型滤波器
[h,f_filter]=freqz(b,a,N);
F=f_filter*fs/2/pi;
figure(2);                                       %画出滤波器的频谱图
plot(F,20*log10(abs(h))); 
title('带通滤波器');

%产生目标信号,并画出功率谱密度函数:
x=filter(b,a,signal);                            %信号经过滤波器
Hs=spectrum.periodogram;
figure(3);
psd(Hs,x,'Fs',fs)
title('未加入噪声的带通信号的功率谱密度');

%加入高斯白噪声,使得信噪比为snr

  y=x';
  chh=wgn(array_num,N+2000,0);
  power_y=y*(conj(y))'/length(y);
  power_n=power_y/10^(snr/10);
  power_0=zeros(1,array_num);
  del=zeros(1,array_num);
  for kk=1:array_num
      power_0(kk)=chh(kk,:)*(chh(kk,:))'/(N+2000);
      del(kk)=sqrt(power_n/power_0(kk));
  end
  delt=diag(del);
  ch1=delt*chh ;


%产生阵列信号,将信号放在第1000点开始

real_delay=d*cos(signal_direction)/c*fs;
for M=1:array_num;
        nnM=round((real_delay)*(M-1));
        ch1(M,nnM+1+1000:nnM+N+1000)=y+ch1(M,nnM+1+1000:nnM+N+1000);
end


%在时域上进行波束形成               

thetan=pi/(beam_num-1);                      %每个波束扫描的角度                      
theta1=0:thetan:pi;
t_delay=d*cos(theta1)/c;
nt=t_delay*fs;                               %每个扫描角度对应的延迟数
P=zeros(1,beam_num);
pbeamout=zeros(beam_num,N);
for i=1:beam_num;
    for j=1:array_num;
        ntj=round(nt(i)*(j-1));
        pbeamout(i,:)=pbeamout(i,:)+ch1(j,ntj+1+1000:ntj+N+1000);
    end
    P(i)=pbeamout(i,:)*pbeamout(i,:)'/N;
end
P=P/max(P);                                 %对信号功率进行归一化处理

figure(4);
plot(theta1*180/pi,P);                      %在直角坐标系上画出指向性图
title('直角坐标下的指向性图');
xlabel('角度');
ylabel('幅度');

figure(5);
polar(theta1,P);                            %在极坐标中画出指向性图
title('极坐标下的指向性图');

联系:highspeedlogic

QQ :1224848052

微信:HuangL1121

邮箱:1224848052@qq.com

网站:http://www.mat7lab.com/

网站:http://www.hslogic.com/

微信扫一扫:

作者:均匀线阵列波束 来源:均匀线阵列波束
  • 您是如何找到本站的?
  • 百度搜索
  • Google搜索
  • 查阅资料过程中
  • 论坛发现
  • 百度贴吧发现
  • 朋友介绍
本站最新成功开发工程项目案例
相关文章
  • 没有相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
  • matlab代做|matlab专业代做|matlab淘宝代做(www.hslogic.com) © 2019 版权所有 All Rights Reserved.
  • Email:highspeed_logic@163.com 站长QQ: 1224848052

    专业代做/代写/承接、MATLAB、SIMULINK、FPGA项目、博士/硕士/本科毕业设计、课题设计、论文,毕业论文,Coursework、Eassy、Assignment