close all
clear all

%%波束形成
f=[4000,5000,6000];%信号频率,单位Hz
w=[1,1,1,1,1;%每一行表示一种加权
    1,2,4,2,1;
    4,2,1,2,4];
fs=4*f;%采样频率取信号频率的4倍
T=0.1;%信号长度,单位s
N=T*fs;%采样点数
c=1500;%声速,m/s
d=0.15;%阵元间距,单位m
jay=sqrt(-1);%复单位
theta=-90:1:90;%观测角度范围,单位度
tao=d*sin(pi*theta/180)/c;%相邻阵元时延
xx=zeros(3,2400);%准备产生三种频率下的参考信号

for i=1:3
    xx(i,1:N(i))=exp(jay*(2*pi*f(i)/fs(i)*(0:N(i)-1)));%三种频率下的参考信号
end

for j=1:3%三种频率循环
    for i=1:length(tao)%不同角度循环
        for k=(j-1)*5+1:(j-1)*5+5%第一种频率下的五个阵元的信号
            x(k,:)=xx(j,:)*exp(-jay*2*pi*f(j)*(k-1)*tao(i));
        end
        r=x((j-1)*5+1:(j-1)*5+5,:)*x((j-1)*5+1:(j-1)*5+5,:)'/N(j);%求某一角度下的波束图,用公式B=w*(∑x*x')*w'/N.
        B((j-1)*3+1,i)=w(1,:)*r*w(1,:)';%第j个频率下的第一种加权的波束图输出
        B((j-1)*3+2,i)=w(2,:)*r*w(2,:)';%第j个频率下的第二种加权的波束图输出
        B((j-1)*3+3,i)=w(3,:)*r*w(3,:)';%第j个频率下的第三种加权的波束图输出
    end
end
%c产生的举证B表示B=[B11;B12;B13;B21;B22;B23;B31;B32;B33];第一个下角标表示第几个频率,第二个下角标表示第几种加权而得到的波束
for k=1:9%分别对9个波束图进行归一化和取对数
    B(k,:)=real(B(k,:))/max(real(B(k,:)));%归一化
    B(k,:)=20*log10(B(k,:));%取对数
end
figure(1);%频率f=4000,加权不同
subplot(3,1,1);
plot(theta,B(1,:));axis([-90 90 -60 0]);title('频率f=4000,加权[1,1,1,1,1]');xlabel('角度/°');ylabel('波束图/dB');
subplot(3,1,2);
plot(theta,B(2,:));axis([-90 90 -60 0]);title('频率f=4000,加权[1,2,4,2,1]');xlabel('角度/°');ylabel('波束图/dB');
subplot(3,1,3);
plot(theta,B(3,:));axis([-90 90 -60 0]);title('频率f=4000,加权[4,2,1,2,4]');xlabel('角度/°');ylabel('波束图/dB');

figure(2);%频率f=5000,加权不同
subplot(3,1,1);
plot(theta,B(4,:));axis([-90 90 -60 0]);title('频率f=5000,加权[1,1,1,1,1]');xlabel('角度/°');ylabel('波束图/dB');
subplot(3,1,2);
plot(theta,B(5,:));axis([-90 90 -60 0]);title('频率f=5000,加权[1,2,4,2,1]');xlabel('角度/°');ylabel('波束图/dB');
subplot(3,1,3);
plot(theta,B(6,:));axis([-90 90 -60 0]);title('频率f=5000,加权[4,2,1,2,4]');xlabel('角度/°');ylabel('波束图/dB');

figure(3);%频率f=6000,加权不同
subplot(3,1,1);
plot(theta,B(7,:));axis([-90 90 -60 0]);title('频率f=6000,加权[1,1,1,1,1]');xlabel('角度/°');ylabel('波束图/dB');
subplot(3,1,2);
plot(theta,B(8,:));axis([-90 90 -60 0]);title('频率f=6000,加权[1,2,4,2,1]');xlabel('角度/°');ylabel('波束图/dB');
subplot(3,1,3);
plot(theta,B(9,:));axis([-90 90 -60 0]);title('频率f=6000,加权[4,2,1,2,4]');xlabel('角度/°');ylabel('波束图/dB');

figure(4);%加权[1,1,1,1,1],频率不同
subplot(3,1,1);
plot(theta,B(1,:));axis([-90 90 -60 0]);title('频率f=4000,加权[1,1,1,1,1]');xlabel('角度/°');ylabel('波束图/dB');
subplot(3,1,2);
plot(theta,B(4,:));axis([-90 90 -60 0]);title('频率f=5000,加权[1,1,1,1,1]');xlabel('角度/°');ylabel('波束图/dB');
subplot(3,1,3);
plot(theta,B(7,:));axis([-90 90 -60 0]);title('频率f=6000,加权[1,1,1,1,1]');xlabel('角度/°');ylabel('波束图/dB');

figure(5);%加权[1,2,4,2,1],频率不同
subplot(3,1,1);
plot(theta,B(2,:));axis([-90 90 -60 0]);title('频率f=4000,加权[1,2,4,2,1]');xlabel('角度/°');ylabel('波束图/dB');
subplot(3,1,2);
plot(theta,B(5,:));axis([-90 90 -60 0]);title('频率f=5000,加权[1,2,4,2,1]');xlabel('角度/°');ylabel('波束图/dB');
subplot(3,1,3);
plot(theta,B(8,:));axis([-90 90 -60 0]);title('频率f=6000,加权[1,2,4,2,1]');xlabel('角度/°');ylabel('波束图/dB');

figure(6);%加权[4,2,1,2,4],频率不同
subplot(3,1,1);
plot(theta,B(3,:));axis([-90 90 -60 0]);title('频率f=4000,加权[4,2,1,2,4]');xlabel('角度/°');ylabel('波束图/dB');
subplot(3,1,2);
plot(theta,B(6,:));axis([-90 90 -60 0]);title('频率f=5000,加权[4,2,1,2,4]');xlabel('角度/°');ylabel('波束图/dB');
subplot(3,1,3);
plot(theta,B(9,:));axis([-90 90 -60 0]);title('频率f=6000,加权[4,2,1,2,4]');xlabel('角度/°');ylabel('波束图/dB');

%计算主瓣宽度D和旁瓣级P
for k=1:9
    [i,j]=find(abs(B(k,:)+3)<0.5);%误差限设在0.5dB。
    D(k)=(j(length(j))-j(1))*1;%每一个点之间是一度
end    %根据计算D的结果可以发现,同一种频率下三种加权分辨率最高的是第三种,其次是第一种。同一加权下,频率越高,分辨率越高
disp('9个波束图的参数依次为,其中分别表示:');
disp('f=4000,w=[1,1,1,1,1];f=4000,w=[1,2,4,2,1];f=4000,w=[4,2,1,2,4]');
disp('f=5000,w=[1,1,1,1,1];f=5000,w=[1,2,4,2,1];f=5000,w=[4,2,1,2,4]');
disp('f=6000,w=[1,1,1,1,1];f=6000,w=[1,2,4,2,1];f=6000,w=[4,2,1,2,4]');
disp('波束宽度为:');
ss=sprintf('%d ',D);
disp(ss);
NN=length(theta);%每一个波束图离散的点数
for k=1:9
    for i=(NN-1)/2+1:NN-1%从主波束开始往后找到第一个次级大的位置
        if B(k,i)>=B(k,i+1)&&B(k,i)>=B(k,i-1)
            CC(k)=B(k,i);%记录第一个次级大的分贝数
        end
    end
end
CC(2)=B(2,1);CC(5)=B(5,1);%由于在[-90,90]度的范围内,第二种和第五种情况下没有找到次级大,故用它在-90°的地方分贝数近似。
disp('旁絆级为:');
s=sprintf('%f ',CC);
disp(s);

基于MATLAB的波速形成仿真相关推荐

  1. MATLAB异步风电机组,基于MATLAB的定速风电机组仿真

    <基于MATLAB的定速风电机组仿真>由会员分享,可在线阅读,更多相关<基于MATLAB的定速风电机组仿真(22页珍藏版)>请在人人文库网上搜索. 1.基于MATLAB的定速风 ...

  2. 基于matlab的升压斩波实验,基于MATLAB的升压斩波电路的仿真_贾立柱

    科技专论 基于MATLAB的升压斩波电路的仿真 贾立柱1 刘晓龙2 1.齐齐哈尔大学网络信息中心 黑龙江齐齐哈尔 161006 2.华北电力大学 北京 102206 [摘 要]升压斩波电路是电力电子技 ...

  3. 汽车动力性仿真matlab程序,汽车理论课程设计:基于Matlab的汽车动力性的仿真

    汽车理论课程设计:基于Matlab的汽车动力性的仿真 2009 届届 汽车工程系汽车工程系 汽汽 车车 理理 论论 课课 程程 设设 计计 题题 目目 汽车动力性的仿真 学学 院院 机 电 工 程 学 ...

  4. matlab仿真炉温控制,基于MATLAB的炉温控制系统的仿真.doc

    PAGE 11 PAGE 11 控制系统仿真 课程大作业 题目: 基于MATLAB的炉温控制系统的仿真 院系名称: 电气工程学院 专业班级: 自动F0904 学生姓名: 学号: 指导教师: 教师职称: ...

  5. matlab模拟角度调制系统的仿真与设计,基于Matlab的模拟通信系统的仿真设计

    <基于Matlab的模拟通信系统的仿真设计>由会员分享,可在线阅读,更多相关<基于Matlab的模拟通信系统的仿真设计(25页珍藏版)>请在人人文库网上搜索. 1.目录摘要-第 ...

  6. matlab频分复用,基于MATLAB的频分复用系统的仿真_.doc

    基于MATLAB的频分复用系统的仿真_ 基于MATLAB的频分复用系统的仿真_毕业论文(设计) Abstract With the development of communication techn ...

  7. matlab故障识别,基于Matlab的电力系统故障分析与仿真(V2.1)最新版

    <基于Matlab的电力系统故障分析与仿真.doc>由会员分享,可免费在线阅读全文,更多与<基于Matlab的电力系统故障分析与仿真(V2.1)>相关文档资源请在帮帮文库(ww ...

  8. matlab非线性系统频域标识,基于MATLAB的最小二乘法系统辨识与仿真

    第 29卷 第 2期 许昌学院学报 Vol. 29. No. 2 2010年 3月 JOURNAL OF XUCHANG UN IVERSITY Mar. 2010 收稿日期: 2008 - 10 - ...

  9. 正交db小波 图像处理 matlab,基于matlab小波工具箱的数字图像处理及小波分析

    基于matlab小波工具箱的数字图像处理及小波分析 基于 Matlab 小波工具箱的数字图像处理摘要:小波分析在图像处理中有非常重要的应用,包括图像压缩.去噪.分解和增强等.运用多分辨率分析可以将信号 ...

最新文章

  1. .N“.NET研究”ET中的异步编程(二)- 传统的异步编程
  2. 对称加密算法_技术分享丨这是一篇简单的小科普——什么是对称加密算法?(下)...
  3. QString和char *的相互转换
  4. JVM 堆内存溢出后,其他线程是否可继续工作?
  5. 深入浅出的webpack构建工具---PostCss(五)
  6. vlan绑定_图文并茂深入了解VLAN工作原理,不能错过干货
  7. CS231n Convolutional Neural Networks for Visual Recognition------Numpy Tutorial
  8. pthread_join()函数理解
  9. POJ 1003 解题报告
  10. 信息学奥赛一本通(2063:【例1.4】牛吃牧草)
  11. 在系统二进制文件中检测到错误_门禁管理系统施工中常见的布线错误
  12. 结对编程:黄金分割游戏
  13. 【转】自学成才秘籍!机器学习深度学习经典资料汇总
  14. python硬件编程_Python学习日记_《Python硬件编程实战》笔记_Mr_Ouyang
  15. 2014年国际IT外包10大事件
  16. matlab 2014a安装方法以及解决打包失败的问题
  17. 功率放大器和匹配网络学习
  18. 读书笔记之大数据采集与预处理
  19. iozone磁盘读写测试工具的使用以及命令详解、下载(网站最详细讲解步骤)
  20. 华为云-- 消息通知服务(SMN)

热门文章

  1. MyBatis简介与配置MyBatis+Spring+MySql
  2. 正确理解RESET类型的INPUT控件实现重置效果的机制
  3. Accent-Insensitive, Accent Sensitive, a ã, e é 模糊查询
  4. UA MATH567 高维统计I 概率不等式10 Bernstein不等式
  5. TSQL编写存储过程计算1!+2!+3!+…+N!
  6. VS2019 开发第一个Windows驱动程序
  7. VC++ 绘制简单电子元件
  8. React 深度学习:ReactFiberLazyComponent
  9. ArrayList add(int index,E element)
  10. HDU 2066 一个人的旅行