2020年认证杯SPSSPRO杯数学建模A题(第一阶段)听音辨位全过程文档及程序

2020年认证杯SPSSPRO杯数学建模

A题 听音辨位

原题再现:

  把若干 (⩾ 1) 支同样型号的麦克风固定安装在一个刚性的枝形架子上 (架子下面带万向轮,在平地上可以被水平推动或旋转,但不会歪斜),这样的设备称为一个麦克风树。不同的麦克风由于位置不同,录制到的声音往往也有细微的不同,所以通过对多支麦克风接收到的声音进行对比分析,可以得到更多的有关声源的信息。我们假设每个麦克风都是全向的,也就是单麦克风无法分辨声源的方向。
  现在有一个地面、墙壁和天花板都是光滑大理石的大厅,大厅内空旷而安静。在大厅里只有一个走动的人,发出清晰的脚步声。我们准备在大厅里安放一个麦克风树,希望通过检测声音来进行一些测量,包括尽量准确地实时确定这个人的位置,也包括测量这个大厅的某些几何参数。请你建立合理的数学模型,设计一个成本尽量低、而且可以达到使用要求的麦克风树。要求给出每支麦克风的相对位置以及相对于地面的高度,至于枝形架子的具体力学结构则不需要考虑。
  第一阶段问题: 根据已知和所求信息的不同,这个问题可以有不同的复杂程度。我们需要在以下两种情形中对麦克风树进行合理的设计,并给出对接收到的声音信号进行分析的算法。
  1. 已知大厅的平面形状是矩形,地面和天花板都是水平的。假设我们已知大厅轮廓的准确尺寸 (长 × 宽 × 高)。但在实际施工中,由于操作和设备所限,在麦克风树放置在地面上的时候,无法精确测量放置点的坐标以及水平的旋转角度。我们希望确定此人的位置。
  2. 大厅轮廓的尺寸未知,其余条件同上。我们希望确定此人的位置,并尽量准确地确定大厅的轮廓尺寸 (长 × 宽 × 高)。

整体求解过程概述(摘要)

  本文针对麦克风阵列接收声源信号以获得声源实时位置及如何测量大厅几何参数的问题进行分析研究,通过分析比较,最终确定以十字形麦克风阵列为核心,以声达时间差和能量分析为方法的优化模型。
  针对于问题一,我们将从两个方面拆解问题并给出分析过程,其中包括麦克风阵列的选择和优化定位模型的建立。
  第一个方面是关于麦克风阵列的选择,我们首先建立了一维线性阵列模型,在对线性模型的计算改进的基础上建立了二维面阵模型其中包括方形阵列模型、等边三角形阵列模型、圆形阵列模型。接着我们对三个模型进行了合理的理论推导与证明,通过实验计算出原始位置与测定位置之间的误差,并分析其结果得出平均误差,证明出方形阵列为最适宜阵列模型。最后结合实际应用与实现的难易程度进行分析,且由于方形阵列可以近似看为十字形阵列,因此本文将十字形阵列确定为最优阵列的选择。
  第二个方面是关于定位模型的建立,由于考虑到声源传播模式可以分为近场与远场,我们对远近场区分的常用公式进行了声源在近远场的比对分析,但因为在本题中可以忽略远近场的影响,于是在理想状态下,可以根据信号时延性进行计算以得到声源位置。阵元间距问题,我们通过给出一定的声源频率,结合声速与波长的关系,给出合适的阵元间距。最后,通过声源的位置信息,确定了以四个麦克风数量为基准的麦克风矩阵定位模型,再进行逐步分析增加,最终确定麦克风最优个数。
  针对于问题二,我们需要解决如何在大厅几何参数未知的情况下,测定大厅的体积及实时确定人的位置。由于大厅几何参数未知,我们首先利用声音会逐渐减弱的特性确定了在仅有扩散衰减情况下的声音衰减模型。通过分析确定无法忽略吸收衰减和散射衰减对模型的影响,于是对模型进行了优化提出了衰减系数a 。接下来,我们设计了一个实验通过利用 matlab 进行 power 幂函数方程拟合以测定在室内环境下衰减系数的值。其次,由于未确定大厅几何参数会对定位模型造成一定的影响,因此以声达时间差来确定大厅的定位模型无法精确得出大厅的大小,所以我们选择二选其一声音强度(能量法)来帮助对未知大厅大小的定位模型的建立。通过得出声强级和传播距离的关系,设计出合理的麦克风安置方法。考虑到麦克风接收声源信息的误差会导致不同麦克风对声源位置的估计产生偏差,因此使用蒙特卡罗算法进行近似处理,从而通过计算可以得到的合理声源位置。
  最后,本文对所有问题的模型进行了客观合理的评价,并且对建立的数学模型进行了改进分析,使得模型的应用面更加广泛。

问题分析:

  对于问题一:已知平面是矩形的大厅且已知大厅轮廓的准确尺寸,在理想情况下,如何建立起一个在刚性的枝形架子上的麦克风树,忽略了近远场的影响及声音的传输损失,通过分析各种阵列的优缺以选择建立最优的一个成本尽量低、而且可以达到使用要求麦克风阵列和确定阵元的数量给出每支麦克风的相对位置以及相对于地面的高度,能实时确定发出清晰声源(脚步声)的人的位置。
  对于问题二:现实中往往并不能准确知道大厅的几何参数,并且无法忽略声音传输的损失。由于以上原因,我们可以首先在大厅体积未知的情况下,在问题一解决的基础上,用已经建立的模型下寻找借助声源传播求解大厅的几何参数,然后将建立一个新的模型,对结果分别进行预测,并将结果进行比较,于是可以得出在非理想情况下,如何实时确定人的位置。

模型假设:

  1. 在远场模型中,因为声源信息到麦克风阵列的幅度差较小,忽略不计。
  2. 忽略鞋和体型等因素,一个正常人脚步声的频率在 20 Hz ~40 Hz 。
  3. 不考虑环境的噪声影响以及室内混响的影响。
  4. 在第一问中,忽略远场和近场对麦克风阵形的影响。
  5. 麦克风的品质(即对信息的收集能量)不随实验时间的进行而下降。
  6. 持续行走发出的脚步声的声强级(分贝)不发生改变,始终为 50 分贝。

论文缩略图:

在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码:(代码和文档not free)

clear;clc;
v=340;z=11.33;
a=input('please enter the time difference between unit 1 and unit
2:');
b=input('please enter the time difference between unit 1 and unit
3:');
c=input('please enter the time difference between unit 1 and unit
4:');
e=input('please enter the hall width:');
p=sqrt(e*z/4);
r=abs((v/2)*((a^2+b^2+c^2)/(b-a-c)));
h=asin((v/(2*p))*(sqrt((a-c)^2+b^2)));
for i=0:pi/2:2*pi
k=atan((c-b)/a)+i;
if (k>0)&&(k<pi/2)
d=k;
end
end
disp(r);
disp(h);
disp(d);
clear;clc;
d1=input('please enter a value of d1:');
d2=input('please enter a value of d2:');
d3=input('please enter a value of d3:');
d4=input('please enter a value of d4:');
a=1;b=1;c=1;d=1;e=0;f=0;g=0;h=0;k=0;j=0;
for x=1:0.5:20
for y=1:0.5:20
for i=1:10000
x1=round(x*rand);
y1=round(y*rand);
d5=sqrt(x1^2+y1^2);
d6=sqrt(x1^2+(y-y1)^2);
d7=sqrt((x-x1)^2+y1^2);
d8=sqrt((x-x1)^2+(y-y1)^2);
if
(abs(d5/d1-1)<0.01)&&(abs(d5/d1-1)<a)&&(abs(d6/d2-1)<0.01)&&(abs(d6/d2-1)
<b)&&(abs(d7/d3-1)<0.01)&&(abs(d7/d3-1)<c)&&(abs(d8/d4-1)<0.01)&&(abs(d8
/d4-1)<d)
a=abs(d5/d1-1);
b=abs(d6/d2-1);
c=abs(d7/d3-1);
d=abs(d8/d4-1);
e=x1;
f=y1;
g=d5;
h=d6;
k=d7;
j=d8;
end
end
end
end
if (e==0)&&(f==0)
fprintf('所给数据误差过大无法分析\n');
else
x1=e;
y1=f;
disp(x1);
disp(y1);
disp(x1+sqrt(k^2-y1^2));
disp(y1+sqrt(h^2-x1^2));
end
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/587194.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

starrocks集群fe/be节点进程守护脚本

自建starrocks集群&#xff0c;有时候服务会挂掉&#xff0c;无法自动拉起服务&#xff0c;于是采用supervisor进行进程守护。可能是版本的原因&#xff0c;supervisor程序总是异常&#xff0c;无法对fe//be进行守护。于是写了个简易脚本。 #!/bin/bash AppNameFecom.starrock…

模型 安索夫矩阵

本系列文章 主要是 分享模型&#xff0c;涉及各个领域&#xff0c;重在提升认知。产品市场战略。 1 安索夫矩阵的应用 1.1 江小白的多样化经营策略 使用安索夫矩阵来分析江小白市场战略。具体如下&#xff1a; 根据安索夫矩阵&#xff0c;江小白的现有产品是其白酒产品&…

缓存cache和缓冲buffer的区别

近期被这两个词汇困扰了&#xff0c;感觉有本质的区别&#xff0c;搜了一些资料&#xff0c;整理如下 计算机内部的几个部分图如下 缓存&#xff08;cache&#xff09; https://baike.baidu.com/item/%E7%BC%93%E5%AD%98 提到缓存&#xff08;cache&#xff09;&#xff0c;就…

OpenAI“一路生花”,致力于超级人工智能研发

原创 | 文 BFT机器人 INTELLIGENT ROBOT OpenAI提供1000万美元的资助用于解决超级智能AI控制问题 OpenAI是人工智能研究领域的领先组织&#xff0c;据媒体称&#xff0c;它正在采取积极措施应对与超级智能AI系统相关的潜在风险。在一项大胆的举措中&#xff0c;该公司宣布将提…

独立站如何优化网页加载速度

对于跨境电商独立站而言&#xff0c;流量是跨境电商业务的重中之重&#xff0c;由于独立站并不自带流量&#xff0c;非常依赖于谷歌搜索引擎自然流量&#xff0c;以及付费广告流量。 但随着付费流量价格日益水涨船高&#xff0c;为了摆脱对付费流量的依赖&#xff0c;相信广大…

可移动磁盘上的文件删除了怎么恢复?详细教程介绍

在我们的日常生活和工作中&#xff0c;可移动磁盘作为一种便携式的存储设备&#xff0c;经常被用来备份和传输数据。然而&#xff0c;有时候由于误操作或不小心的删除&#xff0c;导致可移动磁盘上的文件丢失。这些文件可能包含重要的工作资料、个人照片、视频等&#xff0c;一…

【YOLO系列】YOLOv8 -【教AI的陶老师】

文章目录 yolo v8 模型结构图这样搞有什么意义&#xff1f;【获得不同尺寸的输出】c2f 详细结构yolo v8 损失函数与 yolo v5 的区别 yolo v8 模型结构图 详细结构图 这样搞有什么意义&#xff1f;【获得不同尺寸的输出】 c2f 详细结构 yolo v8 损失函数 与 yolo v5 的区别

第1章 Kali Linux入门

本章将带领读者初步了解渗透测试专用的独立Linux 操作系统——Kali Linux。本章涵盖下述主题&#xff1a; ● Kali 的发展简史&#xff1b; ● Kali 的一般用途&#xff1b; ● Kali 的下载与安装&#xff1b; ● Kali 的配置与更新。 在本章的结尾部分&#xff0c;我们还…

【进阶】【JS逆向爬虫】【2.JavaScript 基础语法】JS代码导入方式

JS逆向爬虫 JS代码导入方式1.行内式写法2.内嵌式&#xff08;建议写在</body>之前&#xff09;3.外部式&#xff08;建议写在</head>之前&#xff09; JS代码导入方式 1.行内式写法 可以将单行或少量 JS 代码写在HTML标签的事件属性中&#xff08;以 on 开头的属…

【计算机网络】第五,六章摘要重点

1.运输层协议概述 运输层提供的是进程之间的通信 2. 3.套接字指的是什么 ip地址端口号 4.每一条TCP语句唯一地被通信两端连接的两个端点 5.TCP传输如何实现 以字节为单位的滑动窗口 超时重传 选择确认 6.TCP流量控制和拥塞控制的区别 流量控制&#xff1a;点对点通信…

Cisco模拟器-OSPF路由协议

设计要求用两台双口路由器连接不同IP网段的计算机&#xff0c;并使用OSFP协议发现路由表使不同IP网段的计算机可以相互通信。 通过设计&#xff0c;可以连通IP地址网段不同的局域网&#xff0c;可应用在园区网的互连和互通的实现上。 主要配置步骤 路由器0&#xff1a; Router…

24、Web攻防——通用漏洞SQL注入MYSQL跨库ACCESS偏移

文章目录 一、SQL注入原理   脚本代码在与数据库进行数据通讯时&#xff08;从数据库取出相关数据进行页面显示&#xff09;&#xff0c;使用预定义的SQL查询语句进行数据查询。能通过参数传递自定义值来实现SQL语句的控制&#xff0c;执行恶意的查询操作&#xff0c;例如查询…

C# 使用ZXing.Net生成带Logo的二维码

写在前面 这是ZXing.Net类库的系列文章&#xff0c;实现在二维码中间插入一个logo图标 C# 使用ZXing.Net生成二维码和条码-CSDN博客 C# 使用ZXing.Net识别二维码和条码-CSDN博客 代码实现 该段代码主体来自其他文章&#xff0c;贴在这做个记录 /// <summary> /// 生成…

【教程】Typecho Joe主题开启并修复壁纸相册不显示问题

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 背景说明 Joe主题本身支持“壁纸”功能&#xff0c;其实就是相册。当时还在网上找了好久相册部署的开源项目&#xff0c;太傻了。 但是网上教程很少&#xff0c;一没说如何开启壁纸功能&#xff0c;二没说开启后为…

2023年终总结:耕辍断续应犹在,碌而不暇仍少年

Author&#xff1a;AXYZdong 硕士在读 工科男 有一点思考&#xff0c;有一点想法&#xff0c;有一点理性&#xff01; 定个小小目标&#xff0c;努力成为习惯&#xff01;在最美的年华遇见更好的自己&#xff01; CSDNAXYZdong&#xff0c;CSDN首发&#xff0c;AXYZdong原创 唯…

精品Nodejs实现的校园疫情防控管理系统的设计与实现健康打卡

《[含文档PPT源码等]精品Nodejs实现的校园疫情防控管理系统的设计与实现[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功&#xff01; 软件开发环境及开发工具&#xff1a; 操作系统&#xff1a;Windows 10、Windows 7、Win…

Docker 概述以及整体架构

文章目录 一、Docker概述1.1 什么是 Docker1.2 Docker 如何工作1.3 底层技术 二、Docker架构2.1 Docker 整体架构2.2 Docker daemon2.3 Docker client2.4 Docker registries2.5 Docker objects2.6 Docker Desktop 参考资料 一、Docker概述 1.1 什么是 Docker Docker是一个用于…

【Linux专区】如何配置新服务器 | 添加普通用户到sudoers | 配置vim | git免账号密码pull push

&#x1f49e;&#x1f49e;欢迎来到 Claffic 的博客&#x1f49e;&#x1f49e; &#x1f449; 专栏&#xff1a;《Linux专区》&#x1f448; &#x1f4ac;前言&#xff1a; 时隔131天&#xff0c;你的好友Claffic重新发文了&#xff01;(✿◕‿◕✿) 上期已经带大家白嫖了阿…

【MATLAB】PSO粒子群优化LSTM(PSO_LSTM)的时间序列预测

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 PSO粒子群优化LSTM&#xff08;PSO-LSTM&#xff09;是一种将粒子群优化算法&#xff08;PSO&#xff09;与长短期记忆神经网络&#xff08;LSTM&#xff09;相结合的混合模型。该算法通过…