主要内容

multibandParametricEQ

多波段参数均衡器

描述

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

实现一个多波段参数均衡器:

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

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

有关系统对象如何工作的详细信息,请参见什么是系统对象?

创建

描述

mPEQ = multibandparametereq创建一个System对象,mPEQ,实现多波段参数均衡。

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

例子:mPEQ = multibandparamtriceq ('NumEQBands',3,'频率',[300,1200,5000])创建一个多波段参数均衡器系统对象,mPEQ,NumEQBands设置为3.频率属性设置为(300、1200、5000)

请注意

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

创建参数

全部展开

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

均衡器频带数,指定为范围[1,10]内的整数。均衡器频带的数量不包括搁置滤波器、高通滤波器或低通滤波器。

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

例子:mPEQ = multibandparamtriceq ('NumEQBands',5)创建一个5个波段的多波段参数均衡器。

数据类型:|

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

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

例子:mPEQ = multibandparamtriceq ('EQOrder',6)创建一个多波段参数均衡器,默认为3个波段,均为6阶。

数据类型:|

低货架过滤器切换,指定为真正的

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

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

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

例子:mPEQ = multibandparamtriceq ('HasLowShelfFilter',true)创建一个默认的多频带参数均衡器,启用低货架滤波。

数据类型:逻辑

高架过滤器开关,指定为真正的

  • —在多带参数均衡器实现时,不要启用高架滤波。

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

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

例子:mPEQ = multibandparamtriceq ('HasHighShelfFilter',true)创建一个默认的多频带参数均衡器,并启用高架滤波。

数据类型:逻辑

低通滤波器开关,指定为真正的

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

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

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

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

数据类型:逻辑

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

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

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

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

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

数据类型:逻辑

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

  • ——在输入采样率下运行多波段参数均衡器。

  • 真正的——以两倍输入采样率运行多波段参数均衡器。过采样最小化了双线性变换引入的频率翘曲效应。

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

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

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

数据类型:逻辑

属性

全部展开

除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放功能解锁它们。

如果属性为可调,您可以随时更改其值。

有关更改属性值的详细信息,请参见使用系统对象的MATLAB系统设计

多波段均衡器

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

可调:是的

数据类型:|

均衡器频带的质量因子,以长度的行向量表示NumEQBands

可调:是的

数据类型:|

峰值或倾斜滤波器增益,单位为dB,指定为长度的行向量NumEQBands.向量由范围为[-inf, 20]的实标量组成。

可调:是的

数据类型:|

低架上过滤器

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

可调:是的

依赖关系

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

数据类型:|

低货架过滤器斜率系数,指定为正标量。

可调:是的

依赖关系

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

数据类型:|

低货架滤波器增益,以dB为单位,指定为实标量。

可调:是的

依赖关系

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

数据类型:|

高处过滤器

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

可调:是的

依赖关系

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

数据类型:|

高架滤波器斜率系数,指定为正标量。

可调:是的

依赖关系

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

数据类型:|

高架滤波器增益(以dB为单位),指定为实标量。

可调:是的

依赖关系

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

数据类型:|

低通滤波器

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

可调:是的

依赖关系

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

数据类型:|

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

可调:是的

依赖关系

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

数据类型:|

高通滤波器

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

可调:是的

依赖关系

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

数据类型:|

高通滤波器斜率(以分贝/倍频为单位),指定为范围内的实标量(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 确定系统对象正在使用中
释放 释放资源并允许更改系统对象属性值和输入特征
重置 重置的内部状态系统对象
一步 运行系统对象算法

createAudioPluginClass而且configureMIDI属性的可调属性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。AudioFileReader而且audioDeviceWriter对象。使用读者的抽样率作为作者的抽样率。调用设置减少音频流循环中初始化的计算负荷。

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

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

mPEQ = multibandparametereq (...“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);如果mod(count,100) == 0 mpeq . peakgain (1) = mpeq . peakgain (1) - 1.5;mpeq . peakgain (2) = mpeq . peakgain (2) + 1.5;mpeq . peakgain (3) = mpeq . peakgain (3) - 1.5;结束Count = Count + 1;结束

release(fileReader) release(mPEQ) release(deviceWriter)

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

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

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

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

均衡器带扭曲了。

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

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

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

减少了翘曲。

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

framength = 1024;fileReader = dsp。AudioFileReader (“RockDrums-44p1-stereo-11secs.mp3”“SamplesPerFrame”, frameLength);deviceWriter = audioDeviceWriter(“SampleRate”, fileReader.SampleRate);均衡器= multibandparametereq (“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中引入