成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

[[174884]]

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

信號疊加

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

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

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

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

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

然后我們繪制出兩個信號的圖像。

信號 1 的圖像(440 赫茲)

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

 

 

 信號 1 的圖像

信號 2 的圖像(880 赫茲)

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

 

 信號 2 的圖像

第二步:把兩個信號疊加

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

  1. >> sumres=y1+y2; 
  2. >> plot(sumres) 

疊加信號的圖像

 和信號的圖像

Octaver 中的效果

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

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

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

圣母頌曲(Avemaria Track)

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

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

 

 圣母歌曲

贊美詩曲(Hymnus Track)

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

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

 

 

 贊美詩曲

圣母頌曲 + 贊美詩曲

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

 

 

 圣母歌曲 + 贊美詩曲

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

兩個信號的乘積

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

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

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

乘積生成信號的圖像

 乘積信號的圖像

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

***步:

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

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

 

 

 載波

第二步:

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

  1. >> y2=cos(100*w); 
  2. >> plot(y2); 

 

 

 調制中

第三步:

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

  1. >> plot(y1.*y2); 

 

 

 調制后的信號

一個信號和一個標量相乘

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

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

原始信號的圖像

  1. >> plot(y) 

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

  1. >> plot(res1) 

 低余弦

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

  1. >> plot(res2) 

 高余弦

倒相后的信號圖像

  1. >> plot(res3) 

 倒相余弦

結論

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

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2016-09-12 14:42:24

LinuxOctave音頻文件

2016-10-31 20:21:05

LinuxOctave音頻文件

2022-08-12 08:38:52

FFmpegLinux命令

2019-09-10 10:44:29

物聯網工業物聯網智慧農業

2023-01-05 16:51:04

機器學習人工智能

2022-11-13 19:43:37

Linux

2018-12-17 11:00:11

LinuxSoundConver音頻文件格式

2020-05-15 08:06:37

JavaScriptobject URL對象

2024-04-23 08:24:05

音頻Android播放

2022-04-12 11:07:11

Hi3861鴻蒙操作系統

2018-06-06 15:49:06

FPGA音頻處理器

2023-11-28 14:22:54

Python音頻

2011-08-01 14:42:47

iPhone 應用程序 聲音

2009-10-21 10:15:29

VB.NET復制

2021-09-06 08:08:17

youtube-dl下載音頻

2010-03-05 09:40:08

Python遞歸

2009-06-10 21:51:42

JavaScript XMLFirefox

2009-12-23 11:01:50

ADO.NET 批處理

2022-11-02 14:45:24

Python數據分析工具

2023-12-13 09:22:40

python
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 毛片一区二区三区 | 欧美亚洲另类丝袜综合网动图 | 涩涩视频在线看 | 亚洲色图综合 | 亚洲高清在线 | 色综合色综合网色综合 | 一区二区电影网 | 中国人pornoxxx麻豆 | 国产精品国产精品 | 久久精品日产第一区二区三区 | 亚洲视频一区在线观看 | 中文字幕第一页在线 | 亚洲3级 | 亚洲一区精品在线 | 亚洲成人av在线 | 日日夜夜天天久久 | 国产欧美一区二区久久性色99 | 一区二区三区日本 | 欧产日产国产精品视频 | 欧美成人一区二区三区片免费 | 国产精品人人做人人爽 | 密室大逃脱第六季大神版在线观看 | 国外成人在线视频 | 粉嫩粉嫩芽的虎白女18在线视频 | 亚洲午夜视频在线观看 | 亚洲毛片在线观看 | 日本午夜精品 | 天天操精品视频 | 九九热在线观看视频 | 久久9999久久 | 九九导航 | 精品国产综合 | 亚洲精品国产电影 | 玖玖综合网| 99re热精品视频 | 亚洲成人av在线 | 日本福利一区 | 久久久www成人免费无遮挡大片 | 婷婷在线视频 | 一区二区福利视频 | 亚洲精品免费在线观看 |