主要内容

Ambisonic插件生成

此示例显示了如何使用Matlab®高阶Ambisonic(HOA)演示功能来创建Ambisonic插件。Ambisonics是一种空间音频技术,它表示使用球形谐波的三维声场。此示例包含编码器插件,用于生成自定义编码器插件的函数,解码器插件和生成自定义解码器插件的函数。插件生成的自定义使用户能够为给定的Ambisonic配置指定各种ambisonic订单和各种设备列表。

背景

双声编码是将声场分解成球谐的过程。编码矩阵是在特定器件位置上存在的球谐量。在模式匹配译码中,译码矩阵是编码矩阵的伪逆。两栖解码是将球谐重构成声场的过程。

这个例子涉及更高阶的amisisisics,包括传统的一阶amisisonics。在amisisiSics中,ambisonic渠道数量与ambisonic order之间存在关系:

Ambisonic_channels = (ambisonic_order + 1)^2

例如:一阶amisisonics需要四个音频通道,而第四阶的amisisonics需要25个音频通道。

支持以下约定万博1manbetx

  • ACN频道排序

  • SN3D标准化

  • 方位角从0到360度

  • 高度从-90度到90度

使用伪逆译码的双谐设计示例支持高达七阶的双谐设计。万博1manbetx

Ambisonic设备:元素和扬声器

Ambisonic设备分为两组:元件和扬声器。每个设备都有一个音频信号和描述其位置和操作的元数据。元件对应于多元件麦克风阵列,扬声器对应于扬声器阵列用于双声播放。

Ambisonic编码器将Ambisonic编码矩阵应用于来自麦克风元素的原始音频。麦克风元件的位置(方位角,高度)和偏离Quee以及所需的散音顺序需要创建ambisonic编码矩阵。

Ambisonic Decoder将Ambisonic解码矩阵应用于Ambisonic音频以进行扬声器播放。扬声器的位置(方位角,高度)和偏离仪表以及所需的舒大顺序需要采用所需的植状态命令来创建ambisonic解码矩阵。

声场表示

为了捕获、表示或再现带有双声场的声场,设备(元件或扬声器)的数量必须大于或等于双声道的数量。

对于编码示例,使用32通道球形阵列麦克风捕获的音频可以编码到四阶双频(25通道)。对于解码示例,包含64个扬声器的扬声器阵列被配置用于高达七阶的双音播放。如果回放内容是四阶双频,那么即使阵列设置为七阶,系统也只能实现四阶双频。

number_devices> = number_ambisonic_channels

对于编码器,如果设备(元件)的数量小于ambisonic通道的数量,则来自设备(元件)的音频位置可以用环境音表示,但不表示声场。可以将一个或多个音频通道编码到环境音中,以定位环境音场中的源。每个编码器表示在指定设备(元件)位置编码的声场强度。

对于解码器,如果设备的数量(扬声器)小于AMBISONIC信道的数量,则设备(扬声器)不会以指定的ambisonic顺序完全重现声场。可以以较低的amisonic顺序再现声场。例如,在具有10个扬声器的扬声器阵列上播放的三阶VAMIssics可以实现为具有额外扬声器的二阶(9频道)系统,用于播放。每个解码器表示指定设备(扬声器)位置处的Ambisonic字段的强度。

伪逆译码法

有许多解码选项,本例使用伪逆解码,也称为模式匹配。这种解码方法有利于规则形状的设备布局。其他解码方法可能青睐不规则形状的设备布局。

设备类型

编码器的DeviceType将对特定元素打开或OFF的设备(元素)。解码器的DeviceType将设备(扬声器)打开或关闭特定扬声器。如果省略了DeviceType向量,则将DeviceTypes设置为1(ON)。DeviceType后面的意图是提供填充编码器输入或解码器输出的灵活性,其中截止通道将Ambisonic编码器或解码器插件拟合到具有固定通道计数的环境中,例如8-,16-或32通道音频总线。

例如:一个有14个元素的二阶双码编码器有14个输入和9个输出。如果您在编码器中添加两个deviceType 0(关闭)的设备(元素),则编码器有16个输入和9个输出。具有29个设备(扬声器)的四阶ambisonic译码器有25个输入和29个输出。如果您在解码器中添加三个deviceType为0(关闭)的设备(扬声器),那么通道计数将变成25输入和32输出。

当deviceType设置为0(关闭)时,该通道的方位角和仰角被忽略;但是,仍然需要一个值。当设备类型设置为0(关闭)时,建议将方位角和仰角设置为0度。

Ambisonic编码器插件

audiopluginexample。AmbiEncoderPlugin是围绕着audioExample.ambisonics.ambiencodemtrx.ambiencodemtrx.audioexample.ambisonics.ambiencode功能。设备数量(要编码的元素)是编码器插件的输入通道数。AMBISONIC ORD命令确定编码器插件的输出通道数。

audioExample.ambisonics.ambiencodemtrx.ambiencodemtrx.从给定的ambisonic顺序和给定的设备列表生成ambisonic编码器矩阵。audioexample.ambisonics.ambiencode将ambisonic编码器矩阵应用于原始音频,生成ambisonic编码音频。ambisonic音频的格式可使用audioexample.ambisonics.ambiencode函数。原始音频通道的数量必须等于双码编码器矩阵中的设备数量。

编码器插件直接从audioPlugin基类继承。插件构造函数调用audioExample.ambisonics.ambiencodemtrx.ambiencodemtrx.来建立初始编码器矩阵。流程函数调用audioexample.ambisonics.ambiencode将编码器矩阵应用于音频输入。插件的输出是ambisonic编码的音频。只有当插件属性被修改时,编码器矩阵才会重新计算,从而最小化流程循环内的计算。

插件接口填充方位角和仰角,但不填充设备类型。设备类型背后的想法是将通道添加到编码器矩阵,以将矩阵放入8x通道帧中。例如:二阶有9个通道,创建一个16通道编码器矩阵,前9个通道的设备类型为1(开)其余7个通道的设备类型为0(关闭)。

audioTestBench (audiopluginexample.AmbiEncoderPlugin)

录音所('-关闭'

检查代码|运行插件|生成插件

生成自定义ambisonic编码器插件

生成ambisonic插件可能是一个复杂的过程ambiGenerateEncoderPlugin功能简化了生成ambisonic编码器插件的过程。此功能最多支持第七次amis万博1manbetxonics。万博1manbetx支持的格式是'ACN-SN3D','ACN-N3D','ACN-FUMA','ACN-MAXN','FUMA-SN3D','FUMA-N3D','FUMA-FUMA','FUMA-MAXN'.该函数需要以下输入:

  1. audioplugin类的名称

  2. 编码器位置的设备列表

  3. 双音阶

  4. ambisonic格式

%提供audioPlugin类的名称name =“myEncoderPlugin”%包括元素位置的设备列表设备= [45 135 225 315 45 135 225 315;-45 -45 -45 -45%指定了舒大顺序订单= 3;%指定了Ambisonic格式格式=“acn-sn3d”

运行函数。

audioexample.ambisonics。名称,设备,顺序,格式

一旦设计完成,音频插件就可以被验证、生成并部署到第三方数字音频工作站(DAW)。

Ambisonic Decoder插件

audiopluginexample。AmbiDecoderPlugin是围绕着audioexample.ambisonics.ambidecodemtrxaudioexample.ambisonics.ambidecode功能。双音阶决定了解码器插件的输入通道数量。设备的数量(扬声器位置)是解码器插件的输出通道的数量。

audioexample.ambisonics.ambidecodemtrx从给定的ambisonic顺序和给定的设备列表生成Ambisonic解码器矩阵。audioexample.ambisonics.ambidecode将双码译码器矩阵应用于双码音频,得到解码后的音频。属性可以指定ambisonic音频的格式audioexample.ambisonics.ambidecode函数。audioexample.ambisonics.ambidecode根据输入音频的音阶和解码器矩阵的音阶中的最小值确定音阶。

解码器插件直接继承自audioPlugin基类。插件构造函数调用audioexample.ambisonics.ambidecodemtrx构建初始解码器矩阵。流程函数调用audioexample.ambisonics.ambidecode将解码器矩阵应用于音频输入。插件的输出是解码的音频。仅在修改插件属性时才能重新计算解码器矩阵,该属性最小化进程循环内的计算。

插件接口填充方位角和仰角,但不填充设备类型。设备类型背后的想法是将通道添加到编码器矩阵,以将矩阵放入8x通道帧中。例如:二阶有9个通道,创建一个16通道编码器矩阵,前9个通道的设备类型为1(开)其余7个通道的设备类型为0(关闭)。

audioTestBench (audiopluginexample.AmbiDecoderPlugin)

录音所('-关闭'

检查代码|运行插件|生成插件

生成自定义Ambisonic解码器插件

生成ambisonic插件可能是一个复杂的过程双生成编码肽函数简化生成ambisonic解码器插件的过程。此函数最多支持七阶ambisonic。支持的格式为“acn-sn3d”、“acn-n3d”、“acn fuma”、“acn ma万博1manbetxxn”、“fuma-sn3d”、“fuma-n3d”、“fuma fuma”、“fuma maxn”。函数需要以下输入:

  1. 的名字audioPlugin

  2. 解码器位置的设备列表

  3. 双音阶

  4. ambisonic格式

%提供audioPlugin类的名称name =“myDecoderPlugin”%包括扬声器位置的设备列表设备= [45 135 225 315 45 135 225 315;-45 -45 -45 -45%指定了舒大顺序订单= 3;%指定了Ambisonic格式格式=“acn-sn3d”

运行函数。

audioexample.ambisonics.AmbiGeneratedCoderPlugin(名称、设备、顺序、格式)

一旦设计完成,音频插件就可以被验证、生成并部署到第三方数字音频工作站(DAW)。

另请参阅

Ambisonic Binaural Degoding.

相关话题

工具书类

[1] Kronlachner,M。(2014)。植石录制改变的空间转化(硕士论文)。

[2] https://en.wikipedia.org/wiki/Ambisonics

[3] https://en.wikipedia.org/wiki/Ambisonic_data_exchange_formats