Main Content

crossoverFilter

音频跨界过滤器GydF4y2Ba

Description

这GydF4y2BacrossoverFilterSystem Object™实现了音频交叉过滤器,该滤波器用于将音频信号拆分为两个或多个频段。交叉过滤器是多频过滤器,其总幅度频率响应是平坦的。GydF4y2Ba

实现音频交叉过滤器:GydF4y2Ba

  1. Create thecrossoverFilterOBJect and set its properties.

  2. Call the object with arguments, as if it were a function.

要了解有关系统对象如何工作的更多信息,请参阅GydF4y2BaWhat Are System Objects?

Creation

Description

crossFilt = crossoverFilter创建一个系统对象,GydF4y2BacrossFilt,这实现了音频交叉过滤器。GydF4y2Ba

CrossFilt =交叉倒闭(GydF4y2BancrossoversGydF4y2Ba)GydF4y2Ba设置GydF4y2BaNumCrossoversGydF4y2Ba财产为GydF4y2BancrossoversGydF4y2Ba。GydF4y2Ba

CrossFilt =交叉倒闭(GydF4y2BancrossoversGydF4y2Ba,,,,GydF4y2BaxfrequenciesGydF4y2Ba)GydF4y2Ba设置GydF4y2BaCrossoverFrequencies财产为GydF4y2BaxfrequenciesGydF4y2Ba。GydF4y2Ba

CrossFilt =交叉倒闭(GydF4y2BancrossoversGydF4y2Ba,,,,GydF4y2BaxfrequenciesGydF4y2Ba,,,,GydF4y2BaXSlopesGydF4y2Ba)GydF4y2Ba设置GydF4y2BaCrossoverSlopes财产为GydF4y2BaXSlopesGydF4y2Ba。GydF4y2Ba

CrossFilt =交叉倒闭(GydF4y2BancrossoversGydF4y2Ba,,,,GydF4y2BaxfrequenciesGydF4y2Ba,,,,GydF4y2BaXSlopesGydF4y2Ba,,,,GydF4y2BaFSGydF4y2Ba)GydF4y2Ba设置GydF4y2BaSampleRate财产为GydF4y2BaFSGydF4y2Ba。GydF4y2Ba

CrossFilt =交叉倒闭(GydF4y2Ba___GydF4y2Ba,,,,GydF4y2Ba名称,价值GydF4y2Ba)GydF4y2Ba设置每个属性GydF4y2Banameto the specified价值GydF4y2Ba。未指定的属性具有默认值。GydF4y2Ba

Example:CrossFilt =交叉倒闭(2,,,,“交叉频率”,,,,[100,800],'CrossoverSlopes',[6,48])创建一个系统对象,GydF4y2BacrossFilt,有两个分频器位于100 Hz和800 Hz,分别为6 dB/八度和48 dB/八度的跨界斜率。GydF4y2Ba

Properties

expand all

Unless otherwise indicated, properties arenontunable,,,,which means you cannot change their values after calling the object. Objects lock when you call them, and the发布GydF4y2Ba功能解锁它们。GydF4y2Ba

如果a property istunable,您可以随时更改其价值。GydF4y2Ba

For more information on changing property values, see使用系统对象在MATLAB中的系统设计GydF4y2Ba。GydF4y2Ba

大小响应带交叉口的数量,,,,specified as a scalar integer in the range 1 to 4.

这number of bands output when implementing crossover filtering is one more than theNumCrossoversGydF4y2Bavalue.

大小响应带交叉口的数量GydF4y2Ba number of bands output
1GydF4y2Ba 两个波段GydF4y2Ba
2GydF4y2Ba 三频GydF4y2Ba
3GydF4y2Ba four-band
4GydF4y2Ba five-band

可调:GydF4y2Ba不GydF4y2Ba

Data Types:single|GydF4y2Badouble|GydF4y2Baint8GydF4y2Ba|GydF4y2Baint16|GydF4y2Baint32|GydF4y2Baint64|GydF4y2Bauint8|GydF4y2Bauint16|GydF4y2Bauint32|GydF4y2Bauint64

Hz中的交叉频率,指定为真实值的标量或向量GydF4y2BaNumCrossoversGydF4y2Ba。GydF4y2Ba

跨界频率GydF4y2Ba是多播交叉滤波器中使用的单个两波段交叉滤波器的幅度响应带的相互作用。GydF4y2Ba

可调:GydF4y2BaYes

Data Types:single|GydF4y2Badouble

DB/OCTAVE中的交叉斜率,在范围内指定为真实值的标量或向量[6:6:48]。如果指定的跨界斜率不在范围内,则将斜率舍入到最近的允许值。GydF4y2Ba

  • 如果GydF4y2BaCrossoverSlopes是标量,所有两波段分量的交叉斜率都采用该值。GydF4y2Ba

  • 如果GydF4y2BaCrossoverSlopesis a vector of lengthNumCrossoversGydF4y2Ba,相应的两波段分量跨界斜率采用这些值。GydF4y2Ba

Crossover slopes如两个波段分量跨界中指定的相关交叉频率处的单个频段的斜率。GydF4y2Ba

可调:GydF4y2BaYes

Data Types:single|GydF4y2Badouble|GydF4y2Baint8GydF4y2Ba|GydF4y2Baint16|GydF4y2Baint32|GydF4y2Baint64|GydF4y2Bauint8|GydF4y2Bauint16|GydF4y2Bauint32|GydF4y2Bauint64

Input sample rate in Hz, specified as a positive scalar.

可调:GydF4y2BaYes

Data Types:single|GydF4y2Badouble

用法GydF4y2Ba

Description

例子GydF4y2Ba

[band1,...,bandN]= crossfilt(GydF4y2BaaudioIn)GydF4y2Ba在输入上应用一个交叉过滤器,GydF4y2BaaudioIn, 和returns the filtered output bands,[band1,...,bandN],,,,wheren =GydF4y2BaNumCrossoversGydF4y2Ba+ 1GydF4y2Ba。GydF4y2Ba

输入参数GydF4y2Ba

expand all

Audio input to the crossover filter, specified as a matrix. The columns of the matrix are treated as independent audio channels.

Data Types:single|GydF4y2Badouble

Output Arguments

expand all

音频带从交叉滤波器输出,返回作为一组GydF4y2BanGydF4y2Babands. TheNumCrossoversGydF4y2Baproperty determines the number of return arguments:n =GydF4y2BaNumCrossoversGydF4y2Ba+ 1GydF4y2Ba。每个输出参数的大小与GydF4y2BaaudioIn。GydF4y2Ba

Data Types:single|GydF4y2Badouble

对象功能GydF4y2Ba

要使用对象函数,请将系统对象指定为第一个输入参数。例如,释放名称的系统对象的系统资源GydF4y2BaOBJGydF4y2Ba,,,,use this syntax:

释放(OBJ)GydF4y2Ba

expand all

可视化GydF4y2Ba 可视化交叉滤波器的幅度响应GydF4y2Ba
cost 估计音频的实施成本GydF4y2BaSystem objectsGydF4y2Ba
createAudioPluginClass 创建实现功能的音频插件类GydF4y2BaSystem object
parameterTuner 流式传输时调谐对象参数GydF4y2Ba
configuremidiGydF4y2Ba 配置音频对象和MIDI控制器之间的MIDI连接GydF4y2Ba
脱节GydF4y2Ba 断开MIDI控件与音频对象GydF4y2Ba
getmidiconnectionsGydF4y2Ba Get MIDI connections of audio object
克隆GydF4y2Ba Create duplicateSystem object
被锁住了GydF4y2Ba Determine ifSystem objectis in use
发布GydF4y2Ba 释放资源并允许更改GydF4y2BaSystem object属性值和输入特征GydF4y2Ba
reset Reset internal states ofSystem object
step RunSystem object算法GydF4y2Ba

这GydF4y2BacreateAudioPluginClass和GydF4y2BaconfiguremidiGydF4y2Bafunctions map tunable properties of thecrossoverFilterSystem object to user-facing parameters:

财产GydF4y2Ba 范围GydF4y2Ba 映射GydF4y2Ba 单元GydF4y2Ba
CrossoverFrequencies [20,20000]GydF4y2Ba 线性GydF4y2Ba 赫兹GydF4y2Ba
CrossoverSlopes [6, 48] 线性GydF4y2Ba DB/八度GydF4y2Ba

Examples

全部收缩GydF4y2Ba

使用GydF4y2BacrossoverFilter将高斯噪声分为三个单独的频带。GydF4y2Ba

创建一个假设24 kHz样品速率的5秒噪声信号。GydF4y2Ba

fs = 24e3; noise = randn(fs*5,1);

创建一个GydF4y2BacrossoverFilter物体具有2个交叉(3个频段),4 kHz和8 kHz的交叉频率,48 dB/八度的斜率,样品速率为24 kHz。GydF4y2Ba

CrossFilt =交叉倒闭(GydF4y2Ba。。。GydF4y2Ba'numCrossovers'GydF4y2Ba,,,,2,,,,GydF4y2Ba。。。GydF4y2Ba“交叉频率”GydF4y2Ba,,,,[4000,8000],。。。GydF4y2Ba“跨界”GydF4y2Ba,,,,48,。。。GydF4y2Ba'SampleRate',,,,fs);

可视化交叉滤波器对象的幅度响应。GydF4y2Ba

可视化(Crossfilt)GydF4y2Ba

Call your crossover filter like a function with the noise signal as the argument.

[Y1,Y2,Y3] = Crossfilt(噪声);GydF4y2Ba

使用频谱图可视化结果。GydF4y2Ba

数字(GydF4y2Ba'Position',[100,100,800,700])子图(4,1,1)频谱图(噪声,120,100,6000,FS,FS,GydF4y2Ba'yaxis'GydF4y2Ba)title('噪音'GydF4y2Ba)subplot(4,1,2) spectrogram(y1,120,100,6000,fs,'yaxis'GydF4y2Ba)title('y1')子图(4,1,3)频谱图(Y2,120,100,6000,FS,,GydF4y2Ba'yaxis'GydF4y2Ba)title('y2')subplot(4,1,4) spectrogram(y3,120,100,6000,fs,'yaxis'GydF4y2Ba)title('y3')GydF4y2Ba

图包含4个轴对象。带标题噪声的轴对象1包含类型图像的对象。带标题Y1的轴对象2包含类型图像的对象。带标题Y2的轴对象3包含类型图像的对象。带标题Y3的轴对象4包含类型图像的对象。GydF4y2Ba

使用GydF4y2BacrossoverFilter对象将音频信号分为三个频段。GydF4y2Ba

Create thedsp.audiofilereaderGydF4y2Ba和GydF4y2BaAudioDeviceWriterGydF4y2Ba对象。利用读者的采样率sample rate of the writer.

SampleSperFrame = 256;filereader = dsp.audiofilereader(GydF4y2Ba。。。GydF4y2Ba'Rockguitar-16-44p1-Stereo-72secs.wav'GydF4y2Ba,,,,GydF4y2Ba。。。GydF4y2Ba“ SampleSperFrame”GydF4y2Ba,,,,samplesPerFrame); deviceWriter = audioDeviceWriter(。。。GydF4y2Ba'SampleRate',fileReader.mamplater);GydF4y2Ba

创建一个GydF4y2BacrossoverFilter物体具有2个跨界车(3个频段),500 Hz和1 kHz的交叉频率,以及18 dB/八度的斜率。使用读取器的采样率作为交叉滤波器的采样率。GydF4y2Ba

CrossFilt =交叉倒闭(GydF4y2Ba。。。GydF4y2Ba'numCrossovers'GydF4y2Ba,,,,2,,,,GydF4y2Ba。。。GydF4y2Ba“交叉频率”GydF4y2Ba,,,,[500,1000],。。。GydF4y2Ba“跨界”GydF4y2Ba,,,,18,。。。GydF4y2Ba'SampleRate',fileReader.mamplater);GydF4y2Ba

可视化跨界滤波器的带。GydF4y2Ba

可视化(Crossfilt)GydF4y2Ba

Get the cost of the crossover filter.

cost(crossFilt)
ans =GydF4y2Ba带有字段的结构:GydF4y2BanumCoefficients: 48 NumStates: 18 MultiplicationsPerInputSample: 48 AdditionsPerInputSample: 37

创建一个spectrum analyzer to visualize the effect of the crossover filter.

范围= dsp.spectrumanalyaler(GydF4y2Ba。。。GydF4y2Ba'SampleRate',fileReader.mamplater,GydF4y2Ba。。。GydF4y2Ba'PlotAsTwoSidedSpectrum',错误的,GydF4y2Ba。。。GydF4y2Ba'FrequencyScale',,,,GydF4y2Ba'日志'GydF4y2Ba,,,,GydF4y2Ba。。。GydF4y2Ba'FrequencyResolutionMethod',,,,GydF4y2Ba'WindowLength',,,,GydF4y2Ba。。。GydF4y2Ba'WindowLength',,,,samplesPerFrame,。。。GydF4y2Ba'Title',,,,GydF4y2Ba'Crossover Bands and Reconstructed Signal',,,,GydF4y2Ba。。。GydF4y2Ba“ Showlegend”GydF4y2Ba,真的,GydF4y2Ba。。。GydF4y2Ba'ChannelNames',{GydF4y2Ba'Original Signal',,,,GydF4y2Ba'Band 1',,,,GydF4y2Ba'Band 2',,,,GydF4y2Ba'Band 3',,,,GydF4y2Ba'Sum'});

播放音频信号的10秒。可视化原始音频,跨界带和重建信号(频段之和)的光谱。GydF4y2Ba

设置(范围,一个(SampleSperFrame,5))计数= 0;GydF4y2Ba尽管GydF4y2Bacount < (fileReader.SampleRate/samplesPerFrame)*10 originalSignal = fileReader(); [band1,band2,band3] = crossFilt(originalSignal); sumOfBands = band1 + band2 + band3; scope([originalSignal(:,1),。。。GydF4y2Baband1(:,1),GydF4y2Ba。。。GydF4y2Baband2(:,1),GydF4y2Ba。。。GydF4y2Baband3(:,1),GydF4y2Ba。。。GydF4y2Basumofbands(::,1)])devicewriter(sumofbands);count = count + 1;GydF4y2Ba结尾GydF4y2Ba发布(fileReader) release(crossFilt) release(deviceWriter) release(scope)

Figure Spectrum Analyzer contains an axes object and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes object with title Crossover Bands and Reconstructed Signal contains 5 objects of type line. These objects represent Original Signal, Band 1, Band 2, Band 3, Sum.

De-essing is the process of diminishing sibilant sounds in an audio signal. Sibilance refers to thesGydF4y2Ba,,,,GydF4y2BazGydF4y2Ba, 和GydF4y2Bashsounds in speech, which can be disproportionately emphasized during recording.esGydF4y2Ba声音属于所有辅音的无声演讲类别,并且频率比声音的语音更高。在此示例中,您可以通过将信号分离为高频和低频,应用扩展器降低偏置频率,然后将通道混合来通过施加频率来将拆分频段删除。GydF4y2Ba

创建一个GydF4y2Badsp.audiofilereaderGydF4y2BaOBJect and anAudioDeviceWriterGydF4y2BaOBJect to read from a sound file and write to an audio device. Listen to the unprocessed signal. Then release the file reader and device writer.

filereader = dsp.audiofilereader(GydF4y2Ba。。。GydF4y2Ba'Sibilance.wav');DeviceWriter = AudioDeviceWriter;GydF4y2Ba尽管GydF4y2Ba〜ISDONE(FILEREADER)AUDIOIN = FILEREADER();DeviceWriter(Audioin);GydF4y2Ba结尾GydF4y2Ba释放(DeviceWriter)版本(fileReader)GydF4y2Ba

创建一个n扩展器GydF4y2BaSystem object to de-ess the audio signal. Set the sample rate of the expander to the sample rate of the audio file. Create a two-band crossover filter with a crossover of 3000 Hz. Sibilance is usually found in this range. Set the crossover slope to 12. Plot the frequency response of the crossover filter to confirm your design visually.

dRExpander = expander(。。。GydF4y2Ba'Threshold',-50,GydF4y2Ba。。。GydF4y2Ba“攻击时间”GydF4y2Ba,,,,0.05,。。。GydF4y2Ba'推出日期'GydF4y2Ba,,,,0.05,。。。GydF4y2Ba“ holdtime”GydF4y2Ba,,,,0.005,。。。GydF4y2Ba'SampleRate',fileReader.mamplater);CrossFilt =交叉倒闭(GydF4y2Ba。。。GydF4y2Ba'numCrossovers'GydF4y2Ba,,,,1,,,,GydF4y2Ba。。。GydF4y2Ba“交叉频率”GydF4y2Ba,,,,3000,。。。GydF4y2Ba“跨界”GydF4y2Ba,,,,12);可视化(Crossfilt)GydF4y2Ba

创建一个GydF4y2Ba时限GydF4y2BaOBJect to visualize the original and processed audio signals.

范围= timescope(GydF4y2Ba。。。GydF4y2Ba'SampleRate',fileReader.mamplater,GydF4y2Ba。。。GydF4y2Ba“ timespanoverrunaction”GydF4y2Ba,,,,GydF4y2Ba'滚动'GydF4y2Ba,,,,GydF4y2Ba。。。GydF4y2Ba'timespansource'GydF4y2Ba,,,,GydF4y2Ba'Property',,,,GydF4y2Ba'TimeSpan',,,,4,,,,GydF4y2Ba。。。GydF4y2Ba'BufferLength',,,,fileReader.SampleRate*8,。。。GydF4y2Ba'ylimits'GydF4y2Ba,[-1 1],GydF4y2Ba。。。GydF4y2Ba'ShowGrid',真的,GydF4y2Ba。。。GydF4y2Ba“ Showlegend”GydF4y2Ba,真的,GydF4y2Ba。。。GydF4y2Ba'ChannelNames',{GydF4y2Ba'Original',,,,GydF4y2Ba'处理'GydF4y2Ba});

In an audio stream loop:

  1. Read in a frame of the audio file.

  2. 将音频信号分为两个频段。GydF4y2Ba

  3. Apply dynamic range expansion to the upper band.

  4. Remix the channels.

  5. Write the processed audio signal to your audio device for listening.

  6. 在时间范围内可视化处理和未经处理的信号。GydF4y2Ba

As a best practice, release your objects once done.

尽管GydF4y2Ba〜ISDONE(FILEREADER)AUDIOIN = FILEREADER();[band1,band2] = crossfilt(audioin);band2processed = dRExpander(band2); procAudio = band1 + band2processed; deviceWriter(procAudio); scope([audioIn procAudio]);结尾GydF4y2Ba释放(DeviceWriter)版本(FILEREADER)版本(范围)GydF4y2Ba

释放(Crossfilt)释放(Drexpander)GydF4y2Ba

Plosives are consonant sounds resulting from a sudden release of airflow. They are most pronounced in words beginning withpGydF4y2Ba,,,,GydF4y2BadGydF4y2Ba, 和GydF4y2BaGGydF4y2Ba听起来。可以通过录制过程来强调plosives,并且通常会令人不快。在此示例中,您可以通过应用高通滤波和低频压缩来最大程度地减少语音信号的plosives。GydF4y2Ba

创建一个GydF4y2Badsp.audiofilereaderGydF4y2BaOBJect and aAudioDeviceWriterGydF4y2Ba对象从文件中读取音频信号并将音频信号写入设备。播放未加工的信号。然后发布文件读取器和设备编写器。GydF4y2Ba

filereader = dsp.audiofilereader(GydF4y2Ba'Audioplosives.wav'GydF4y2Ba);DeviceWriter = AudioDeviceWriter(GydF4y2Ba'SampleRate',fileReader.mamplater);GydF4y2Ba尽管GydF4y2Ba〜ISDONE(FILEREADER)AUDIOIN = FILEREADER();DeviceWriter(Audioin);GydF4y2Ba结尾GydF4y2Ba释放(DeviceWriter)版本(fileReader)GydF4y2Ba

设计一个高通滤波器,其陡峭的降低了120 Hz以下的所有频率。用一个GydF4y2Badsp。BiquadFilter实现高通滤波器设计的对象。创建一个以250 Hz的跨界车的交叉过滤器。交叉过滤器使您能够将感兴趣的频段分开进行处理。创建动态范围压缩机,以压缩plosive声音的动态范围。为了不应用化妆收益,请设置GydF4y2BaMakeupgainmodeGydF4y2Bato "财产”GydF4y2Ba和use the default 0 dB化妆GydF4y2Ba适当的价值。创建一个时间范围来可视化处理过的未加工音频信号。GydF4y2Ba

[B,A] = designVarSlopeFilter(48,120/(fileReader.SampleRate/2),"hi");biquadFilter = dsp.BiquadFilter(。。。GydF4y2Ba"SOSMatrixSource",,,,GydF4y2Ba“输入端口”GydF4y2Ba,,,,GydF4y2Ba。。。GydF4y2Ba"ScaleValuesInputPort",,,,false); crossFilt = crossoverFilter(。。。GydF4y2Ba"SampleRate",fileReader.mamplater,GydF4y2Ba。。。GydF4y2Ba"NumCrossovers",,,,1,,,,GydF4y2Ba。。。GydF4y2Ba“交叉频率”GydF4y2Ba,,,,250,。。。GydF4y2Ba"CrossoverSlopes",,,,48); dRCompressor = compressor(。。。GydF4y2Ba"Threshold",,,,-35,。。。GydF4y2Ba“比率”GydF4y2Ba,,,,10,。。。GydF4y2Ba"KneeWidth",20,GydF4y2Ba。。。GydF4y2Ba“攻击时间”GydF4y2Ba,1E-4,GydF4y2Ba。。。GydF4y2Ba“推出日期”GydF4y2Ba,3E-1,GydF4y2Ba。。。GydF4y2Ba"MakeUpGainMode",,,,GydF4y2Ba“财产”GydF4y2Ba,,,,GydF4y2Ba。。。GydF4y2Ba"SampleRate",fileReader.mamplater);范围= timescope(GydF4y2Ba。。。GydF4y2Ba"SampleRate",fileReader.mamplater,GydF4y2Ba。。。GydF4y2Ba"TimeSpanSource",,,,GydF4y2Ba“财产”GydF4y2Ba,,,,GydF4y2Ba"TimeSpan",,,,3,,,,GydF4y2Ba。。。GydF4y2Ba"BufferLength",fileReader.mamplater*3*2,GydF4y2Ba。。。GydF4y2Ba"YLimits",[-1 1],GydF4y2Ba。。。GydF4y2Ba“ showgrid”GydF4y2Ba,真的,GydF4y2Ba。。。GydF4y2Ba“ Showlegend”GydF4y2Ba,真的,GydF4y2Ba。。。GydF4y2Ba“频道名称”GydF4y2Ba,{GydF4y2Ba'Original',,,,GydF4y2Ba'处理'GydF4y2Ba});

In an audio stream loop:

  1. Read in a frame of the audio file.

  2. 使用双向过滤器应用高通滤波。GydF4y2Ba

  3. 将音频信号分为两个频段。GydF4y2Ba

  4. 将动态范围压缩施加到较低频段。GydF4y2Ba

  5. Remix the channels.

  6. Write the processed audio signal to your audio device for listening.

  7. 在时间范围内可视化处理和未经处理的信号。GydF4y2Ba

As a best practice, release your objects once done.

尽管GydF4y2Ba〜ISDONE(FILEREADER)AUDIOIN = FILEREADER();Audioin = Biquadfilter(Audioin,b,a);[band1,band2] = crossfilt(audioin);band1 compressed = dRCompressor(band1);AudioOut = band1compressed + band2;DeviceWriter(AudioOut);范围([Audioin AudioOut])GydF4y2Ba结尾GydF4y2Ba

As a best practice, release your objects once done.

释放(DeviceWriter)版本(fileReader)发布(crossFilt) release(dRCompressor) release(scope)

创建一个GydF4y2Badsp.audiofilereaderGydF4y2Ba在逐帧中阅读。创建一个GydF4y2BaAudioDeviceWriterGydF4y2Ba将音频写入您的声卡。创建一个GydF4y2BacrossoverFilterto process the audio data. Call visualize to plot the frequency responses of the filters.

Framelength = 1024;filereader = dsp.audiofilereader(GydF4y2Ba'RockDrums-44p1-stereo-11secs.mp3',,,,GydF4y2Ba。。。GydF4y2Ba“ SampleSperFrame”GydF4y2Ba,,,,frameLength); deviceWriter = audioDeviceWriter('SampleRate',fileReader.mamplater);xfilt =交叉倒数(GydF4y2Ba'SampleRate',fileReader.mamplater);可视化(xFilt)

CallparameterTunerto open a UI to tune parameters of the crossover filter while streaming.

parameterTuner(xFilt)

In an audio stream loop:

  1. Read in a frame of audio from the file.

  2. 应用跨界过滤。GydF4y2Ba

  3. 将音频框架写入您的音频设备以进行聆听。GydF4y2Ba

While streaming, tune parameters of the crossover filter and listen to the effect.

尽管GydF4y2Ba〜ISDONE(FILEREADER)AUDIOIN = FILEREADER();[low,high] = xFilt(audioIn); deviceWriter([low(:,1),high(:,1)]); drawnowlimitrate更新参数所需的%GydF4y2Ba结尾GydF4y2Ba

As a best practice, release your objects once done.

释放(DeviceWriter)版本(fileReader)发布(xFilt)

算法GydF4y2Ba

expand all

交叉系统对象被实现为二进制的跨界对树,并具有附加的相位截面GydF4y2Ba[1]。Odd-order crossovers are implemented with Butterworth filters, while even-order crossovers are implemented with cascaded Butterworth filters (Linkwitz-Riley filters).

References

[1] D'Appolito,JosephA。“多道路通道跨界系统的积极实现。”GydF4y2BaJournal of Audio Engineering Society。Vol. 35, Issue 4, 1987, pp. 239–245.

Extended Capabilities

也可以看看GydF4y2Ba

对象GydF4y2Ba

Blocks

在R2016a中引入GydF4y2Ba