科學音頻處理(二):如何使用 Octave 對音頻文件進行基本數學信號處理

2021-01-10 TechWeb

推廣 | 令人窒息的獎品等你―2016最權威的全球開發者調研

在前一篇的指導教程中,我們看到了讀、寫以及重放音頻文件的簡單步驟,我們甚至看到如何從一個周期函數比如餘弦函數合成一個音頻文件。在這篇指導教程中,我們將會看到如何對信號進行疊加和倍乘(調整),並應用一些基本的數學函數看看它們對原始信號的影響。

信號疊加

兩個信號 S1(t)和 S2(t)相加形成一個新的信號 R(t),這個信號在任何瞬間的值等於構成它的兩個信號在那個時刻的值之和。就像下面這樣:

R(t) = S1(t) + S2(t) 

我們將用 Octave 重新產生兩個信號的和並通過圖表看達到的效果。首先,我們生成兩個不同頻率的信號,看一看它們的疊加信號是什麼樣的。

第一步:產生兩個不同頻率的信號(oog 文件)

>> sig1='cos440.ogg';                  %creating the audio file @440 Hz >> sig2='cos880.ogg';                  %creating the audio file @880 Hz >> fs=44100;                           %generating the parameters values (Period, sampling frequency and angular frequency) >> t=0:1/fs:0.02; >> w1=2*pi*440*t; >> w2=2*pi*880*t; >> audiowrite(sig1,cos(w1),fs);        %writing the function cos(w) on the files created >> audiowrite(sig2,cos(w2),fs); 

然後我們繪製出兩個信號的圖像。

信號 1 的圖像(440 赫茲)

>> [y1, fs] = audioread(sig1); >> plot(y1) 

 信號 1 的圖像

信號 2 的圖像(880 赫茲)

>> [y2, fs] = audioread(sig2); >> plot(y2) 

 

 信號 2 的圖像

第二步:把兩個信號疊加

現在我們展示一下前面步驟中產生的兩個信號的和。

>> sumres=y1+y2; >> plot(sumres) 

疊加信號的圖像

 和信號的圖像

Octaver 中的效果

在 Octaver 中,這個效果產生的聲音是獨特的,因為它可以仿真音樂家彈奏的低八度或者高八度音符(取決於內部程序設計),仿真音符和原始音符成對,也就是兩個音符發出相同的聲音。

第三步:把兩個真實的信號相加(比如兩首音樂歌曲)

為了實現這個目的,我們使用格列高利聖詠(Gregorian Chants)中的兩首歌曲(聲音採樣)。

聖母頌曲(Avemaria Track)

首先,我們看一下聖母頌曲並繪出它的圖像:

>> [y1,fs]=audioread('avemaria_.ogg'); >> plot(y1) 

 

 聖母歌曲

讚美詩曲(Hymnus Track)

現在我們看一下讚美詩曲並繪出它的圖像。

>> [y2,fs]=audioread('hymnus.ogg'); >> plot(y2) 

 

 讚美詩曲

聖母頌曲 + 讚美詩曲

>> y='avehymnus.ogg'; >> audiowrite(y, y1+y2, fs); >> [y, fs]=audioread('avehymnus.ogg'); >> plot(y) 

 

 聖母歌曲 + 讚美詩曲

結果,從音頻的角度來看,兩個聲音信號混合在了一起。

兩個信號的乘積

對於求兩個信號的乘積,我們可以使用類似求和的方法。我們使用之前生成的相同文件。

R(t) = S1(t) * S2(t)   >> sig1='cos440.ogg';                  %creating the audio file @440 Hz >> sig2='cos880.ogg';                  %creating the audio file @880 Hz >> product='prod.ogg';                 %creating the audio file for product >> fs=44100;                           %generating the parameters values (Period, sampling frequency and angular frequency) >> t=0:1/fs:0.02; >> w1=2*pi*440*t; >> w2=2*pi*880*t; >> audiowrite(sig1, cos(w1), fs);      %writing the function cos(w) on the files created >> audiowrite(sig2, cos(w2), fs);>> [y1,fs]=audioread(sig1);>> [y2,fs]=audioread(sig2); >> audiowrite(product, y1.*y2, fs);    %performing the product >> [yprod,fs]=audioread(product); >> plot(yprod);                        %plotting the product 

注意:我們必須使用操作符 『.*』,因為在參數文件中,這個乘積是值與值相乘。更多信息,請參考 Octave 矩陣操作產品手冊。

乘積生成信號的圖像

 乘積信號的圖像

兩個基本頻率相差很大的信號相乘後的圖表效果(調製原理)

第一步:

生成兩個頻率為 220 赫茲的聲音信號。

>> fs=44100; >> t=0:1/fs:0.03; >> w=2*pi*220*t; >> y1=cos(w); >> plot(y1); 

 

 載波

第二步:

生成一個 22000 赫茲的高頻調製信號。

>> y2=cos(100*w); >> plot(y2); 

 

 調製中

第三步:

把兩個信號相乘並繪出圖像。

>> plot(y1.*y2); 

 

 調製後的信號

一個信號和一個標量相乘

一個函數和一個標量相乘的效果等於更改它的值域,在某些情況下,更改的是相標誌。給定一個標量 K ,一個函數 F(t) 和這個標量相乘定義為:

R(t) = K*F(t)  >> [y,fs]=audioread('cos440.ogg');        %creating the work files >> res1='coslow.ogg';                 >> res2='coshigh.ogg';>> res3='cosinverted.ogg'; >> K1=0.2;                                %values of the scalars >> K2=0.5;>> K3=-1; >> audiowrite(res1, K1*y, fs);            %product function-scalar >> audiowrite(res2, K2*y, fs); >> audiowrite(res3, K3*y, fs); 

原始信號的圖像

>> plot(y) 

信號振幅減為原始信號振幅的 0.2 倍後的圖像

>> plot(res1) 

 低餘弦

信號振幅減為原始振幅的 0.5 倍後的圖像

>> plot(res2) 

 高餘弦

倒相後的信號圖像

>> plot(res3) 

 倒相餘弦

結論

基本數學運算比如代數和、乘,以及函數與常量相乘是更多高級運算比如譜分析、振幅調製,角調製等的支柱和基礎。在下一個教程中,我們來看一看如何進行這樣的運算以及它們對聲音文件產生的效果。

點讚 0

相關焦點

  • 科學音頻處理(三):如何使用 Octave 的高級數學技術處理音頻文件
    我們的數字音頻處理技術第三部分涵蓋了信號調製內容,將解釋如何進行調幅(Amplitude Modulation)、顫音效果(Tremolo Effect)和頻率變化(Frequency Variation)。
  • Waves Complete 12 for mac(音頻信號處理工具)
    來源: Mac一點就透 舉報   Waves Complete 12 for mac是音頻編輯人員必備的音頻信號處理工具套裝
  • 音頻信號及音頻分析
    聲音經過模擬設備記錄或再生,成為模擬音頻,再經數位化成為數字音頻。這裡所說的音頻分析就是以數字音頻信號為分析對象,以數位訊號處理為分析手段,提取信號在時域、頻域內一系列特性的過程。各種特定頻率範圍的音頻分析有各自不同的應用領域。
  • 音頻數據增強及python實現
    博客作者:凌逆戰博客地址:https://www.cnblogs.com/LXP-Never/p/13404523.html音頻時域波形具有以下特徵:音調,響度,質量。我們在進行數據增強時,最好只做一些小改動,使得增強數據和源數據存在較小差異即可,切記不能改變原有數據的結構,不然將產生「髒數據」,通過對音頻數據進行數據增強,能有助於我們的模型避免過度擬合併變得更加通用。
  • 使用FastAI 和即時頻率變換進行音頻分類
    今年夏天我參加了Kaggle舉辦的Freesound General-Purpose Audio Tagging 競賽,後來我決定調整其中一些代碼,利用fastai的便利做音頻分類。本文將簡要介紹如何用Python處理音頻文件,然後給出創建頻譜圖像(spectrogram images)的一些背景知識,示範一下如何在事先不生成圖像的情況下使用預訓練圖像模型。
  • 一種基於實用AGC算法的音頻信號處理方法與FPGA實現的分析研究
    在音頻信號處理方法及FPGA實現中,採用AGC算法,可提高音頻信號系統和音頻信號輸出的穩定性,解決了AGC調試後的信號失真問題。本文針對基於實用AGC算法的音頻信號處理方法與FPGA實現,及其相關內容進行了分析研究。 1 實用AGC算法在實際應用中的原理 在通信設備使用過程中,語音通信是重要的組成部分,而在語言通信中音頻信號的質量,決定著人們對通信系統的選擇。
  • 謹慎增加音頻處理系統的 THD:如何操作,為什麼?
    對於其他客戶而言,限制其信號的電壓輸出可幫助限制揚聲器漂移。但是,在這種情況下應小心操作,因為進入揚聲器的高 RMS 功率可能會引起可靠性問題。在數字處理系統中,可通過使數字採樣飽和給信號引入 THD。也就是說,使用足夠增益,推移最高有效位,讓其超出數字採樣大小。
  • 基於小波變換與DSP的實時音頻視頻處理系統
    遠程場景及音頻壓縮信息通過入網設備在internet上實現遠程實時傳輸。如圖2中,原始制式pal(720×288,50幀/s)的視頻信號經過圖像採集端的視頻a/d轉換成ccir656(8位27mhz)的數據流,再通過adv611進行小波壓縮編碼。同時,原始的音頻信號也經過音頻採集端的a/d轉換為pcm信號,再通過ct8021完成g.723.1壓縮編碼。
  • 為何要謹慎地增加音頻處理系統的THD?
    THD(總諧波失真,total harmonic distortion):是信號諧波失真的一項指標,表達為所有諧波成分功率之和與基本頻率信號功率的比值。
  • 音頻是什麼
    1、音頻指人耳可以聽到的聲音頻率在20HZ~20kHz之間的聲波,稱為音頻。2、指存儲聲音內容的文件。3、在某些方面能指作為濾波的振動音頻是個專業術語,音頻一詞已用作一般性描述音頻範圍內和聲音有關的設備及其作用。人類能夠聽到的所有聲音都稱之為音頻,它可能包括噪音等。
  • 【音頻信號處理專欄】【2】入門書籍和課程推薦連結索引
    這篇文章是對【音頻信號處理專欄】【2】入門書籍和課程推薦 裡的補充,主要是方便大家可以直接從這裡進入到當當網購買書籍了,是不是很方便
  • 音頻鑑黃是如何做到的?深度解析音頻檢測背後的技術
    雖然不少企業都把目光聚焦在視頻鑑黃上,但音頻審核也是人工智慧鑑黃技術的一部分,二者缺一不可。那在大家熟悉的視頻鑑黃之外,音頻檢測究竟能解決哪些問題?這一技術是如何進行鑑黃的呢? 嘉賓介紹 視頻檢測所使用到的圖像技術就很難在這些應用場景發揮作用,所以音頻檢測需要有針對性的技術手段。
  • 音頻壓縮技術原理
    打開APP 音頻壓縮技術原理 發表於 2017-10-17 15:37:14   音頻壓縮技術定義   音頻信號能進行壓縮的依據是音頻壓縮技術
  • 音頻分析原理
    聲音經過模擬設備記錄或再生,成為模擬音頻,再經數位化成為數字音頻。這裡所說的音頻分析就是以數字音頻信號為分析對象,以數位訊號處理為分析手段,提取信號在時域、頻域內一系列特性的過程。各種特定頻率範圍的音頻分析有各自不同的應用領域。
  • 新一代音頻DAC的架構分析與設計
    本文介紹了歐勝微電子公司最新一代音頻數字-模擬轉換器(DAC)的架構,專注於設計用於消費電子應用中提供高電壓線驅動器輸出的新器件系列。本文引用地址:http://www.eepw.com.cn/article/165395.htm  基本原理  增量累加調製器通常用複雜的術語進行描述,使用數學公式、狀態表和理論模型。
  • USB音頻設備類的音頻信號同步解決方案
    本文針對使用USB_Audio_Class進行語音設備設計時需要解決的音頻信號同步問題進行了介紹,並給出了相應的解決方法和部分原始碼。目前稱為USB音箱的設備,大都使用 USB_DEVICE_CLASS_POWER,僅僅將USB接口作為電源使用。信號仍然需要3.5 mm立體聲音頻線連接使用,連接相對複雜。這樣沒有體現USB設備連接簡單,操作方便的優勢,且採用模擬信號傳送會產生一定的信號失真,影響音質。
  • 使用PyTorch實現鳥類音頻檢測卷積網絡模型
    大約在一年前,在我高二的時候,我第一次聽到這種音頻深度學習的用例。事實上,鳥音頻檢測是我做深度學習和計算機科學的第一個項目。我參與了一個研究項目,在北阿拉斯加的郊區用純粹的聲音來探測鳥類的存在。跳入其中,鳥的音頻檢測出現了這樣一個利基(有利可圖的形式),在本文中,我將向您展示如何在BirdVox-70k數據集上使用一個簡單的卷積神經網絡(CNN)來實現這一點。
  • 消費類音頻應用的解決方案
    諸如移動音頻播放器、機頂盒(STB)、數位電視(DTV)和數字通用光碟(DVD) 播放機和刻錄機等消費設備,通常都是採用多功能系統晶片(SOC)來實現的。這樣的SOC主要執行兩種功能:應用處理和視頻/音頻信號處理。應用處理(或主處理)通常是通過像MIPS處理器這樣的一個可編程內核實現的。由於其計算複雜性的程度,視頻信號處理是使用專用的硬體完成的。
  • 耳聽為虛眼見為實,來聊聊音頻技術參數解析
    反過來,我們也可以把儲存下來的音頻文件用一定的音頻程序播放,還原以前錄下的聲音。二、採樣頻率指每秒鐘取得聲音樣本的次數。聲音其實是一種能量波,因此也有頻率和振幅的特徵,頻率對應於時間軸線,振幅對應於電平軸線。波是無限光滑的,弦線可以看成由無數點組成,由於存儲空間是相對有限的,數字編碼過程中,必須對弦線的點進行採樣。
  • 傑理科技 藍牙音頻播放同步方法
    【嘉德點評】傑理科技發明的藍牙音頻播放同步方法及裝置,通過判斷緩存區域音頻數據剩餘量判斷從設備與主設備的時鐘是否偏移,並在判定發生偏移後根據緩存區中數據量的大小對音頻數據進行縮短或者拉伸播放,從而對從設備的時鐘進行調整。從而使得藍牙音頻播放設備達到更好的同步效果。