限幅器
动态范围限幅器
描述
的限幅器独立系统对象™执行砖墙动态范围限制在每个输入通道。动态范围限制抑制响亮声音的音量,穿过一个给定的阈值。它使用指定的攻击和释放时间,以达到顺利应用增益曲线。的属性限幅器系统对象指定类型的动态范围限制。
执行动态范围限制:
创建限幅器对象并设置其属性。
调用对象的参数,就好像它是一个函数。
了解更多关于系统对象是如何工作的,看到的系统对象是什么?
创建
描述
dRL =限幅器
创建一个系统对象,dRL独立,执行砖墙动态范围限制在每个输入通道。
dRL =限制器(thresholdValue)
设置阈值财产thresholdValue。
dRL =限制器(<年代pan class="argument_placeholder">___,名称,值)
每个属性集的名字到指定的价值。未指定的属性有默认值。
例子:dRL =限制器(AttackTime, 0.01,“SampleRate”, 16000年)创建一个系统对象,dRL,10 ms的攻击时间和16 kHz的采样率。
属性
属性,除非另有注明<年代pan class="emphasis">nontunable后,这意味着你不能改变它们的值调用对象。对象锁当你叫他们,释放函数打开它们。
如果一个属性<年代pan class="emphasis">可调在任何时候,你可以改变它的值。
改变属性值的更多信息,请参阅系统设计在MATLAB使用系统对象。
阈值
- - - - - -<年代pan itemprop="purpose">操作阈值(dB)
-10年
(默认)|<年代pan itemprop="inputvalue">真正的标量
操作在dB阈值,指定为一个真正的标量。
操作阈值是上面获得应用于输入信号。
可调:是的
数据类型:单|双
KneeWidth
- - - - - -<年代pan itemprop="purpose">膝盖宽度(dB)
0
(默认)|<年代pan itemprop="inputvalue">真正的标量
膝盖宽度在dB,指定为一个真正的标量大于或等于0。
膝盖宽度的过渡区在限幅特性。
软膝盖特点,定义的过渡区域的关系
的范围<年代pan class="inlineequation">
。
ydB是输出水平。
xdB是输入水平。
T在dB的阈值。
W在dB膝盖宽度。
可调:是的
数据类型:单|双
AttackTime
- - - - - -<年代pan itemprop="purpose">攻击时间(年代)
0
(默认)|<年代pan itemprop="inputvalue">真正的标量
攻击时间间隔,以秒为单位指定为一个真正的标量大于或等于0。
攻击的时间是时间限制器增益从10%上升到90%以上其最终价值当输入阈值。
可调:是的
数据类型:单|双
ReleaseTime
- - - - - -<年代pan itemprop="purpose">发布时间(年代)
0.2
(默认)|<年代pan itemprop="inputvalue">真正的标量
释放时间以秒为单位,指定为一个真正的标量大于或等于0。
释放时间是时间限制器获得从90%下降到10%的最终价值当输入低于阈值。
可调:是的
数据类型:单|双
MakeUpGainMode
- - - - - -<年代pan itemprop="purpose">化妆增益模式
“属性”
(默认)|<年代pan itemprop="inputvalue">“汽车”
化妆增益模式,指定为“汽车”或“属性”。
“汽车”——化妆应用获得的输出动态范围限制器,这样一个稳态0分贝输入输出0分贝。
“属性”——化妆增益设置为指定的值MakeUpGain财产。
可调:没有
数据类型:字符|字符串
MakeUpGain
- - - - - -<年代pan itemprop="purpose">化妆增益(dB)
0
(默认)|<年代pan itemprop="inputvalue">真正的标量
化妆在dB,指定为一个真正的标量。
化妆获得在限制补偿增益损失。它是应用于动态范围的输出限幅器。
可调:是的
依赖关系
要启用这个特性,设置MakeUpGainMode来“属性”。
数据类型:单|双
SampleRate
- - - - - -<年代pan itemprop="purpose">输入采样率(赫兹)
44100年
(默认)|<年代pan itemprop="inputvalue">积极的标量
输入采样率在赫兹,指定为一个积极的标量。
可调:是的
数据类型:单|双
EnableSidechain
- - - - - -<年代pan itemprop="purpose">使sidechain输入
假
(默认)|<年代pan itemprop="inputvalue">真正的
使sidechain输入、指定为真正的或假。这个属性决定了可用的输入的数量限幅器对象。
假——Sidechain输入和禁用限幅器对象接受一个输入:audioIn数据是有限的。
真正的——Sidechain输入和启用限幅器对象接收两个输入:audioIn数据是有限的和sidechain用于计算限幅器的输入获得。
sidechain数据类型和长度(帧)必须是一样的audioIn。
sidechain输入渠道的数量必须等于渠道的数量audioIn或等于1。当sidechain通道的数量是1,获得基于这个通道计算应用于所有的渠道audioIn。当sidechain通道的数量等于通道的数量audioIn,获得计算每个sidechain通道应用于相应的通道audioIn。
可调:没有
使用
描述
输入参数
audioIn- - - - - -<年代pan itemprop="purpose">音频输入限幅器
矩阵
音频输入限幅器,指定为一个矩阵。矩阵的列被视为独立的音频通道。
数据类型:单|双
输出参数
audioOut从限制器,音频输出矩阵
音频输出限幅器,作为一个矩阵返回相同的大小audioIn。
数据类型:单|双
获得——获得应用的限制器(dB)矩阵
限幅器获得应用,作为一个矩阵返回相同的大小audioIn。
数据类型:单|双
对象的功能
使用一个目标函数,指定系统对象作为第一个输入参数。例如,释放系统资源的系统对象命名obj使用这个语法:
发行版(obj)
特定于限幅器
可视化
可视化动态范围控制器的静态特性
createAudioPluginClass
创建音频插件类实现的功能<年代pan class="trademark entity">系统对象
parameterTuner
调整对象参数而流
MIDI
configureMIDI
配置MIDI音频对象和MIDI控制器之间的连接
disconnectMIDI
断开MIDI控制从音频对象
getMIDIConnections
MIDI音频对象的连接
的createAudioPluginClass和configureMIDI函数映射的可调谐特性限幅器系统对象面向用户的参数:
财产
范围
映射
单位
阈值
(-50 0)
线性
dB
KneeWidth
[0,20]
线性
dB
AttackTime
[0, 4]
线性
秒
ReleaseTime
[0, 4]
线性
秒
MakeUpGain(当你设定可用MakeUpGainMode来“属性”)
(-10年,24)
线性
dB
例子
限制音频信号
使用动态范围限制抑制响亮声音的音量。
设置dsp.AudioFileReader和audioDeviceWriter™系统对象。
frameLength = 1024;fileReader = dsp.AudioFileReader (<年代pan style="color:#0000FF">…“文件名”,<年代pan style="color:#A020F0">“RockDrums-44p1-stereo-11secs.mp3”,<年代pan style="color:#0000FF">…“SamplesPerFrame”,frameLength);deviceWriter = audioDeviceWriter (<年代pan style="color:#0000FF">…“SampleRate”,fileReader.SampleRate);
设置限幅器-15分贝的阈值,0.005秒的进攻时间,释放时间为0.1秒。化妆增益设置为0分贝(默认)。指定该值,设置化妆增益模式“属性”但不要指定MakeUpGain财产。使用你的音频文件阅读器的采样率。
dRL =限制器(-15<年代pan style="color:#0000FF">…“AttackTime”,0.005,<年代pan style="color:#0000FF">…“ReleaseTime”,0.1,<年代pan style="color:#0000FF">…“MakeUpGainMode”,<年代pan style="color:#A020F0">“属性”,<年代pan style="color:#0000FF">…“SampleRate”,fileReader.SampleRate);
设置一个时间范围可视化原始信号和有限的信号。
范围= timescope (<年代pan style="color:#0000FF">…“SampleRate”fileReader.SampleRate,<年代pan style="color:#0000FF">…“TimeSpanOverrunAction”,<年代pan style="color:#A020F0">“滚动”,<年代pan style="color:#0000FF">…“TimeSpanSource”,<年代pan style="color:#A020F0">“属性”,<年代pan style="color:#0000FF">…“时间间隔”,1<年代pan style="color:#0000FF">…“BufferLength”44100 * 4,<年代pan style="color:#0000FF">…“YLimits”[1],<年代pan style="color:#0000FF">…“ShowGrid”,真的,<年代pan style="color:#0000FF">…“LayoutDimensions”(2,1),<年代pan style="color:#0000FF">…“NumInputPorts”2,<年代pan style="color:#0000FF">…“ShowLegend”,真的,<年代pan style="color:#0000FF">…“标题”,(<年代pan style="color:#A020F0">原始与有限的音频(上)的…和限幅器增益在dB(底部)]);
播放音频和可视化处理范围。
而~结束(fileReader) x = fileReader ();(y, g) = dRL (x);deviceWriter (y);x1 = x (: 1);日元= y (: 1);g1 = g (: 1);范围(g1 (x1, y1));<年代pan style="color:#0000FF">结束发布(fileReader)发布(dRL)发布(deviceWriter)发布(范围)
比较动态范围限制器和压缩机
动态范围限幅器是一种特殊类型的动态范围压缩。在限值器,上面一个操作阈值水平有限。限幅器的最简单的实现,效果相当于音频剪辑。在压缩机,高于一个操作使用一个指定的压缩比阈值降低。使用压缩比结果平滑处理信号。
比较限制器和压缩机应用于正弦信号
创建一个限幅器™和系统对象压缩机系统对象。设置AttackTime和ReleaseTime两个对象的属性为零。创建一个audioOscillator生成一个正弦信号的系统对象频率设置为5和振幅设置为0.1。
dRL =限制器(<年代pan style="color:#A020F0">“AttackTime”0,<年代pan style="color:#A020F0">“ReleaseTime”,0);刚果民主共和国=压缩机(<年代pan style="color:#A020F0">“AttackTime”0,<年代pan style="color:#A020F0">“ReleaseTime”,0);osc = audioOscillator (<年代pan style="color:#A020F0">“频率”5,<年代pan style="color:#A020F0">“振幅”,0.1);
创建时间范围可视化生成正弦信号和正弦信号进行处理。
范围= timescope (<年代pan style="color:#0000FF">…“SampleRate”osc.SampleRate,<年代pan style="color:#0000FF">…“TimeSpanSource”,<年代pan style="color:#A020F0">“属性”,<年代pan style="color:#A020F0">“时间间隔”2,<年代pan style="color:#0000FF">…“BufferLength”osc.SampleRate * 4,<年代pan style="color:#0000FF">…“TimeSpanOverrunAction”,<年代pan style="color:#A020F0">“滚动”,<年代pan style="color:#0000FF">…“ShowGrid”,真的,<年代pan style="color:#0000FF">…“LayoutDimensions”(2 - 1),<年代pan style="color:#0000FF">…“NumInputPorts”2);范围。一个ctiveDisplay = 1; scope.Title =<年代pan style="color:#A020F0">“原始信号与有限信号”;范围。YLimits = [1];范围。一个ctiveDisplay = 2; scope.Title =<年代pan style="color:#A020F0">“原始信号与压缩信号”;范围。YLimits = [1];
在一个音频流循环,可视化原始正弦信号和正弦信号处理限制器和压缩机。增加原正弦信号的振幅来说明效果。
而osc。一个米plitude < 0.75 x = osc(); xLimited = dRL(x); xCompressed = dRC(x); scope([x xLimited],[x xCompressed]); osc.Amplitude = osc.Amplitude + 0.0002;<年代pan style="color:#0000FF">结束(范围)
释放(dRL)发布(dRC)发布(osc)
比较限制器和压缩机应用于音频信号
比较动态范围的影响限制器和压缩机鼓跟踪。创建一个dsp.AudioFileReader系统对象和一个audioDeviceWriter从文件系统对象读取音频和写你的音频输出设备。强调动态范围控制的影响,限幅器和压缩机的操作阈值设置为-20分贝。
dRL实验室。Threshold = -20; dRC.Threshold = -20; fileReader = dsp.AudioFileReader(<年代pan style="color:#A020F0">“FunkyDrums-44p1-stereo-25secs.mp3”);deviceWriter = audioDeviceWriter (<年代pan style="color:#A020F0">“SampleRate”,fileReader.SampleRate);
在一个循环中读取连续的帧从一个音频文件。听和比较的影响动态范围限制和动态范围压缩音频信号。
numFrames = 300;流(<年代pan style="color:#A020F0">“现在打原始信号…\ n”)
现在玩原始信号…
为i = 1: numFrames x = fileReader ();deviceWriter (x);<年代pan style="color:#0000FF">结束重置(fileReader);流(<年代pan style="color:#A020F0">“现在打有限信号…\ n”)
现在玩有限的信号…
为i = 1: numFrames x = fileReader ();xLimited = dRL (x);deviceWriter (xLimited);<年代pan style="color:#0000FF">结束重置(fileReader);流(<年代pan style="color:#A020F0">“现在打压缩信号…\ n”)
现在玩压缩信号…
为i = 1: numFrames x = fileReader ();xCompressed =刚果民主共和国(x);deviceWriter (xCompressed);<年代pan style="color:#0000FF">结束发布(fileReader)发布(deviceWriter)发布(dRC)发布(dRL)
调整限制器参数
创建一个dsp.AudioFileReader阅读的音频帧。创建一个audioDeviceWriter写音频你的声卡。创建一个限幅器处理音频数据。
frameLength = 1024;fileReader = dsp.AudioFileReader (<年代pan style="color:#A020F0">“RockDrums-44p1-stereo-11secs.mp3”,<年代pan style="color:#0000FF">…“SamplesPerFrame”,frameLength);deviceWriter = audioDeviceWriter (<年代pan style="color:#A020F0">“SampleRate”,fileReader.SampleRate);dRL =限制器(<年代pan style="color:#A020F0">“SampleRate”,fileReader.SampleRate);
调用parameterTuner打开一个UI的调优参数限制器而流。
parameterTuner (dRL)
在一个音频流循环:
阅读在一个框架的音频文件。
应用动态范围限制。
写的音频帧为倾听您的音频设备。
而流,调整参数的动态范围限制器,听的效果。
而~结束(fileReader) audioIn = fileReader ();audioOut = dRL (audioIn);deviceWriter (audioOut);drawnow<年代pan style="color:#A020F0">limitrate%更新所需参数结束
作为一项最佳实践,一旦完成释放你的对象。
发行版(deviceWriter)发布(fileReader)发布(dRL)
Sidechain闪避和限幅器
使用EnableSidechain输入的限幅器反对限制一个单独的音频信号的振幅水平。sidechain信号控制输入音频信号的动态范围限制。当sidechain信号超过限制器阈值限幅器激活和限制输入信号的振幅。sidechain信号水平低于阈值时,音频输入返回到原来的振幅。详细比较的压缩和动态范围限制,明白了比较动态范围限制器和压缩机。
准备音频文件
在本节中,您重新取样并在讲话文件作为输入EnableSidechain你的属性限幅器对象。
读入一个音频信号。重新取样来匹配输入音频信号的采样率(44.1 kHz)。
targetFs = 44100;[originalSpeech, originalFs] = audioread (<年代pan style="color:#A020F0">“彩虹- 16 - 8 mono - 114 secs.wav”);resampledSpeech =重新取样(originalSpeech targetFs originalFs);
垫的开始重新取样信号与价值10秒的0。这允许输入音频信号之前清楚地听到任何限制。
resampledSpeech = [0 (10 * targetFs, 1); resampledSpeech);
规范化的振幅,以避免潜在的剪裁。
resampledSpeech = resampledSpeech。/ max (resampledSpeech);
写重新取样,在规范化sidechain信号到一个文件。
audiowrite (<年代pan style="color:#A020F0">“resampledSpeech.wav”、resampledSpeech targetFs);
构造音频对象
构造一个dsp.AudioFileReader对象输入和sidechain信号。使用ReadRange财产的AudioFileReader输入信号,选择第二节和第26.5秒sidechain信号的回放。允许脚本运行下去,改变playbackCount变量的1来正。
inputAudio =<年代pan style="color:#A020F0">“SoftGuitar-44p1_mono-10mins.ogg”;sidechainAudio =<年代pan style="color:#A020F0">“resampledSpeech.wav”;playbackCount = 1;inputAudioAFR = dsp.AudioFileReader (inputAudio,<年代pan style="color:#A020F0">“PlayCount”playbackCount,<年代pan style="color:#A020F0">“ReadRange”,<年代pan style="color:#0000FF">…(115 * targetFs轮(145.4 * targetFs)));sidechainAudioAFR = dsp.AudioFileReader (sidechainAudio,<年代pan style="color:#A020F0">“PlayCount”playbackCount,<年代pan style="color:#0000FF">…“ReadRange”[1轮(26.5 * targetFs)));
构造一个限幅器对象。使用一个快速AttackTime和一个适度减缓ReleaseTime。这些设置是画外音的理想工作。确保输入音频的快速攻击时间是有限sidechain信号后立即超过限幅阈值。缓慢的释放时间保证的限制输入音频持续通过任何潜在的短暂沉默地区sidechain信号。
iAmYourLimiter =限制器(<年代pan style="color:#A020F0">“EnableSidechain”,真的,<年代pan style="color:#0000FF">…“SampleRate”targetFs,<年代pan style="color:#0000FF">…“阈值”,-48,<年代pan style="color:#0000FF">…“AttackTime”,0.01,<年代pan style="color:#0000FF">…“ReleaseTime”,1.75);
构造一个audioDeviceWriter对象sidechain和输入信号。
afw = audioDeviceWriter;
构造一个timescope对象查看未压缩的输入信号,sidechain信号,以及压缩输入信号。
范围= timescope (<年代pan style="color:#A020F0">“NumInputPorts”3,<年代pan style="color:#0000FF">…“SampleRate”targetFs,<年代pan style="color:#0000FF">…“TimeSpanSource”,<年代pan style="color:#A020F0">“属性”,<年代pan style="color:#0000FF">…“时间间隔”5,<年代pan style="color:#0000FF">…“TimeDisplayOffset”0,<年代pan style="color:#0000FF">…“LayoutDimensions”(3 - 1),<年代pan style="color:#0000FF">…“BufferLength”,targetFs * 15,<年代pan style="color:#0000FF">…“TimeSpanOverrunAction”,<年代pan style="color:#A020F0">“滚动”,<年代pan style="color:#0000FF">…“YLimits”[1],<年代pan style="color:#0000FF">…“ShowGrid”,真的,<年代pan style="color:#0000FF">…“标题”,<年代pan style="color:#A020F0">“原始输入音频——吉他”);范围。一个ctiveDisplay = 2; scope.YLimits = [-1 1]; scope.Title =<年代pan style="color:#A020F0">“Sidechain音频讲话”;范围。ShowGrid = true;范围。一个ctiveDisplay = 3; scope.YLimits = [-1 1]; scope.ShowGrid = true; scope.Title =<年代pan style="color:#A020F0">动态范围有限的输入音频——吉他;
创建音频流循环
阅读在一个框架的音频输入和sidechain信号。过程输入和sidechain信号与你限幅器对象。播放音频信号处理和显示音频数据使用timescope对象。
你的顶部面板timescope显示未处理的输入音频信号和中间面板显示sidechain音频信号。底部面板显示有限的输入音频信号。注意信号的振幅在顶部和底部面板是一样的,直到sidechain信号开始。一旦sidechain信号激活,振幅降低在底部面板。一旦sidechain信号结束,底部面板的振幅回到原来的水平。
而~结束(inputAudioAFR) inputAudioFrame = inputAudioAFR ();sideChainAudioFrame = sidechainAudioAFR ();limiterOutput = iAmYourLimiter (inputAudioFrame sideChainAudioFrame);afw (sideChainAudioFrame + limiterOutput);范围(inputAudioFrame sideChainAudioFrame limiterOutput);<年代pan style="color:#0000FF">结束
释放你的对象。
发行版(inputAudioAFR)发布(sidechainAudioAFR)发布(iAmYourLimiter)发布(afw)发布(范围)
算法
的限幅器系统对象过程信号逐帧和元素的元素。
将输入信号转换成数据库
的N分信号,x(n,转化为分贝:
获得计算机
xdB(n]通过获得计算机。获得计算机使用静态特征属性的动态范围限幅器砖墙获得高于阈值。
如果您指定一个柔软的膝盖,获得计算机静态特性如下:
在哪里T阈值和W是膝盖宽度。
如果你指定一个艰难的膝盖,获得计算机静态特性如下:
计算得到,<年代pan class="inlineequation">gc(n],计算
获得平滑
gc(n]使用指定的攻击和释放时间平滑:
攻击的时间系数,<年代pan class="inlineequation">α一个
,计算
释放时间系数,<年代pan class="inlineequation">αR,计算
T一个 是攻击时间,指定的AttackTime财产。<年代pan class="inlineequation">TR发布时间,指定的ReleaseTime财产。<年代pan class="inlineequation">Fs是输入采样率,指定的SampleRate财产。
计算和应用组成
如果MakeUpGainMode设置为默认吗“汽车”,化妆增益计算负0分贝计算获得的输入:
给定一个稳态输入0分贝,这个配置达到稳态输出0分贝。化妆增益的决定阈值和KneeWidth属性。它不依赖于输入信号。
化妆的增益,米添加到平滑收益,<年代pan class="inlineequation">g年代(n]:
计算和应用线性增益
dB的增益计算,<年代pan class="inlineequation">g米(n]转换成一个线性域:
给出了动态范围的输出限幅器
引用
[1]Giannoulis Dimitrios,迈克尔Massberg,约书亚·d·瑞斯。“数字动态范围压缩设计——一个教程和分析。”音频工程学会杂志》上。60卷,问题6,2012年,页399 - 408。
扩展功能
C / c++代码生成生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
另请参阅
限幅器 |<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">noiseGate
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">压缩机
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">扩张器
主题
介绍了R2016a
动态范围限幅器
描述
的限幅器独立系统对象™执行砖墙动态范围限制在每个输入通道。动态范围限制抑制响亮声音的音量,穿过一个给定的阈值。它使用指定的攻击和释放时间,以达到顺利应用增益曲线。的属性限幅器系统对象指定类型的动态范围限制。
执行动态范围限制:
创建限幅器对象并设置其属性。
调用对象的参数,就好像它是一个函数。
了解更多关于系统对象是如何工作的,看到的系统对象是什么?
的 执行动态范围限制: 创建 调用对象的参数,就好像它是一个函数。 了解更多关于系统对象是如何工作的,看到的
创建
描述
dRL =限幅器
创建一个系统对象,dRL独立,执行砖墙动态范围限制在每个输入通道。
dRL =限制器(thresholdValue)
设置阈值财产thresholdValue。
dRL =限制器(<年代pan class="argument_placeholder">___,名称,值)
每个属性集的名字到指定的价值。未指定的属性有默认值。
例子:dRL =限制器(AttackTime, 0.01,“SampleRate”, 16000年)创建一个系统对象,dRL,10 ms的攻击时间和16 kHz的采样率。
描述
dRL =限幅器
创建一个系统对象,dRL独立,执行砖墙动态范围限制在每个输入通道。
dRL =限制器(thresholdValue)
设置阈值财产thresholdValue。
dRL =限制器(<年代pan class="argument_placeholder">___,名称,值)
每个属性集的名字到指定的价值。未指定的属性有默认值。
例子:dRL =限制器(AttackTime, 0.01,“SampleRate”, 16000年)创建一个系统对象,dRL,10 ms的攻击时间和16 kHz的采样率。
dRL =限幅器
创建一个系统对象,
dRL =限制器(
设置
dRL =限制器(<年代pan class="argument_placeholder">___
每个属性集dRL =限制器(AttackTime, 0.01,“SampleRate”, 16000年)
属性
属性,除非另有注明<年代pan class="emphasis">nontunable后,这意味着你不能改变它们的值调用对象。对象锁当你叫他们,释放函数打开它们。
如果一个属性<年代pan class="emphasis">可调在任何时候,你可以改变它的值。
改变属性值的更多信息,请参阅系统设计在MATLAB使用系统对象。
阈值
- - - - - -<年代pan itemprop="purpose">操作阈值(dB)
-10年
(默认)|<年代pan itemprop="inputvalue">真正的标量
操作在dB阈值,指定为一个真正的标量。
操作阈值是上面获得应用于输入信号。
可调:是的
数据类型:单|双
KneeWidth
- - - - - -<年代pan itemprop="purpose">膝盖宽度(dB)
0
(默认)|<年代pan itemprop="inputvalue">真正的标量
膝盖宽度在dB,指定为一个真正的标量大于或等于0。
膝盖宽度的过渡区在限幅特性。
软膝盖特点,定义的过渡区域的关系
的范围<年代pan class="inlineequation">
。
ydB是输出水平。
xdB是输入水平。
T在dB的阈值。
W在dB膝盖宽度。
可调:是的
数据类型:单|双
AttackTime
- - - - - -<年代pan itemprop="purpose">攻击时间(年代)
0
(默认)|<年代pan itemprop="inputvalue">真正的标量
攻击时间间隔,以秒为单位指定为一个真正的标量大于或等于0。
攻击的时间是时间限制器增益从10%上升到90%以上其最终价值当输入阈值。
可调:是的
数据类型:单|双
ReleaseTime
- - - - - -<年代pan itemprop="purpose">发布时间(年代)
0.2
(默认)|<年代pan itemprop="inputvalue">真正的标量
释放时间以秒为单位,指定为一个真正的标量大于或等于0。
释放时间是时间限制器获得从90%下降到10%的最终价值当输入低于阈值。
可调:是的
数据类型:单|双
MakeUpGainMode
- - - - - -<年代pan itemprop="purpose">化妆增益模式
“属性”
(默认)|<年代pan itemprop="inputvalue">“汽车”
化妆增益模式,指定为“汽车”或“属性”。
“汽车”——化妆应用获得的输出动态范围限制器,这样一个稳态0分贝输入输出0分贝。
“属性”——化妆增益设置为指定的值MakeUpGain财产。
可调:没有
数据类型:字符|字符串
MakeUpGain
- - - - - -<年代pan itemprop="purpose">化妆增益(dB)
0
(默认)|<年代pan itemprop="inputvalue">真正的标量
化妆在dB,指定为一个真正的标量。
化妆获得在限制补偿增益损失。它是应用于动态范围的输出限幅器。
可调:是的
依赖关系
要启用这个特性,设置MakeUpGainMode来“属性”。
数据类型:单|双
SampleRate
- - - - - -<年代pan itemprop="purpose">输入采样率(赫兹)
44100年
(默认)|<年代pan itemprop="inputvalue">积极的标量
输入采样率在赫兹,指定为一个积极的标量。
可调:是的
数据类型:单|双
EnableSidechain
- - - - - -<年代pan itemprop="purpose">使sidechain输入
假
(默认)|<年代pan itemprop="inputvalue">真正的
使sidechain输入、指定为真正的或假。这个属性决定了可用的输入的数量限幅器对象。
假——Sidechain输入和禁用限幅器对象接受一个输入:audioIn数据是有限的。
真正的——Sidechain输入和启用限幅器对象接收两个输入:audioIn数据是有限的和sidechain用于计算限幅器的输入获得。
sidechain数据类型和长度(帧)必须是一样的audioIn。
sidechain输入渠道的数量必须等于渠道的数量audioIn或等于1。当sidechain通道的数量是1,获得基于这个通道计算应用于所有的渠道audioIn。当sidechain通道的数量等于通道的数量audioIn,获得计算每个sidechain通道应用于相应的通道audioIn。
可调:没有
属性,除非另有注明<年代pan class="emphasis">nontunable 如果一个属性<年代pan class="emphasis">可调 改变属性值的更多信息,请参阅 操作在dB阈值,指定为一个真正的标量。 操作阈值 可调: 数据类型: 膝盖宽度在dB,指定为一个真正的标量大于或等于0。 膝盖宽度 软膝盖特点,定义的过渡区域的关系
的范围<年代pan class="inlineequation">
。 y x T W 可调: 数据类型: 攻击时间间隔,以秒为单位指定为一个真正的标量大于或等于0。 攻击的时间 可调: 数据类型: 释放时间以秒为单位,指定为一个真正的标量大于或等于0。 释放时间 可调: 数据类型: 化妆增益模式,指定为 可调: 数据类型: 化妆在dB,指定为一个真正的标量。 化妆获得 可调: 要启用这个特性,设置 数据类型: 输入采样率在赫兹,指定为一个积极的标量。 可调: 数据类型: 使sidechain输入、指定为 sidechain数据类型和长度(帧)必须是一样的 sidechain输入渠道的数量必须等于渠道的数量 可调:释放
阈值
- - - - - -<年代pan itemprop="purpose">操作阈值(dB)-10年
(默认)|<年代pan itemprop="inputvalue">真正的标量单
KneeWidth
- - - - - -<年代pan itemprop="purpose">膝盖宽度(dB)0
(默认)|<年代pan itemprop="inputvalue">真正的标量
单
AttackTime
- - - - - -<年代pan itemprop="purpose">攻击时间(年代)0
(默认)|<年代pan itemprop="inputvalue">真正的标量单
ReleaseTime
- - - - - -<年代pan itemprop="purpose">发布时间(年代)0.2
(默认)|<年代pan itemprop="inputvalue">真正的标量单
MakeUpGainMode
- - - - - -<年代pan itemprop="purpose">化妆增益模式“属性”
(默认)|<年代pan itemprop="inputvalue">“汽车”
“汽车”
“属性”
字符
MakeUpGain
- - - - - -<年代pan itemprop="purpose">化妆增益(dB)0
(默认)|<年代pan itemprop="inputvalue">真正的标量依赖关系
单
SampleRate
- - - - - -<年代pan itemprop="purpose">输入采样率(赫兹)44100年
(默认)|<年代pan itemprop="inputvalue">积极的标量单
EnableSidechain
- - - - - -<年代pan itemprop="purpose">使sidechain输入假
(默认)|<年代pan itemprop="inputvalue">真正的
假
audioIn
真正的
audioIn
获得
audioIn
audioIn
获得
audioIn
audioIn
获得
audioIn
使用
描述
输入参数
audioIn- - - - - -<年代pan itemprop="purpose">音频输入限幅器
矩阵
音频输入限幅器,指定为一个矩阵。矩阵的列被视为独立的音频通道。
数据类型:单|双
输出参数
audioOut从限制器,音频输出矩阵
音频输出限幅器,作为一个矩阵返回相同的大小audioIn。
数据类型:单|双
获得——获得应用的限制器(dB)矩阵
限幅器获得应用,作为一个矩阵返回相同的大小audioIn。
数据类型:单|双
描述
输入参数
audioIn- - - - - -<年代pan itemprop="purpose">音频输入限幅器
矩阵
音频输入限幅器,指定为一个矩阵。矩阵的列被视为独立的音频通道。
数据类型:单|双
audioIn- - - - - -<年代pan itemprop="purpose">音频输入限幅器
矩阵
矩阵
音频输入限幅器,指定为一个矩阵。矩阵的列被视为独立的音频通道。 数据类型:单
输出参数
audioOut从限制器,音频输出矩阵
音频输出限幅器,作为一个矩阵返回相同的大小audioIn。
数据类型:单|双
获得——获得应用的限制器(dB)矩阵
限幅器获得应用,作为一个矩阵返回相同的大小audioIn。
数据类型:单|双
audioOut从限制器,音频输出矩阵
音频输出限幅器,作为一个矩阵返回相同的大小 数据类型:单
获得——获得应用的限制器(dB)矩阵
限幅器获得应用,作为一个矩阵返回相同的大小 数据类型:单
对象的功能
使用一个目标函数,指定系统对象作为第一个输入参数。例如,释放系统资源的系统对象命名obj使用这个语法:
发行版(obj)
特定于限幅器
可视化
可视化动态范围控制器的静态特性
createAudioPluginClass
创建音频插件类实现的功能<年代pan class="trademark entity">系统对象
parameterTuner
调整对象参数而流
MIDI
configureMIDI
配置MIDI音频对象和MIDI控制器之间的连接
disconnectMIDI
断开MIDI控制从音频对象
getMIDIConnections
MIDI音频对象的连接
的createAudioPluginClass和configureMIDI函数映射的可调谐特性限幅器系统对象面向用户的参数:
财产
范围
映射
单位
阈值
(-50 0)
线性
dB
KneeWidth
[0,20]
线性
dB
AttackTime
[0, 4]
线性
秒
ReleaseTime
[0, 4]
线性
秒
MakeUpGain(当你设定可用MakeUpGainMode来“属性”)
(-10年,24)
线性
dB
使用一个目标函数,指定系统对象作为第一个输入参数。例如,释放系统资源的系统对象命名 的发行版(obj)
特定于
可视化
可视化动态范围控制器的静态特性
createAudioPluginClass
创建音频插件类实现的功能<年代pan class="trademark entity">系统对象
parameterTuner
调整对象参数而流 MIDI
configureMIDI
配置MIDI音频对象和MIDI控制器之间的连接
disconnectMIDI
断开MIDI控制从音频对象
getMIDIConnections
MIDI音频对象的连接
财产 范围 映射 单位
阈值
(-50 0) 线性 dB
KneeWidth
[0,20] 线性 dB
AttackTime
[0, 4] 线性 秒
ReleaseTime
[0, 4] 线性 秒
MakeUpGain
(-10年,24) 线性 dB
例子
限制音频信号
使用动态范围限制抑制响亮声音的音量。
设置dsp.AudioFileReader和audioDeviceWriter™系统对象。
frameLength = 1024;fileReader = dsp.AudioFileReader (<年代pan style="color:#0000FF">…“文件名”,<年代pan style="color:#A020F0">“RockDrums-44p1-stereo-11secs.mp3”,<年代pan style="color:#0000FF">…“SamplesPerFrame”,frameLength);deviceWriter = audioDeviceWriter (<年代pan style="color:#0000FF">…“SampleRate”,fileReader.SampleRate);
设置限幅器-15分贝的阈值,0.005秒的进攻时间,释放时间为0.1秒。化妆增益设置为0分贝(默认)。指定该值,设置化妆增益模式“属性”但不要指定MakeUpGain财产。使用你的音频文件阅读器的采样率。
dRL =限制器(-15<年代pan style="color:#0000FF">…“AttackTime”,0.005,<年代pan style="color:#0000FF">…“ReleaseTime”,0.1,<年代pan style="color:#0000FF">…“MakeUpGainMode”,<年代pan style="color:#A020F0">“属性”,<年代pan style="color:#0000FF">…“SampleRate”,fileReader.SampleRate);
设置一个时间范围可视化原始信号和有限的信号。
范围= timescope (<年代pan style="color:#0000FF">…“SampleRate”fileReader.SampleRate,<年代pan style="color:#0000FF">…“TimeSpanOverrunAction”,<年代pan style="color:#A020F0">“滚动”,<年代pan style="color:#0000FF">…“TimeSpanSource”,<年代pan style="color:#A020F0">“属性”,<年代pan style="color:#0000FF">…“时间间隔”,1<年代pan style="color:#0000FF">…“BufferLength”44100 * 4,<年代pan style="color:#0000FF">…“YLimits”[1],<年代pan style="color:#0000FF">…“ShowGrid”,真的,<年代pan style="color:#0000FF">…“LayoutDimensions”(2,1),<年代pan style="color:#0000FF">…“NumInputPorts”2,<年代pan style="color:#0000FF">…“ShowLegend”,真的,<年代pan style="color:#0000FF">…“标题”,(<年代pan style="color:#A020F0">原始与有限的音频(上)的…和限幅器增益在dB(底部)]);
播放音频和可视化处理范围。
而~结束(fileReader) x = fileReader ();(y, g) = dRL (x);deviceWriter (y);x1 = x (: 1);日元= y (: 1);g1 = g (: 1);范围(g1 (x1, y1));<年代pan style="color:#0000FF">结束发布(fileReader)发布(dRL)发布(deviceWriter)发布(范围)
比较动态范围限制器和压缩机
动态范围限幅器是一种特殊类型的动态范围压缩。在限值器,上面一个操作阈值水平有限。限幅器的最简单的实现,效果相当于音频剪辑。在压缩机,高于一个操作使用一个指定的压缩比阈值降低。使用压缩比结果平滑处理信号。
比较限制器和压缩机应用于正弦信号
创建一个限幅器™和系统对象压缩机系统对象。设置AttackTime和ReleaseTime两个对象的属性为零。创建一个audioOscillator生成一个正弦信号的系统对象频率设置为5和振幅设置为0.1。
dRL =限制器(<年代pan style="color:#A020F0">“AttackTime”0,<年代pan style="color:#A020F0">“ReleaseTime”,0);刚果民主共和国=压缩机(<年代pan style="color:#A020F0">“AttackTime”0,<年代pan style="color:#A020F0">“ReleaseTime”,0);osc = audioOscillator (<年代pan style="color:#A020F0">“频率”5,<年代pan style="color:#A020F0">“振幅”,0.1);
创建时间范围可视化生成正弦信号和正弦信号进行处理。
范围= timescope (<年代pan style="color:#0000FF">…“SampleRate”osc.SampleRate,<年代pan style="color:#0000FF">…“TimeSpanSource”,<年代pan style="color:#A020F0">“属性”,<年代pan style="color:#A020F0">“时间间隔”2,<年代pan style="color:#0000FF">…“BufferLength”osc.SampleRate * 4,<年代pan style="color:#0000FF">…“TimeSpanOverrunAction”,<年代pan style="color:#A020F0">“滚动”,<年代pan style="color:#0000FF">…“ShowGrid”,真的,<年代pan style="color:#0000FF">…“LayoutDimensions”(2 - 1),<年代pan style="color:#0000FF">…“NumInputPorts”2);范围。一个ctiveDisplay = 1; scope.Title =<年代pan style="color:#A020F0">“原始信号与有限信号”;范围。YLimits = [1];范围。一个ctiveDisplay = 2; scope.Title =<年代pan style="color:#A020F0">“原始信号与压缩信号”;范围。YLimits = [1];
在一个音频流循环,可视化原始正弦信号和正弦信号处理限制器和压缩机。增加原正弦信号的振幅来说明效果。
而osc。一个米plitude < 0.75 x = osc(); xLimited = dRL(x); xCompressed = dRC(x); scope([x xLimited],[x xCompressed]); osc.Amplitude = osc.Amplitude + 0.0002;<年代pan style="color:#0000FF">结束(范围)
释放(dRL)发布(dRC)发布(osc)
比较限制器和压缩机应用于音频信号
比较动态范围的影响限制器和压缩机鼓跟踪。创建一个dsp.AudioFileReader系统对象和一个audioDeviceWriter从文件系统对象读取音频和写你的音频输出设备。强调动态范围控制的影响,限幅器和压缩机的操作阈值设置为-20分贝。
dRL实验室。Threshold = -20; dRC.Threshold = -20; fileReader = dsp.AudioFileReader(<年代pan style="color:#A020F0">“FunkyDrums-44p1-stereo-25secs.mp3”);deviceWriter = audioDeviceWriter (<年代pan style="color:#A020F0">“SampleRate”,fileReader.SampleRate);
在一个循环中读取连续的帧从一个音频文件。听和比较的影响动态范围限制和动态范围压缩音频信号。
numFrames = 300;流(<年代pan style="color:#A020F0">“现在打原始信号…\ n”)
现在玩原始信号…
为i = 1: numFrames x = fileReader ();deviceWriter (x);<年代pan style="color:#0000FF">结束重置(fileReader);流(<年代pan style="color:#A020F0">“现在打有限信号…\ n”)
现在玩有限的信号…
为i = 1: numFrames x = fileReader ();xLimited = dRL (x);deviceWriter (xLimited);<年代pan style="color:#0000FF">结束重置(fileReader);流(<年代pan style="color:#A020F0">“现在打压缩信号…\ n”)
现在玩压缩信号…
为i = 1: numFrames x = fileReader ();xCompressed =刚果民主共和国(x);deviceWriter (xCompressed);<年代pan style="color:#0000FF">结束发布(fileReader)发布(deviceWriter)发布(dRC)发布(dRL)
调整限制器参数
创建一个dsp.AudioFileReader阅读的音频帧。创建一个audioDeviceWriter写音频你的声卡。创建一个限幅器处理音频数据。
frameLength = 1024;fileReader = dsp.AudioFileReader (<年代pan style="color:#A020F0">“RockDrums-44p1-stereo-11secs.mp3”,<年代pan style="color:#0000FF">…“SamplesPerFrame”,frameLength);deviceWriter = audioDeviceWriter (<年代pan style="color:#A020F0">“SampleRate”,fileReader.SampleRate);dRL =限制器(<年代pan style="color:#A020F0">“SampleRate”,fileReader.SampleRate);
调用parameterTuner打开一个UI的调优参数限制器而流。
parameterTuner (dRL)
在一个音频流循环:
阅读在一个框架的音频文件。
应用动态范围限制。
写的音频帧为倾听您的音频设备。
而流,调整参数的动态范围限制器,听的效果。
而~结束(fileReader) audioIn = fileReader ();audioOut = dRL (audioIn);deviceWriter (audioOut);drawnow<年代pan style="color:#A020F0">limitrate%更新所需参数结束
作为一项最佳实践,一旦完成释放你的对象。
发行版(deviceWriter)发布(fileReader)发布(dRL)
Sidechain闪避和限幅器
使用EnableSidechain输入的限幅器反对限制一个单独的音频信号的振幅水平。sidechain信号控制输入音频信号的动态范围限制。当sidechain信号超过限制器阈值限幅器激活和限制输入信号的振幅。sidechain信号水平低于阈值时,音频输入返回到原来的振幅。详细比较的压缩和动态范围限制,明白了比较动态范围限制器和压缩机。
准备音频文件
在本节中,您重新取样并在讲话文件作为输入EnableSidechain你的属性限幅器对象。
读入一个音频信号。重新取样来匹配输入音频信号的采样率(44.1 kHz)。
targetFs = 44100;[originalSpeech, originalFs] = audioread (<年代pan style="color:#A020F0">“彩虹- 16 - 8 mono - 114 secs.wav”);resampledSpeech =重新取样(originalSpeech targetFs originalFs);
垫的开始重新取样信号与价值10秒的0。这允许输入音频信号之前清楚地听到任何限制。
resampledSpeech = [0 (10 * targetFs, 1); resampledSpeech);
规范化的振幅,以避免潜在的剪裁。
resampledSpeech = resampledSpeech。/ max (resampledSpeech);
写重新取样,在规范化sidechain信号到一个文件。
audiowrite (<年代pan style="color:#A020F0">“resampledSpeech.wav”、resampledSpeech targetFs);
构造音频对象
构造一个dsp.AudioFileReader对象输入和sidechain信号。使用ReadRange财产的AudioFileReader输入信号,选择第二节和第26.5秒sidechain信号的回放。允许脚本运行下去,改变playbackCount变量的1来正。
inputAudio =<年代pan style="color:#A020F0">“SoftGuitar-44p1_mono-10mins.ogg”;sidechainAudio =<年代pan style="color:#A020F0">“resampledSpeech.wav”;playbackCount = 1;inputAudioAFR = dsp.AudioFileReader (inputAudio,<年代pan style="color:#A020F0">“PlayCount”playbackCount,<年代pan style="color:#A020F0">“ReadRange”,<年代pan style="color:#0000FF">…(115 * targetFs轮(145.4 * targetFs)));sidechainAudioAFR = dsp.AudioFileReader (sidechainAudio,<年代pan style="color:#A020F0">“PlayCount”playbackCount,<年代pan style="color:#0000FF">…“ReadRange”[1轮(26.5 * targetFs)));
构造一个限幅器对象。使用一个快速AttackTime和一个适度减缓ReleaseTime。这些设置是画外音的理想工作。确保输入音频的快速攻击时间是有限sidechain信号后立即超过限幅阈值。缓慢的释放时间保证的限制输入音频持续通过任何潜在的短暂沉默地区sidechain信号。
iAmYourLimiter =限制器(<年代pan style="color:#A020F0">“EnableSidechain”,真的,<年代pan style="color:#0000FF">…“SampleRate”targetFs,<年代pan style="color:#0000FF">…“阈值”,-48,<年代pan style="color:#0000FF">…“AttackTime”,0.01,<年代pan style="color:#0000FF">…“ReleaseTime”,1.75);
构造一个audioDeviceWriter对象sidechain和输入信号。
afw = audioDeviceWriter;
构造一个timescope对象查看未压缩的输入信号,sidechain信号,以及压缩输入信号。
范围= timescope (<年代pan style="color:#A020F0">“NumInputPorts”3,<年代pan style="color:#0000FF">…“SampleRate”targetFs,<年代pan style="color:#0000FF">…“TimeSpanSource”,<年代pan style="color:#A020F0">“属性”,<年代pan style="color:#0000FF">…“时间间隔”5,<年代pan style="color:#0000FF">…“TimeDisplayOffset”0,<年代pan style="color:#0000FF">…“LayoutDimensions”(3 - 1),<年代pan style="color:#0000FF">…“BufferLength”,targetFs * 15,<年代pan style="color:#0000FF">…“TimeSpanOverrunAction”,<年代pan style="color:#A020F0">“滚动”,<年代pan style="color:#0000FF">…“YLimits”[1],<年代pan style="color:#0000FF">…“ShowGrid”,真的,<年代pan style="color:#0000FF">…“标题”,<年代pan style="color:#A020F0">“原始输入音频——吉他”);范围。一个ctiveDisplay = 2; scope.YLimits = [-1 1]; scope.Title =<年代pan style="color:#A020F0">“Sidechain音频讲话”;范围。ShowGrid = true;范围。一个ctiveDisplay = 3; scope.YLimits = [-1 1]; scope.ShowGrid = true; scope.Title =<年代pan style="color:#A020F0">动态范围有限的输入音频——吉他;
创建音频流循环
阅读在一个框架的音频输入和sidechain信号。过程输入和sidechain信号与你限幅器对象。播放音频信号处理和显示音频数据使用timescope对象。
你的顶部面板timescope显示未处理的输入音频信号和中间面板显示sidechain音频信号。底部面板显示有限的输入音频信号。注意信号的振幅在顶部和底部面板是一样的,直到sidechain信号开始。一旦sidechain信号激活,振幅降低在底部面板。一旦sidechain信号结束,底部面板的振幅回到原来的水平。
而~结束(inputAudioAFR) inputAudioFrame = inputAudioAFR ();sideChainAudioFrame = sidechainAudioAFR ();limiterOutput = iAmYourLimiter (inputAudioFrame sideChainAudioFrame);afw (sideChainAudioFrame + limiterOutput);范围(inputAudioFrame sideChainAudioFrame limiterOutput);<年代pan style="color:#0000FF">结束
释放你的对象。
发行版(inputAudioAFR)发布(sidechainAudioAFR)发布(iAmYourLimiter)发布(afw)发布(范围)
限制音频信号
使用动态范围限制抑制响亮声音的音量。 设置 设置 设置一个时间范围可视化原始信号和有限的信号。 播放音频和可视化处理范围。frameLength = 1024;fileReader = dsp.AudioFileReader (<年代pan style="color:#0000FF">…
dRL =限制器(-15<年代pan style="color:#0000FF">…
范围= timescope (<年代pan style="color:#0000FF">…
而
比较动态范围限制器和压缩机
动态范围限幅器是一种特殊类型的动态范围压缩。在限值器,上面一个操作阈值水平有限。限幅器的最简单的实现,效果相当于音频剪辑。在压缩机,高于一个操作使用一个指定的压缩比阈值降低。使用压缩比结果平滑处理信号。 比较限制器和压缩机应用于正弦信号 创建一个 创建时间范围可视化生成正弦信号和正弦信号进行处理。 在一个音频流循环,可视化原始正弦信号和正弦信号处理限制器和压缩机。增加原正弦信号的振幅来说明效果。 比较限制器和压缩机应用于音频信号 比较动态范围的影响限制器和压缩机鼓跟踪。创建一个 在一个循环中读取连续的帧从一个音频文件。听和比较的影响动态范围限制和动态范围压缩音频信号。dRL =限制器(<年代pan style="color:#A020F0">“AttackTime”
范围= timescope (<年代pan style="color:#0000FF">…
而
释放(dRL)发布(dRC)发布(osc)
dRL实验室。Threshold = -20; dRC.Threshold = -20; fileReader = dsp.AudioFileReader(<年代pan style="color:#A020F0">“FunkyDrums-44p1-stereo-25secs.mp3”
numFrames = 300;流(<年代pan style="color:#A020F0">“现在打原始信号…\ n”
现在玩原始信号…
为
现在玩有限的信号…
为
现在玩压缩信号…
为
调整限制器参数
创建一个 调用 在一个音频流循环: 阅读在一个框架的音频文件。 应用动态范围限制。 写的音频帧为倾听您的音频设备。 而流,调整参数的动态范围限制器,听的效果。 作为一项最佳实践,一旦完成释放你的对象。frameLength = 1024;fileReader = dsp.AudioFileReader (<年代pan style="color:#A020F0">“RockDrums-44p1-stereo-11secs.mp3”
parameterTuner (dRL)
而
发行版(deviceWriter)发布(fileReader)发布(dRL)
Sidechain闪避和限幅器
使用 准备音频文件 在本节中,您重新取样并在讲话文件作为输入 读入一个音频信号。重新取样来匹配输入音频信号的采样率(44.1 kHz)。 垫的开始重新取样信号与价值10秒的0。这允许输入音频信号之前清楚地听到任何限制。 规范化的振幅,以避免潜在的剪裁。 写重新取样,在规范化sidechain信号到一个文件。 构造音频对象 构造一个 构造一个 构造一个 构造一个 创建音频流循环 阅读在一个框架的音频输入和sidechain信号。过程输入和sidechain信号与你 你的顶部面板 释放你的对象。限幅器
targetFs = 44100;[originalSpeech, originalFs] = audioread (<年代pan style="color:#A020F0">“彩虹- 16 - 8 mono - 114 secs.wav”
resampledSpeech = [0 (10 * targetFs, 1); resampledSpeech);
resampledSpeech = resampledSpeech。/ max (resampledSpeech);
audiowrite (<年代pan style="color:#A020F0">“resampledSpeech.wav”
dsp.AudioFileReader
inputAudio =<年代pan style="color:#A020F0">“SoftGuitar-44p1_mono-10mins.ogg”
iAmYourLimiter =限制器(<年代pan style="color:#A020F0">“EnableSidechain”
audioDeviceWriter
afw = audioDeviceWriter;
timescope
范围= timescope (<年代pan style="color:#A020F0">“NumInputPorts”
而
发行版(inputAudioAFR)发布(sidechainAudioAFR)发布(iAmYourLimiter)发布(afw)发布(范围)
算法
的限幅器系统对象过程信号逐帧和元素的元素。
将输入信号转换成数据库
的N分信号,x(n,转化为分贝:
获得计算机
xdB(n]通过获得计算机。获得计算机使用静态特征属性的动态范围限幅器砖墙获得高于阈值。
如果您指定一个柔软的膝盖,获得计算机静态特性如下:
在哪里T阈值和W是膝盖宽度。
如果你指定一个艰难的膝盖,获得计算机静态特性如下:
计算得到,<年代pan class="inlineequation">gc(n],计算
获得平滑
gc(n]使用指定的攻击和释放时间平滑:
攻击的时间系数,<年代pan class="inlineequation">α一个
,计算
释放时间系数,<年代pan class="inlineequation">αR,计算
T一个 是攻击时间,指定的AttackTime财产。<年代pan class="inlineequation">TR发布时间,指定的ReleaseTime财产。<年代pan class="inlineequation">Fs是输入采样率,指定的SampleRate财产。
计算和应用组成
如果MakeUpGainMode设置为默认吗“汽车”,化妆增益计算负0分贝计算获得的输入:
给定一个稳态输入0分贝,这个配置达到稳态输出0分贝。化妆增益的决定阈值和KneeWidth属性。它不依赖于输入信号。
化妆的增益,米添加到平滑收益,<年代pan class="inlineequation">g年代(n]:
计算和应用线性增益
dB的增益计算,<年代pan class="inlineequation">g米(n]转换成一个线性域:
给出了动态范围的输出限幅器
的 的
x 如果您指定一个柔软的膝盖,获得计算机静态特性如下:
在哪里 如果你指定一个艰难的膝盖,获得计算机静态特性如下:
计算得到,<年代pan class="inlineequation">g
g
攻击的时间系数,<年代pan class="inlineequation">α
释放时间系数,<年代pan class="inlineequation">α
T 如果
给定一个稳态输入0分贝,这个配置达到稳态输出0分贝。化妆增益的决定 化妆的增益,
dB的增益计算,<年代pan class="inlineequation">g
给出了动态范围的输出限幅器
将输入信号转换成数据库
获得计算机
获得平滑
计算和应用组成
计算和应用线性增益
引用
[1]Giannoulis Dimitrios,迈克尔Massberg,约书亚·d·瑞斯。“数字动态范围压缩设计——一个教程和分析。”音频工程学会杂志》上。60卷,问题6,2012年,页399 - 408。
[1]Giannoulis Dimitrios,迈克尔Massberg,约书亚·d·瑞斯。“数字动态范围压缩设计——一个教程和分析。”
扩展功能
C / c++代码生成生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
C / c++代码生成生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
另请参阅
限幅器 |<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">noiseGate
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">压缩机
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">扩张器
主题
限幅器noiseGate
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">压缩机
|<年代pan itemscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">扩张器
主题
MATLAB命令
你点击一个链接对应MATLAB命令: 运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站: 选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。表现最好的网站怎么走吗
欧洲