溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么用Octave處理音頻

發(fā)布時(shí)間:2022-02-19 10:34:56 來源:億速云 閱讀:175 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“怎么用Octave處理音頻”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

Octave 是一個(gè)類似于 Linux 上的 Matlab 的軟件,它擁有數(shù)量眾多的函數(shù)和命令,支持聲音采集、記錄、回放以及音頻信號(hào)的數(shù)字化處理,用于娛樂應(yīng)用、研究、醫(yī)學(xué)以及其它科學(xué)領(lǐng)域。

怎么用Octave處理音頻

信號(hào)疊加

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

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

我們將用 Octave 重新產(chǎn)生兩個(gè)信號(hào)的和并通過圖表看達(dá)到的效果。首先,我們生成兩個(gè)不同頻率的信號(hào),看一看它們的疊加信號(hào)是什么樣的。

第一步:產(chǎn)生兩個(gè)不同頻率的信號(hào)(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);

然后我們繪制出兩個(gè)信號(hào)的圖像。

信號(hào) 1 的圖像(440 赫茲)

>> [y1, fs] = audioread(sig1);
>> plot(y1)
怎么用Octave處理音頻

信號(hào) 2 的圖像(880 赫茲)

>> [y2, fs] = audioread(sig2);
>> plot(y2)
怎么用Octave處理音頻

第二步:把兩個(gè)信號(hào)疊加

現(xiàn)在我們展示一下前面步驟中產(chǎn)生的兩個(gè)信號(hào)的和。

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

疊加信號(hào)的圖像和信號(hào)的圖像Octaver 中的效果

怎么用Octave處理音頻

在 Octaver 中,這個(gè)效果產(chǎn)生的聲音是獨(dú)特的,因?yàn)樗梢苑抡嬉魳芳覐椬嗟牡桶硕然蛘吒甙硕纫舴?取決于內(nèi)部程序設(shè)計(jì)),仿真音符和原始音符成對,也就是兩個(gè)音符發(fā)出相同的聲音。

第三步:把兩個(gè)真實(shí)的信號(hào)相加(比如兩首音樂歌曲)

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

圣母頌曲(Avemaria Track)

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

>> [y1,fs]=audioread('avemaria_.ogg');
>> plot(y1)
怎么用Octave處理音頻

圣母歌曲

贊美詩曲(Hymnus Track)

現(xiàn)在我們看一下贊美詩曲并繪出它的圖像。

>> [y2,fs]=audioread('hymnus.ogg');
>> plot(y2)
怎么用Octave處理音頻

贊美詩曲

圣母頌曲 + 贊美詩曲

>> y='avehymnus.ogg';
>> audiowrite(y, y1+y2, fs);
>> [y, fs]=audioread('avehymnus.ogg');
>> plot(y)
怎么用Octave處理音頻

圣母歌曲 + 贊美詩曲

結(jié)果,從音頻的角度來看,兩個(gè)聲音信號(hào)混合在了一起。

兩個(gè)信號(hào)的乘積

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

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

注意:我們必須使用操作符 ‘.*’,因?yàn)樵趨?shù)文件中,這個(gè)乘積是值與值相乘。更多信息,請參考 Octave 矩陣操作產(chǎn)品手冊。

乘積生成信號(hào)的圖像

怎么用Octave處理音頻

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

第一步:

生成兩個(gè)頻率為 220 赫茲的聲音信號(hào)。

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

載波

怎么用Octave處理音頻

第二步:

生成一個(gè) 22000 赫茲的高頻調(diào)制信號(hào)。

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

調(diào)試中

怎么用Octave處理音頻

第三步:

把兩個(gè)信號(hào)相乘并繪出圖像

>> plot(y1.*y2);

調(diào)制后的信號(hào)

怎么用Octave處理音頻

一個(gè)信號(hào)和一個(gè)標(biāo)量相乘

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

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);

原始信號(hào)的圖像

>> plot(y)
怎么用Octave處理音頻

信號(hào)振幅減為原始信號(hào)振幅的 0.2 倍后的圖像

>> plot(res1)
怎么用Octave處理音頻

低余弦

信號(hào)振幅減為原始振幅的 0.5 倍后的圖像

>> plot(res2)
怎么用Octave處理音頻

高余弦

倒相后的信號(hào)圖像

>> plot(res3)
怎么用Octave處理音頻

倒相余弦

“怎么用Octave處理音頻”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI