科学音频处理,第三部分 - 如何应用高级数学处理效果对音频文件与Ubuntu上的Octave 4.0

我们的数字音频处理教程系列的第三部分涵盖信号调制,我们解释如何应用幅度调制,颤音效应...

我们的数字音频处理教程系列的第三部分涵盖了信号调制,我们将解释如何应用幅度调制,颤音效应和频率变化。

调制

调幅

顾名思义,该效果根据要发送的消息改变正弦波的幅度。 正弦波被称为载波,因为它携带信息。 这种类型的调制用于一些商业广播和传输公民频带(AM)。

为什么要使用幅度调制?

调制辐射。

如果通信信道是可用空间,则需要天线辐射和接收信号。 它需要一个有效的电磁辐射天线,其尺寸与辐射信号的波长相同数量级。 包括音频组件在内的许多信号通常为100Hz或更少。 对于这些信号,如果要直接辐射信号,则有必要构建长度为300公里的天线。 如果信号调制用于在高频载波上打印消息,那么就说100 MHz,那么天线的长度只能超过一米(横向长度)。

集中调制或多通道。

如果多个信号使用单个信道,则可以使用调制来将不同的信号传送到不同的频谱位置,从而允许接收机选择所需的信号。 使用浓度(“复用”)的应用包括遥测数据,立体声FM收音机和长途电话。

调制以克服设备的局限性。

诸如滤波器和放大器之类的信号处理装置的性能以及可以构造这些装置的容易性取决于频域中的信号的情况以及较高频率和低信号之间的关系。 调制可用于将信号传输到频域中的位置,其中满足设计要求更容易。 调制还可以用于将“宽带信号”(最高和最低频率之间的比率较大的信号)转换成“窄带”的符号。

音效

许多音频效果由于可以处理这种信号的引人注目和易于使用而使用幅度调制。 我们可以列举诸如颤音,合唱,镶边等等。这个实用程序是我们在本教程系列中的重点。

颤音效应

颤音效应是幅度调制的最简单的应用之一,为了实现这一效果,我们必须通过周期性信号(正弦波或其他方式)来改变(乘)音频信号。

>> tremolo='tremolo.ogg';
>> fs=44100;
>> t=0:1/fs:10;
>> wo=2*pi*440*t;
>> wa=2*pi*1.2*t;
>> audiowrite(tremolo, cos(wa).*cos(wo),fs);


颤音

这将产生一个正弦形信号,其效果就像一个“颤音”。

颤音形状

Tremolo在真实的音频文件


现在我们将在现实世界中展示颤音效果:首先,我们使用以前用“A”的男声录制的文件。 该信号的情节如下:

>> [y,fs]=audioread('A.ogg');
>> plot(y);


声乐

现在我们必须创建一个包络正弦信号,具有以下参数:

幅度= 1
频率1.5Hz
阶段= 0

>> t=0:1/fs:4.99999999;
>> t=t(:);
>> w=2*pi*1.5*t;
>> q=cos(w);
>> plot(q);

注意:当我们创建一个时间值的数组时,默认情况下,它以列的形式创建,即1x220500值。 要乘以这组值必须将其转置为行(220500x1)。 这是t = t(:)命令

鼻窦


我们将创建一个包含所产生的调制信号的第二个ogg文件:

>> tremolo='tremolo.ogg';
>> audiowrite(tremolo, q.*y,fs);



颤音信号



频率变化

我们可以改变频率,以获得非常有趣的音乐效果,如失真,电影和游戏的音效等。

正弦频率调制的影响

这是正弦曲线调制频率显示的代码,根据等式:

Y = Ac * Cos(wo * Cos(wo / k))

哪里:

Ac =幅度

wo =基频

k =标量因子

>> fm='fm.ogg';
>> fs=44100;
>> t=0:1/fs:10;
>> w=2*pi*442*t;
>> audiowrite(fm, cos(cos(w/1500).*w), fs);
>> [y,fs]=audioread('fm.ogg');
>> figure (); plot (y);


信号的图是:



您可以使用几乎任何类型的周期功能作为频率调制器。 对于这个例子,我们在这里只使用一个正弦函数。 请随意尝试更改功能的频率,与其他功能混合或更改,甚至功能类型。