multibandParametricEQ

多波段参量均衡器

描述

multibandParametricEQ系统对象™使用指定的中心频率、增益和质量因子,在每个输入通道上独立地执行多频带参数均衡。系统对象最多可以配置10个波段。您可以添加low-shelf和high-shelf滤波器,以及高通(low-cut)和低通(high-cut)滤波器。

实现多频带参数均衡器:

  1. 创建multibandParametricEQ对象,并设置其属性。

  2. 使用参数调用对象,就像调用函数一样。

要了解更多关于System对象如何工作的信息,请参见什么是系统对象?(MATLAB)。

创建

描述

mpeq = multibandparametriceq.创建一个System对象,mPEQ,实现多频带参数均衡。

mPEQ = multibandParametricEQ (名称,值设置每个构造参数或属性的名字到指定的价值.未指定的属性和创建参数具有默认值。

例子:mPEQ = multibandParametricEQ(“NumEQBands”、3、“频率”,[300、1200、5000])创建多频带参数均衡器System对象,mPEQ,NumEQBands设置为3.频率属性设置为(300、1200、5000)

请注意

指定的值NumEQBands一定是行向量的长度频率QualityFactors,PeakGains.在创建System对象期间,您指定的第一个属性锁定该值。

创建参数

全部展开

创建参数是在创建System对象期间设置的属性,以后不能修改。如果没有显式设置创建参数值,则该属性将接受默认值。

均衡器频带数,整数形式,取值范围为[1,10]。均衡器带的数目不包括搁置滤波器、高通滤波器或低通滤波器。

NumEQBands是在创建System对象时设置的,以后不可修改。如果未显式设置其值,则该属性将接受默认值。

例子:mpeq = multibandparametriceq('numeqbands',5)创建多频带参数均衡器5频带。

数据类型:|

单个均衡器频带的顺序,指定为偶数。所有均衡器带具有相同的顺序。

EQOrder是在创建System对象时设置的,以后不可修改。如果未显式设置其值,则该属性将接受默认值。

例子:mPEQ = multibandParametricEQ (EQOrder, 6)创建一个多频带参数均衡器,默认3频带,所有顺序6。

数据类型:|

低档过滤器开关,指定为真正的

  • —在多频带参数均衡器实现中不启用低电平滤波。

  • 真正的——在多频带参数均衡器实现中启用低电平滤波。

HasLowShelfFilter是在创建System对象时设置的,以后不可修改。如果未显式设置其值,则该属性将接受默认值。

例子:mPEQ = multibandParametricEQ (HasLowShelfFilter,真的)创建一个默认的多频带参数均衡器,并启用了低档滤波。

数据类型:逻辑

高架滤镜切换,指定为真正的

  • —在多频带参数均衡器实现中不启用高阶滤波。

  • 真正的——在多频带参数均衡器实现中启用高性能滤波。

HasHighShelfFilter是在创建System对象时设置的,以后不可修改。如果未显式设置其值,则该属性将接受默认值。

例子:mPEQ = multibandParametricEQ (HasHighShelfFilter,真的)创建一个默认的多频带参数均衡器,启用了高性能滤波。

数据类型:逻辑

低通滤波器切换,指定为真正的

  • —在多频带参数均衡器实现中不启用低通滤波。

  • 真正的——在多频带参数均衡器实现中启用低通滤波。

HasLowpassFilter是在创建System对象时设置的,以后不可修改。如果未显式设置其值,则该属性将接受默认值。

例子:mpeq = multibandparametriceq('haslowpassfilter',true)创建启用低通滤波的默认多频带参数均衡器。

数据类型:逻辑

高通滤波器切换,指定为真正的

  • —在多频带参数均衡器实现中不启用高通滤波。

  • 真正的——在多频带参数均衡器实现中启用高通滤波。

HasHighpassFilter是在创建System对象时设置的,以后不可修改。如果未显式设置其值,则该属性将接受默认值。

例子:mPEQ = multibandParametricEQ (HasHighpassFilter,真的)创建启用高通滤波的默认多频带参数均衡器。

数据类型:逻辑

过采样切换,指定为真正的

  • 在输入采样率下运行多频带参数均衡器。

  • 真正的运行多频带参数均衡器在两倍的输入采样率。过采样使双线性变换引起的频率扭曲效应最小化。

    半带插值器在均衡前实现过采样。半带抽取器在均衡后将采样率降低到输入采样率。

Oversample是在创建System对象时设置的,以后不可修改。如果未显式设置其值,则该属性将接受默认值。

例子:mPEQ = multibandParametricEQ (Oversample,真的)创建启用过采样的默认多频带参数均衡器。

数据类型:逻辑

属性

全部展开

除非另有说明,属性是nontunable,这意味着您不能在调用对象之后更改它们的值。对象在调用时锁定,而释放函数打开它们。

如果一个属性是可调,您可以随时更改它的值。

有关更改属性值的更多信息,请参见在MATLAB中使用系统对象进行系统设计(MATLAB)。

多波段均衡器

以Hz为单位的均衡器频带的中心频率,指定为长度的行向量NumEQBands.这个向量由0到的实标量组成SampleRate/2.

可调:是的

数据类型:|

均衡器频带的质量因子,指定为长度的行向量NumEQBands.这个向量由[0.2,700]范围内的实标量组成。任何超出范围的值都是饱和的。

可调:是的

数据类型:|

以dB为单位的峰值或峰值滤波器增益,指定为长度的行向量NumEQBands.该向量由范围[-inf, 20]的实标量组成。值大于20表示饱和。

可调:是的

数据类型:|

低架上过滤器

低频滤波器截止频率,指定为大于或等于0的标量。

可调:是的

依赖关系

若要启用此属性,请设置HasLowShelfFilter真正的在创作期间。

数据类型:|

低档滤波器斜率系数,指定为[0.1,5]范围内的实标量。超出范围的值是饱和的。

可调:是的

依赖关系

若要启用此属性,请设置HasLowShelfFilter真正的在创作期间。

数据类型:|

低电平滤波器增益(dB),指定为[- 12,12]范围内的实标量。超出范围的值是饱和的。

可调:是的

依赖关系

若要启用此属性,请设置HasLowShelfFilter真正的在创作期间。

数据类型:|

高处过滤器

高频滤波器截止频率,指定为大于或等于0的实标量。

可调:是的

依赖关系

若要启用此属性,请设置HasHighShelfFilter真正的在创作期间。

数据类型:|

高架滤波器斜率系数,指定为[0.1,5]范围内的实标量。超出范围的值是饱和的。

可调:是的

依赖关系

若要启用此属性,请设置HasHighShelfFilter真正的在创作期间。

数据类型:|

高阶滤波器增益dB,指定为[- 12,12]范围内的实标量。超出范围的值是饱和的。

可调:是的

依赖关系

若要启用此属性,请设置HasHighShelfFilter真正的在创作期间。

数据类型:|

低通滤波器

低通滤波器截止频率(Hz),指定为大于或等于0的实标量。

可调:是的

依赖关系

若要启用此属性,请设置HasLowpassFilter真正的在创作期间。

数据类型:|

dB/倍频程低通滤波器斜率,指定为范围内的实标量(0:6:48).不是6的倍数的值将被舍入到最接近6的倍数。

可调:是的

依赖关系

若要启用此属性,请设置HasLowpassFilter真正的在创作期间。

数据类型:|

高通滤波器

高频滤波器截止频率,指定为大于或等于0的实标量。

可调:是的

依赖关系

若要启用此属性,请设置HasHighpassFilter真正的在创作期间。

数据类型:|

高通滤波器的dB/倍频程斜率,指定为范围内的实标量(0:6:48).不是6的倍数的值将被舍入到最接近6的倍数。

可调:是的

依赖关系

若要启用此属性,请设置HasHighpassFilter真正的在创作期间。

数据类型:|

抽样

输入采样率(Hz),指定为正标量。

可调:是的

数据类型:|

使用

描述

例子

audioOut= mPEQ (audioIn对输入信号进行多频带参数均衡,audioIn,并返回过滤后的信号,audioOut.属性的算法和属性指定均衡的类型multibandParametricEQ系统对象,mPEQ

输入参数

全部展开

均衡器的音频输入,指定为矩阵。矩阵的列被视为独立的音频通道。

数据类型:|

输出参数

全部展开

均衡器的音频输出,以相同大小的矩阵返回audioIn

数据类型:|

对象的功能

要使用对象函数,请指定System对象作为第一个输入参数。例如,释放名为system的对象的系统资源obj,使用下面的语法:

发行版(obj)

全部展开

createAudioPluginClass 创建音频插件类,实现的功能系统对象
可视化 可视化多频带参数均衡器的幅度响应
parameterTuner 在流时调优对象参数
configureMIDI 配置音频对象和MIDI控制器之间的MIDI连接
disconnectMIDI 从音频对象断开MIDI控件
getMIDIConnections 获得音频对象的MIDI连接
克隆 创建重复的系统对象
isLocked 确定系统对象在使用
释放 释放资源并允许更改系统对象属性值和输入特征
重置 重置内部状态系统对象
一步 运行系统对象算法

createAudioPluginClassconfigureMIDI属性的可调属性multibandParametricEQ面向用户参数的系统对象:

财产 范围 映射 单位
频率 [20000] 日志 赫兹
QualityFactors (0.2, 700) 线性 没有一个
PeakGains (-50年,20) 线性 dB
LowShelfCutoff [20000] 日志 赫兹
LowShelfSlope (0.1, 5) 线性 没有一个
LowShelfGain (-12年,12) 线性 dB
HighShelfCutoff [20000] 日志 赫兹
HighShelfSlope (0.1, 5) 线性 没有一个
HighShelfGain (-12年,12) 线性 dB
LowpassCutoff [20000] 日志 赫兹
LowpassSlope [0, 48] 线性 dB /八度
HighpassCutoff [20000] 日志 赫兹
HighpassSlope [0, 48] 线性 dB /八度

例子

全部折叠

创建dsp。AudioFileReaderaudioDeviceWriter对象。使用读者的抽样率作为作者的抽样率。调用设置减少音频流循环中初始化的计算负载。

frameLength = 512;fileReader = dsp。AudioFileReader (“文件名”“RockDrums-48-stereo-11secs.mp3”“SamplesPerFrame”, frameLength);deviceWriter = audioDeviceWriter (“SampleRate”, fileReader.SampleRate);设置(deviceWriter (frameLength, 2))

构造一个带有高架滤波器的三频带参数均衡器。

mPEQ = multibandParametricEQ (“NumEQBands”3,“频率”(300、1200、5000),“QualityFactors”(1, 1, 1),“PeakGains”(-10 7),“HasHighShelfFilter”,真的,“HighShelfCutoff”, 14000,“HighShelfSlope”, 0.3,“HighShelfGain”5,“SampleRate”, fileReader.SampleRate);

可视化多频带参数均衡器的幅频响应。

可视化(mPEQ)

播放均衡的音频信号。更新均衡器频带的峰值增益,以听到均衡器的效果,并可视化变化的幅度响应。

数= 0;~isDone(fileReader) originalSignal = fileReader();equalizedSignal = mPEQ (originalSignal);deviceWriter (equalizedSignal);如果mPEQ.PeakGains(1) = mPEQ.PeakGains(1) - 1.5;mPEQ.PeakGains(2) = mPEQ.PeakGains(2) + 1.5;mPEQ.PeakGains(3) = mPEQ.PeakGains(3) - 1.5;结束Count = Count + 1;结束

发行版(fileReader)发布(mPEQ)发布(deviceWriter)

通过指定您的multibandParametricEQ对象在均衡之前执行过采样。

创建一个单频带均衡器。想象均衡器带的中心频率接近奈奎斯特速率。

mPEQ = multibandParametricEQ (“NumEQBands”,1,“频率”, 9.5 e3,“PeakGains”10);可视化(mPEQ)

i = 1:1000 mPEQ。频率= mPEQ.Frequencies + 8;结束

均衡器频带扭曲。

创建一个带均衡器Oversample设置为真正的.想象均衡器带的中心频率接近奈奎斯特速率。

mPEQOversampled = multibandParametricEQ (“NumEQBands”,1,“频率”, 9.5 e3,“PeakGains”10“Oversample”,真正的);可视化(mPEQOversampled)

i = 1:1000 mpeq过采样。频率= mPEQOversampled.Frequencies + 8;结束

减少翘曲。

创建一个dsp。AudioFileReader一帧一帧地读音频。创建一个audioDeviceWriter将音频写入您的声卡。创建一个multibandParametricEQ来处理音频数据。调用可视化绘制均衡器的频率响应图。

frameLength = 1024;fileReader = dsp。AudioFileReader (“RockDrums-44p1-stereo-11secs.mp3”“SamplesPerFrame”, frameLength);deviceWriter = audioDeviceWriter (“SampleRate”, fileReader.SampleRate);均衡器= multibandParametricEQ (“SampleRate”, fileReader。SampleRate,“PeakGains”, (2, 2, 4));可视化(平衡)

调用parameterTuner在流式传输时打开UI以调谐均衡器的参数。

parameterTuner(平衡)

在音频流循环中:

  1. 从文件中读取音频帧。

  2. 应用均衡。

  3. 将音频帧写入音频设备以供收听。

在流媒体时,调整均衡器的参数,并听取效果。

~isDone(fileReader) audioIn = fileReader();audioOut =均衡器(audioIn);deviceWriter (audioOut);drawnowlimitrate%需要更新参数结束

作为一种最佳实践,一旦完成就释放对象。

发行版(deviceWriter)发布(fileReader)发布(平衡)

扩展功能

介绍了R2016a