CBT

news/2024/11/14 15:38:51/文章来源:https://www.cnblogs.com/zhlj-X/p/18544161
  1. 设置扬声器阵列,预先设置扬声器阵列的覆盖角
  2. 根据扬声器阵列的覆盖角得到截止频率F
  3. 将音频信号小于截止频率F的频段采用空间重采样法进行恒定束宽控制;将音频信号大于或等于截止频率F的频段采用CBT阵列理论进行恒定束宽控制;

基本流程图如下:

step1: 首先,确定系统参数. 根据期望的\(\theta\),结合实际的手中已有的条件、资源等(如考虑到阵元的size以及Number涉及到钱的问题),折中确定好阵列的间距,也就确定了阵列的长度
如阵列间距为17mm, 50个阵元, 则具体计算公式为:
\(f_{下限} = \frac{声速}{阵列长度} = \frac{343}{(50-1)17*10^{-3}} = 417\)Hz
\(f_{上限} = \frac{声速}{阵元间距} = \frac{343}{17*10^{-3}} = 20200\)Hz
当驱动器间距等于一个波长时,出现波束宽度控制的频率上限,而当驱动器间距大于半个波长时,可能开始形成旁瓣。因此,即使具有换能器102(或驱动器)的阵列150可间隔开17mm,阵列150也可提供高达20200Hz下的恒定波束宽度,在10 ,100Hz处开始形成旁瓣。

step2: 然后, 衍生虚拟圆弧. 通过延时来虚拟地“弯曲”这个线性的阵列,以实现beamwidth.
具体做法如下:

step1:对各阵列进行不同程度的时间延迟,进而产生虚拟圆弧
进一步做法如下:
确定好的beamwidth是整个圆弧角对应的范围,即图中的\(\theta_T\), 弧角的一半即半角为\(\theta_0\)

将每个阵元向后移动到弧上,水平移动,注意这里移动到弧上之后的阵元间距即每段弧长是不等的。

然后根据图中的几何关系,确定好每个阵元具体相对于圆弧中心的角度\(\theta_S\)
具体公式为

\[U(x)= \begin{cases} 1+0.066x - 1.8x^2 + 0.734x^3 &, x\leq 1 \\ 0 &, x\ge 1 \end{cases} \]

其中,这里的\(x = \frac{\theta}{\theta_0}\)

CBT圆弧的半径计算方式为:

\[R= \frac{H_t}{2\sin(\frac{\theta_t}{2})} = \frac{H_t}{2\sin(\theta_0)} \]

从直线阵向后移动到弧上的各阵元的角定位的计算方式为:

\[\theta_S = \arcsin(\frac{h}{R}) \]

其中, \(h\)是各阵元的高度.

进一步, 从直线阵水平后移到圆弧阵所需的偏移量的计算方式为:

\[D = R(1-\cos(\theta_S)) \]

知道了各个阵元的偏移量, 也就确定了各阵元具体所需的延时\(\tau\)

\[\tau = D/C \]

至此, 完成了从直线阵到虚拟圆弧阵的转换, 但此时还是单一方向的, 暂无偏转.

step3: 波束指向中心进行偏转
二维旋转矩阵逆时针:

\[\begin{bmatrix} \cos(\alpha) & -\sin(\alpha) \\ sin(\alpha) & \cos(\alpha) \end{bmatrix} \]

二维旋转矩阵顺时针:

\[\begin{bmatrix} \cos(\alpha) & \sin(\alpha) \\ -sin(\alpha) & \cos(\alpha) \end{bmatrix} \]

可能有所疑问, 为何这就是旋转了? 具体可以这么看:

\[V \cdot A = \begin{bmatrix} \cos(\alpha) & -\sin(\alpha) \\ \sin(\alpha) & \cos(\alpha) \end{bmatrix} \cdot \begin{bmatrix}x \\y \end{bmatrix} = \begin{bmatrix}x\cos(\alpha)-y\sin(\alpha) \\y\sin(\alpha)+y\cos(\alpha) \end{bmatrix} \]

\[A = \begin{bmatrix} r\sin(\theta) \\ r\sin(\theta) \end{bmatrix} \]

所以

\[\begin{align*}x &= r \cos(\theta) \\y &= r \sin(\theta) \\ \end{align*} \]

\[\begin{align*}x &= r \cos(\theta) \\y &= r \sin(\theta) \\ \cos(\theta + \alpha) &= \cos(\theta)\cos(\alpha) - \sin(\theta)\sin(\alpha) \\\sin(\theta + \alpha) &= \sin(\theta)\cos(\alpha) + \cos(\theta)\sin(\alpha)\end{align*} \]

所以, \(V\)是一个旋转矩阵.

step4:
相乘完成线阵的偏转, 然后归一, 因为可能会涉及到延迟 和 提前. 没办法提前, 所以, 进行一个类似归一化的操作, 令提前的为0, 然后延迟的再延迟即可.

最后就是 $ \omega e^{-j2\pi f\tau} $

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

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

相关文章

使用IDEA插件(dbDoc)生成数据库字典

https://blog.csdn.net/taotao6086/article/details/123324472 https://github.com/godmaybelieve

视频智能分析网关视频分析网关吸烟检测预警厂区吸烟行为监测系统

在工业生产和公共安全管理中,吸烟行为的监测和控制是一个重要而紧迫的问题。尤其是在厂区这样的特殊环境中,吸烟不仅违反了安全生产规定,更可能引发火灾等严重安全事故。随着人工智能技术的发展,吸烟检测视频分析网关应运而生,为厂区吸烟行为监测提供了一种高效、智能的解…

时区计算,冬夏令时, 计算历史某一刻的某地区的时区

首先来聊聊冬夏令时 ‌冬令时和夏令时是为了节约能源和充分利用光照资源而设立的时间制度。‌在夏季,许多国家和地区会将时钟拨快一小时,称为夏令时,以便让人们早起早睡,减少照明用电。而在冬季,时钟会拨回标准时间,称为冬令时。‌ 历史背景和实施国家 夏令时的概念最早由…

【跟着阿舜学音乐-笔记】1.09音程与协和度

音程 音程是指两个音之间的距离,即一个音到另一个音经过了多少个音高的音高单位。 其中,所经历的音高单位的数量叫做音数。具有不同音数的音之间的距离叫做度。 音程的下方较低的音称为根音(该说法也用于和弦中,指原位中最低的音),上方较高的音称为冠音。以下给出各音程的…

find me-WP

首先给了四张图片第一张宽高有问题修复一下,之后感觉不对劲少了IDAT,修复一下 49444154就好了 修复好第一张图片之后发现了二维码ZmxhZ3s0X3 在第二张图片发现了压缩包提取出来但解压不了 需要把7Z换成PK解压之后在618发现1RVcmVfc 第四张图片发现cExlX1BsY 第五张Yzcllfc0lN…

某大型商超客户采购数据分析(Spark实战)

写了一些使用sparksql以及spark机器学习来进行数据分析的东西,希望能给大家做一些参考项目需求:对某大型商超客户采购数据集进行数据分析 数据来源:https://www.heywhale.com/mw/dataset/656069b19a74cc18269207c4/content首先使用Spark读入数据集,读入文件前要先将文件转为…

2024鹏城杯-re

Rafflesia 先去花指令 a = H@^jHwpsH)[jH{M/\\tBBK_|-O{W.iJZ7\\)|~zaB^H+Lwv{SS|-j@\\_[Y flag = for i in range(len(a)):flag += chr(ord(a[i])^0x18) print(flag)PXFrPohkP1CrPcU7DlZZSGd5WcO6qRB/D1dfbyZFP3ToncKKd5rXDGCA 接着是tls改了表 HElRNYGmBOMWnbDvUCgcpu1QdPqJ…

IDEA如何创建web项目及tomcat设置等

一、Java EE插件启用 1.在启动IDEA时,点击右下角并进入Plugins设置2.选择Java EE相关插件,点击OK然后重启二、创建Web项目 1.点击File->New Project,点击Java Enterprise,勾选web Application。确保已选择正确的jdk2.输入项目名称和存放路径,点击Finish完成三、设置tomca…

.net core生成二维码

安装Net.Codecrete.QrCodeGenerator dotnet add Net.Codecrete.QrCodeGenerator var qr = QrCode.EncodeText("https://baidu.com", QrCode.Ecc.Medium); var bytes = qr.ToBmpBitmap(0, 5, 0, 16777215);//5表示单个像素大小,可按需调整,0表示背景色白色,1677721…

Nuxt.js 应用中的 schema:beforeWrite 事件钩子详解

title: Nuxt.js 应用中的 schema:beforeWrite 事件钩子详解 date: 2024/11/14 updated: 2024/11/14 author: cmdragon excerpt: schema:beforeWrite 钩子是 Vite 提供的一个功能强大的生命周期钩子,允许开发者在 JSON Schema 被写入之前执行自定义操作。利用这个钩子,您可以…

最新项目管理软件趋势,2024年全面盘点11款工具!

2024年,项目管理软件领域继续朝着更加智能化、协同化和自动化的方向发展,满足不同规模企业的需求。随着企业对灵活性、透明度和效率的要求不断提高,项目管理软件在功能和使用方式上持续创新。以下是2024年项目管理软件的最新趋势,并涵盖了国内外多款主流项目管理工具。 1. …

PMP百科网精选:项目管理软件怎么选?这里有答案!

在选择项目管理软件时,企业和项目经理需要综合考虑多个因素,以确保所选的软件能够有效支持项目的各个阶段并满足团队的具体需求。PMP百科网的精选内容通常会根据项目管理的实际需求来推荐适合的软件。以下是选择项目管理软件时应该考虑的几个关键因素: 1. 项目的规模和复杂性…