在之前的教程中,我们看到了读取、写入和重放音频文件的简单步骤。从余弦函数等周期函数合成音频文件。在本操作指南中,我们将了解如何添加和乘以(调整)信号,并应用一些基本的数学函数来了解它们如何影响原始信号。信号叠加将两个信号S1(t)和S2(t)相加形成一个新的信号R(t),这个信号在任意时刻的值等于使它的两个信号的值之和在那一瞬间。像这样:R(t)=S1(t)+S2(t)我们将使用Octave重新生成两个信号的总和,并以图形方式查看实现的效果。首先,我们生成两个不同频率的信号,看看它们的叠加情况。第一步:生成两个不同频率的信号(oog文件)>>sig1='cos440.ogg';%creatingtheaudiofile@440Hz>>sig2='cos880.ogg';%creatingtheaudiofile@880Hz>>fs=44100;%generatingtheparametersvalues(Period,samplingfrequencyandangularfrequency)>>t=0:1/fs:0.02;>>w1=2*pi*440*t;>>w2=2*pi*880*t;>>audiowrite(sig1,cos(w1),fs);%writingthefunctioncos(w)onthefilescreated>>audiowrite(sig2,cos(w2),fs);然后我们绘制两个信号的图像。信号1(440Hz)的图像>>[y1,fs]=audioread(sig1);>>plot(y1)Imageofsignal1Imageofsignal2(880Hz)>>[y2,fs]=audioread(sig2);>>plot(y2)Plotofsignal2步骤2:两个信号的叠加现在我们显示了上一步中产生的两个信号的总和。>>sumres=y1+y2;>>plot(sumres)叠加信号的图像和信号的图像EffectinOctaver在Octaver中,这种效果产生的声音是独一无二的,因为它可以模拟a演奏的低音八音乐家一个度或更高八度的音符(取决于内部编程),模拟音符与原始音符配对,即两个音符产生相同的声音。第3步:添加两个真实信号(比如两首音乐歌曲)为此,我们使用两首来自格里高利圣歌的歌曲(声音样本)。AvemariaTrack首先,让我们看一下AvemariaTrack并绘制它:>>[y1,fs]=audioread('avemaria_.ogg');>>plot(y1)AvemariaTrackHymn(HymnusTrack)现在让我们看看赞美诗轨道并画出它的图像。>>[y2,fs]=audioread('hymnus.ogg');>>plot(y2)赞美圣母+赞美诗>>y='avehymnus.ogg';>>audiowrite(y,y1+y2,fs);>>[y,fs]=audioread('avehymnus.ogg');>>plot(y)Madonnasong+hymn这样一来,从音频上看,两个声音信号混在一起了。两个信号的乘积对于两个信号的乘积,我们可以使用类似于求和的方法。我们使用之前生成的相同文件。R(t)=S1(t)*S2(t)>>sig1='cos440.ogg';%creatingtheaudiofile@440Hz>>sig2='cos880.ogg';%creatingtheaudiofile@880Hz>>product='prod.ogg';%creatingtheaudiofileforproduct>>fs=44100;%generatingtheparametersvalues(Period,samplingfrequencyandangularfrequency)>>t=0:1/fs:0.02;>>w1=2*pi*440*t;>>w2=2*pi*880*t;>>audiowrite(sig1,cos(w1),fs);%writingthefunctioncos(w)onthefilecreated>>audiowrite(sig2,cos(w2),fs);>>[y1,fs]=audioread(sig1);>>[y2,fs]=audioread(sig2);>>audiowrite(product,y1.*y2,fs);%执行乘积>>[yprod,fs]=audioread(product);>>plot(yprod);%plottingtheproduct注意:我们必须使用运算符'.*',因为在参数文件中,这个乘积是值乘以值。更多信息,请参考OctaveMatrixOperations产品手册。产品生成信号的图像产品信号的图像基频差异很大的两个信号相乘的图形效果(调制原理)第1步:生成两个频率为220Hz的声音信号。>>fs=44100;>>t=0:1/fs:0.03;>>w=2*pi*220*t;>>y1=cos(w);>>plot(y1);载波第二步:生成22000Hz高频调制信号。>>y2=cos(100*w);>>情节(y2);调制的第三步:将两个信号相乘并绘制图像。>>情节(y1.*y2);调制信号将信号乘以标量并将函数乘以标量会改变其范围,在某些情况下还会改变相位标志。给定标量K,函数F(t)乘以该标量定义为:R(t)=K*F(t)>>[y,fs]=audioread('cos440.ogg');%creatingtheworkfiles>>res1='coslow.ogg';>>res2='coshigh.ogg';>>res3='cosinverted.ogg';>>K1=0.2;%valuesofthescalars>>K2=0.5;>>K3=-1;>>audiowrite(res1,K1*y,fs);%productfunction-scalar>>audiowrite(res2,K2*y,fs);>>audiowrite(res3,K3*y,fs);原始信号图像>>绘图(y)信号幅度降低到原始信号幅度的0.2倍后的图像>>plot(res1)低余弦信号幅度降低到原始信号幅度的0.5倍后的图像>>plot(res2)低余弦信号幅度降低到原始信号幅度的0.5倍后的图像>>plot(res2)highcosineinversionImage>>plot(res3)InvertedCosine结论代数和、乘法和函数与常数的乘法等基本数学运算是频谱分析、幅度调制、角度调制等更高级运算的支柱和基础.在下一个教程中,我们将看看如何执行such计算及其对声音文件的影响。
