主要内容

audioOscillator

生成正弦,广场,锯齿波形

描述

audioOscillator系统对象™产生可调的波形。典型用途包括测试信号的生成测试长椅,为音频和控制信号的生成的影响。的属性audioOscillator系统对象指定波形生成的类型。

产生可调的波形:

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

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

了解更多关于系统对象是如何工作的,看到的系统对象是什么?

创建

描述

osc= audioOscillator创建一个音频振荡器系统对象,osc默认的属性值。

osc= audioOscillator (signalTypeValue)设置SignalType财产signalTypeValue

osc= audioOscillator (signalTypeValue,frequencyValue)设置频率财产frequencyValue

osc = audioOscillator (___,名称,值)每个属性集的名字到指定的价值。未指定的属性有默认值。

例子:osc = audioOscillator (“SignalType”、“正弦”,“频率”,8000年,“DCOffset”, 1)创建一个系统对象,osc,8 kHz正弦信号的直流偏置。

属性

全部展开

属性,除非另有注明nontunable后,这意味着你不能改变它们的值调用对象。对象锁当你叫他们,释放函数打开它们。

如果一个属性可调在任何时候,你可以改变它的值。

改变属性值的更多信息,请参阅系统设计在MATLAB使用系统对象

类型的波形生成的audioOscillator对象,指定为的正弦,“广场”,或“锯齿”

生成的波形是使用指定的算法,广场,锯齿波功能。

可调:没有

数据类型:字符|字符串

生成的波形的频率在赫兹,指定为一个真正的标量或矢量的标量大于或等于0。

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

  • 对于广场波形,指定频率作为一个标量。

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

可调:是的

数据类型:|

生成的波形的振幅,指定为一个真正的标量或矢量的标量大于或等于0。

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

  • 对于广场波形,指定振幅作为一个标量。

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

生成的波形乘以所指定的值振幅在输出中,DCOffset应用。

可调:是的

数据类型:|

归一化相位偏移生成的波形,指定为一个真正的标量或矢量的真正的标量值的区间[0,1]。范围是一个规范化2π-radian间隔。

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

  • 对于广场波形,指定PhaseOffset作为一个标量。

  • 对于锯齿波形,指定PhaseOffset作为一个标量。

可调:没有

数据类型:|

附加值的每个元素生成的波形,指定为一个真正的标量或矢量的标量。

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

  • 对于广场波形,指定DCOffset作为一个标量。

  • 对于锯齿波形,指定DCOffset作为一个标量。

可调:是的

数据类型:|

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

个别音调的生成是基于指定的值频率,振幅,PhaseOffset,DCOffset

可调:没有

依赖关系

要启用这个特性,设置SignalType的正弦

数据类型:|

广场波形责任周期,指定为一个标量范围[0,1]。

方波形占空比的比例是一个周期的波形振幅高于中位数。一个DutyCycle的1或0相当于一个直流偏置。

可调:是的

依赖关系

要启用这个特性,设置SignalType“广场”

数据类型:|

锯齿波宽度,指定为一个标量范围[0,1]。

锯齿的宽度决定了在锯齿状波形发生最大的时期。

可调:是的

依赖关系

要启用这个特性,设置SignalType“锯齿”

数据类型:|

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

这个属性决定的向量长度audioOscillator对象输出。

可调:是的

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

生成的波形的采样率在赫兹,指定为一个积极的标量大于指定的值的两倍频率

可调:是的

数据类型:|

数据类型生成的波形,指定为“双”“单一”

可调:是的

数据类型:字符|字符串

使用

描述

例子

波形= osc ()生成一个输出波形,波形。波形的类型系统的算法和属性指定的对象,osc

输出参数

全部展开

波形的输出音频振荡器,作为一个列向量返回与指定的长度SamplesPerFrame财产。

数据类型:|

对象的功能

使用一个目标函数,指定系统对象作为第一个输入参数。例如,释放系统资源的系统对象命名obj使用这个语法:

发行版(obj)

全部展开

createAudioPluginClass 创建音频插件类实现的功能系统对象
parameterTuner 调整对象参数而流
configureMIDI 配置MIDI音频对象和MIDI控制器之间的连接
disconnectMIDI 断开MIDI控制从音频对象
getMIDIConnections MIDI音频对象的连接
克隆 创建重复的系统对象
isLocked 确定系统对象在使用
释放 释放资源,并允许修改系统对象属性值和输入特征
重置 重置的内部状态系统对象
一步 运行系统对象算法

createAudioPluginClassconfigureMIDI函数映射的可调谐特性audioOscillator系统对象面向用户的参数:

财产 范围 映射 单位
频率 (0.1,20000) 日志 赫兹
振幅 [0,10] 线性 任何单位
DCOffset (-10年,10) 线性 任何单位
DutyCycle(当你设定可用SignalType“广场”) [0,1] 线性 任何单位
宽度(当你设定可用SignalType“锯齿”) [0,1] 线性 任何单位

例子

全部折叠

使用audioOscillator生成一个变频正弦波。

创建一个音频振荡器来产生一个正弦波。使用默认设置。

osc = audioOscillator;

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

范围= timescope (“SampleRate”osc.SampleRate,“TimeSpanSource”,“属性”,“时间间隔”,0.1,“YLimits”[-1.5,1.5],“TimeSpanOverrunAction”,“滚动”,“ShowGrid”,真的,“标题”,“变频正弦波”);

音频振荡器在一个音频流循环。增加你在50 hz的正弦波的频率增量。

counter = 0;(柜台< 1 e4) counter = counter + 1;sineWave = osc ();范围(sineWave);如果国防部osc(计数器,1000)= = 0。频率= osc。频率+ 50;结束结束

定期调整音频振荡器的频率间隔的时间间隔来创建一个旋律。旋律你的音频输出设备。

创建一个结构来保存在旋律音符的频率值。

笔记=结构(“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);

创建audioOscillatoraudioDeviceWriter对象。使用默认设置。

osc = audioOscillator;aDW = audioDeviceWriter;

创建一个向量和最初的皮毛爱丽丝的旋律。

旋律=[笔记。沉默notes.Silence,笔记。E5笔记。D5sharp笔记。E5笔记。D5sharp笔记。E5 notes.B4笔记。D5笔记。C5笔记。A4笔记。A4笔记。Silence笔记。C4笔记。E4的笔记。A4笔记。B4笔记。B4 notes.Silence笔记。E4的笔记。G4sharp笔记。B4笔记。C5笔记。C5笔记。Silence];

指定注意持续时间在秒。在一个音频流循环,打电话给你的音频振荡器和写你的音频设备。更新音频振荡器的频率noteDuration时间步骤的旋律。作为一项最佳实践,完成后释放你的对象。

noteDuration = 0.3;i = 1;抽搐我<元素个数(旋律)语气= osc ();aDW(音);如果toc > = noteDuration我= i + 1;osc。频率=旋律(i);抽搐结束结束发布(osc)发布(aDW)

创建一个低频振荡器(LFO)低通滤波器,使用audioOscillator作为控制信号。

创建dsp.AudioFileReaderaudioDeviceWriter系统对象从一个音频文件读取和写你的音频设备。创建一个biquad过滤器对象低通滤波应用于你的音频信号。

fileReader = dsp.AudioFileReader (“文件名”,“Engine-16-44p1-stereo-20sec.wav”);deviceWriter = audioDeviceWriter (“SampleRate”,fileReader.SampleRate);lowpassFilter = dsp.BiquadFilter (“SOSMatrixSource”,输入端口的,“ScaleValuesInputPort”、假);

创建一个音频振荡器对象。你的音频振荡器控制低通滤波器的截止频率在音频流循环。

osc = audioOscillator (“SignalType”,“锯齿”,“DCOffset”,0.05,“振幅”,0.03,“SamplesPerFrame”fileReader.SamplesPerFrame,“SampleRate”fileReader.SampleRate,“频率”5);

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

~结束(fileReader) audioIn = fileReader ();ctrlSignal = osc ();[B] = designVarSlopeFilter(48岁ctrlSignal(结束));audioOut = lowpassFilter (audioIn B);deviceWriter (audioOut);结束

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

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

LFO过滤器的一个更完整的实现,明白了audiopluginexample.LFOFilter音频插件示例画廊

扩展功能

介绍了R2016a