科學(xué)音頻處理(三):如何使用 Octave 的高級(jí)數(shù)學(xué)技術(shù)處理音頻文件
我們的數(shù)字音頻處理技術(shù)第三部分涵蓋了信號(hào)調(diào)制內(nèi)容,將解釋如何進(jìn)行調(diào)幅(Amplitude Modulation)、顫音效果(Tremolo Effect)和頻率變化(Frequency Variation)。
調(diào)制
調(diào)幅
正如它的名字暗示的那樣, 影響正弦信號(hào)的振幅變化依據(jù)傳遞的信息而不斷改變。正弦波因?yàn)槌休d著大量的信息被稱作載波(carrier)。這種調(diào)制技術(shù)被用于許多的商業(yè)廣播和市民信息傳輸波段(AM)。
為何要使用調(diào)幅技術(shù)?
調(diào)制發(fā)射
假設(shè)信道是免費(fèi)資源,有天線就可以發(fā)射和接收信號(hào)。這要求有效的電磁信號(hào)發(fā)射天線,它的大小和要被發(fā)射的信號(hào)的波長(zhǎng)應(yīng)該是同一數(shù)量級(jí)。很多信號(hào),包括音頻成分,通常在 100 赫茲或更低。對(duì)于這些信號(hào),如果直接發(fā)射,我們就需要建立長(zhǎng)達(dá) 300 公里的天線。如果通過信號(hào)調(diào)制將信息加載到 100MHz 的高頻載波中,那么天線僅僅需要 1 米(橫向長(zhǎng)度)。
集中調(diào)制與多通道
假設(shè)多個(gè)信號(hào)占用一個(gè)通道,調(diào)制可以將不同的信號(hào)不同頻域位置,以便接收者選擇該特定信號(hào)。使用集中調(diào)制(“復(fù)用”)的應(yīng)用有遙感探測(cè)數(shù)據(jù)、立體聲調(diào)頻收音機(jī)和長(zhǎng)途電話等。
克服設(shè)備限制的調(diào)制
信號(hào)處理設(shè)備,比如過濾器、放大器,以及可以用它們簡(jiǎn)單組成的設(shè)備,它們的性能依賴于信號(hào)在頻域中的境況以及高頻率和低頻信號(hào)的關(guān)系。調(diào)制可以用于傳遞信號(hào)到頻域中的更容易滿足設(shè)計(jì)需求的位置。調(diào)制也可以將“寬帶信號(hào)“(高頻和低頻的比例很大的信號(hào))轉(zhuǎn)換成”窄帶“信號(hào)。
音頻特效
許多音頻特效由于引人注目和處理信號(hào)的便捷性使用了調(diào)幅技術(shù)。我們可以說出很多,比如顫音、合唱、鑲邊等等。這種實(shí)用性就是我們關(guān)注它的原因。
顫音效果
顫音效果是調(diào)幅最簡(jiǎn)單的應(yīng)用,為實(shí)現(xiàn)這樣的效果,我們會(huì)用周期信號(hào)改變(乘)音頻信號(hào),使用正弦或其他。
- >> 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
這將創(chuàng)造一個(gè)正弦形狀的信號(hào),它的效果就像‘顫音’。
Tremolo Shape
在真實(shí)音頻文件中的顫音
現(xiàn)在我們將展示真實(shí)世界中的顫音效果。首先,我們使用之前記錄過男性發(fā)聲 ‘A’ 的音頻文件。這個(gè)信號(hào)圖就像下面這樣:
- >> [y,fs]=audioread('A.ogg');
- >> plot(y);

Vocal
現(xiàn)在我們將創(chuàng)建一個(gè)完整的正弦信號(hào),使用如下的參數(shù):
- 增幅 = 1
- 頻率= 1.5Hz
- 相位 = 0
- >> t=0:1/fs:4.99999999;
- >> t=t(:);
- >> w=2*pi*1.5*t;
- >> q=cos(w);
- >> plot(q);
注意: 當(dāng)我們創(chuàng)建一組時(shí)間值時(shí),默認(rèn)情況下,它是以列的格式呈現(xiàn),如, 1x220500 的值。為了乘以這樣的值,必須將其變成行的形式(220500x1)。這就是 t=t(:) 命令的作用。
Sinusodial
我們將創(chuàng)建第二份 ogg 音頻格式的文件,它包含了如下的調(diào)制信號(hào):
- >> tremolo='tremolo.ogg';
- >> audiowrite(tremolo, q.*y,fs);

Tremolo Signal
頻率變化
我們可以改變頻率實(shí)現(xiàn)一些有趣的音效,比如原音變形,電影音效,多人比賽。
正弦頻率調(diào)制的影響
這是正弦調(diào)制頻率變化的演示代碼,根據(jù)方程:
- Y=Ac*Cos(wo*Cos(wo/k))
這里:
- Ac = 增幅
- wo = 基頻
- k = 標(biāo)量除數(shù)
- >> 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);
信號(hào)圖:
你可以使用幾乎任何類型的周期函數(shù)頻率調(diào)制。本例中,我們僅僅用了一個(gè)正弦函數(shù)。請(qǐng)大膽的改變函數(shù)頻率,用復(fù)合函數(shù),甚至改變函數(shù)的類型。