Main Content

音频刺激器

Generate sine, square, and sawtooth waveforms

描述

音频刺激器System Object™生成可调波形。典型用途包括生成测试工作台的测试信号,以及用于音频效果的控制信号的生成。属性音频刺激器系统对象指定生成的波形类型。

生成可调波形:

  1. 创建音频刺激器对象并设置其属性。

  2. 用参数调用对象,就好像它是一个函数一样。

要了解有关系统对象如何工作的更多信息,请参阅什么是系统对象?

创建

描述

OSC=音频振兴器创建音频振荡器系统对象,OSC,,,,with default property values.

OSC=音频振荡器(SignalTyPevalue设置信号类型财产为SignalTyPevalue

OSC=音频振荡器(SignalTyPevalue,,,,频率值设置频率财产为频率值

OSC = Audioscillter(___,,,,名称,价值设置每个属性姓名到指定的价值。未指定的属性具有默认值。

Example:OSC = AUDIOSCOSCILLATOR('SignalType','Sine','频率',8000,'dcoffset',1)创建一个系统对象,OSC,它产生8 kHz正弦曲线,而直流偏移。

特性

展开全部

除非另有说明,否则属性是nontunable,,,,which means you cannot change their values after calling the object. Objects lock when you call them, and the发布功能解锁它们。

如果财产是可调,您可以随时更改其价值。

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

由您生成的波形类型音频刺激器对象,指定为'正弦',,,,'正方形', 或者'锯齿

波形是使用该算法生成的,,,,square, 和sawtoothfunctions.

可调:

数据类型:char|细绳

Hz中生成的波形的频率,被指定为实际标量的真实标量或向量大于或等于0。

  • 对于正弦波形,指定频率作为标量或长度的向量NumTones

  • 对于方波形,指定频率作为标量。

  • 对于锯齿波形,指定频率作为标量。

可调:是的

数据类型:单身的|双倍的

生成的波形的振幅,被指定为实际标量的真实标量或向量大于或等于0。

  • 对于正弦波形,指定振幅作为长度的向量NumTones

  • 对于方波形,指定振幅作为标量。

  • 对于锯齿波形,指定振幅作为标量。

生成的波形乘以指定的值振幅在输出之前,之前dcoffset被申请;被应用。

可调:是的

数据类型:单身的|双倍的

生成的波形的归一化相位偏移,被指定为实际标量的真实标量或具有值[0,1]的值的实际标量。该范围是归一化的2π-Radian间隔。

  • 对于正弦波形,指定阶段分组作为长度的向量NumTones

  • 对于方波形,指定阶段分组作为标量。

  • 对于锯齿波形,指定阶段分组作为标量。

可调:

数据类型:单身的|双倍的

为生成波形的每个元素添加值,该元素指定为真实标量的真实标量或向量。

  • 对于正弦波形,指定dcoffset作为长度的向量NumTones

  • 对于方波形,指定dcoffset作为标量。

  • 对于锯齿波形,指定dcoffset作为标量。

可调:是的

数据类型:单身的|双倍的

总结纯正弦波形音调的数量,然后由音频振荡器产生。

单个音调是根据指定的值生成的频率,,,,振幅,,,,阶段分组, 和dcoffset

可调:

依赖性

To enable this property, set信号类型'正弦'

数据类型:单身的|双倍的

Square waveform duty cycle, specified as a scalar in the range [0, 1].

Square waveform duty cycle是波形高于中值幅度的一个时期的百分比。一个占空比of 1 or 0 is equivalent to a DC offset.

可调:是的

依赖性

To enable this property, set信号类型'正方形'

数据类型:单身的|双倍的

锯齿宽度,在[0,1]范围内指定为标量。

锯齿宽度确定最大发生的锯齿波形周期中的点。

可调:是的

依赖性

To enable this property, set信号类型'锯齿

数据类型:单身的|双倍的

每帧的样品数量,指定为[1,192000]范围内的正整数。

此属性决定了您的矢量长度音频刺激器对象输出。

可调:是的

数据类型:单身的|双倍的|int8|int16|int32|INT64|UINT8|uint16|UINT32|Uint64

Hz中生成波形的采样率,指定为正标量大于指定值的两倍频率

可调:是的

数据类型:单身的|双倍的

生成波形的数据类型,指定为'双倍的'或者'单身的'

可调:是的

数据类型:char|细绳

用法

描述

例子

波形= OSC()generates a waveform output,波形。波形的类型由系统对象的算法和属性指定OSC

输出参数

展开全部

来自音频振荡器的波形输出,作为列向量返回,长度为长度SamplesPerFrame财产。

数据类型:单身的|双倍的

对象功能

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

释放(OBJ)

展开全部

CreateAudiopluginClass 创建实现功能的音频插件类系统对象
parameterTuner 流式传输时调谐对象参数
configuremidi 配置音频对象和MIDI控制器之间的MIDI连接
脱节 断开MIDI控件与音频对象
getmidiconnections Get MIDI connections of audio object
克隆 创造duplicate系统对象
被锁住了 确定是否系统对象is in use
发布 释放资源并允许更改系统对象属性值和输入特征
重置 Reset internal states of系统对象
系统对象算法

CreateAudiopluginClassconfiguremidifunctions map tunable properties of the音频刺激器系统对象到面向用户的参数:

财产 范围 映射 Units
频率 [0.1,20000] 日志 赫兹
振幅 [0,10] 线性 no units
dcoffset [–10, 10] 线性 no units
占空比(设置时可用信号类型'正方形' [0,1] 线性 no units
宽度(设置时可用信号类型'锯齿 [0,1] 线性 no units

例子

全部收缩

使用音频刺激器至generate a variable-frequency sine wave.

创造an audio oscillator to generate a sine wave. Use the default settings.

OSC = Audioscillter;

创建一个时间范围来可视化音频振荡器生成的可变频率正弦波。

范围= timescope(...'采样率',移动,...'timespansource',,,,'财产',,,,'时间跨度',0.1,...'ylimits',[ -  1.5,1.5],...“ timespanoverrunaction”,,,,'滚动',,,,...'ShowGrid',真的,...'Title',,,,“可变的正弦波”);

Place the audio oscillator in an audio stream loop. Increase the frequency of your sine wave in 50-Hz increments.

计数器= 0;尽管(计数器<1E4)计数器=计数器 + 1;正弦波= OSC();范围(Sinewave);如果mod(counter,1000)==0 osc.Frequency = osc.Frequency + 50;结尾结尾

Tune the frequency of an audio oscillator at regularly spaced intervals to create a melody. Play the melody to your audio output device.

创建一个结构以保持旋律中的音符的频率值。

notes = struct('C4',261.63,'E4',329.63,'G4sharp',415.30,'a4',440,'b4',493.88,...'C5',523.25,'d5',587.25,'d5sharp',622.25,'e5',659.25,'安静',0);

创造音频刺激器AudioDeviceWriter对象。使用默认设置。

OSC = Audioscillter;adw = audiodevicewriter;

创建一个矢量,其最初的毛皮旋律。

旋律= [注释。...Notes.E5 NOTES.D5SHARP NOTES.E5 NOTES.D5SHARP NOTES.E5 NOTES.B4...Notes.D5 NOTES.C5 NOTES.A4 NOTES.A4 NOTES.SILESE...notes.C4 notes.E4 notes.A4 notes.B4 notes.B4 notes.Silence...NOTES.E4 NOTES.G4SHARP NOTES.B4 NOTES.C5 NOTES.C5 NOTES.SILESE];

指定注意持续时间在秒。在一个音频stream loop, call your audio oscillator and write the sound to your audio device. Update the frequency of the audio oscillator in注释time steps to follow the melody. As a best practice, release your objects once complete.

注释= 0.3;i = 1;抽动尽管i 如果toc> = noctededIuration i = i + 1;osc.frequency = melody(i);抽动结尾结尾释放(OSC)释放(ADW)

创建低频振荡器(LFO)低通滤波器,使用音频刺激器作为控制信号。

创造dsp.audiofilereaderAudioDeviceWriter系统对象从音频文件读取并写入您的音频设备。创建一个Biquad滤波器对象,以将低通滤波应用于音频信号。

filereader = dsp.audiofilereader('文件名',,,,'Engine-16-44p1-Stereo-20sec.wav');DeviceWriter = AudioDeviceWriter('采样率',fileReader.mamplater);lowpassfilter = dsp.biquadfilter(...'Sosmatrixsource',,,,“输入端口”,,,,...“ scalevaluesInputport”,错误的);

创建音频振荡器对象。您的音频振荡器控制音频流循环中低通滤波器的截止频率。

OSC = Audioscillter(“信号类型”,,,,'锯齿,,,,...'dcoffset',0.05,...'Amplitude',0.03,...“ SampleSperFrame”,filereader.samplesperframe,...'采样率',fileReader.mamplater,...'频率',5);

在循环中,通过低通滤波器过滤音频信号。将输出信号写入您的音频设备。

尽管〜ISDONE(FILEREADER)AUDIOIN = FILEREADER();ctrlSignal = OSC();[B,A] = DesignVarslopeFilter(48,CtrlSignal(end));AudioOut = LowPassFilter(Audioin,b,a);DeviceWriter(AudioOut);结尾

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

释放(OSC)版本(fileReader)版本(devicewriter)

有关LFO过滤器的更完整实现,请参见Audiopluginexample.lfoffilterin the一个udio Plugin Example Gallery

扩展功能

版本历史记录

在R2016a中引入