GNU/Linux >> Belajar Linux >  >> Ubuntu

Pemrosesan Audio Ilmiah, Bagian II - Cara membuat Pemrosesan Sinyal Matematika dasar dalam file Audio menggunakan Ubuntu dengan Octave 4.0

Pada tutorial sebelumnya, kita melihat langkah-langkah sederhana untuk membaca, menulis, dan memutar file audio. Kami bahkan melihat bagaimana kami dapat mensintesis file audio dari fungsi periodik seperti fungsi kosinus. Dalam tutorial ini, kita akan melihat bagaimana kita dapat melakukan penambahan sinyal, mengalikan sinyal (modulasi), dan menerapkan beberapa fungsi matematika dasar untuk melihat pengaruhnya pada sinyal asli.

Menambahkan Sinyal

Jumlah dari dua sinyal S1(t) dan S2(t) menghasilkan sinyal R(t) yang nilainya setiap saat adalah jumlah dari nilai sinyal yang ditambahkan pada saat itu. Seperti ini:

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

Kami akan membuat ulang jumlah dua sinyal dalam Oktaf dan melihat efeknya secara grafis. Pertama, kita akan membangkitkan dua sinyal dengan frekuensi yang berbeda untuk melihat sinyal yang dihasilkan dari penjumlahan.

Langkah 1:Membuat dua sinyal dengan frekuensi berbeda (file ogg)

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


Di sini kita akan memplot kedua sinyal tersebut.

Plot Sinyal 1 (440 Hz)

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

Plot Sinyal 2 (880 Hz)

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


Langkah 2:Menambahkan dua sinyal

Sekarang kita melakukan penjumlahan dari dua sinyal yang dibuat pada langkah sebelumnya.

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

Plot Sinyal yang Dihasilkan


Efek Oktaver

Dalam Octaver, suara yang dihasilkan oleh efek ini menjadi ciri khas karena meniru nada yang dimainkan oleh musisi, baik dalam oktaf yang lebih rendah atau lebih tinggi (sesuai yang telah diprogram), ditambah dengan suara nada aslinya, yaitu muncul dua nada. terdengar identik.

Langkah 3:Menambahkan dua sinyal nyata (contoh dengan dua trek musik)

Untuk tujuan ini, kami akan menggunakan dua lagu Nyanyian Gregorian (pengambilan sampel suara).

Jalur Avemaria

Pertama, akan membaca dan memplot trek Avemaria:

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

Lagu Nyanyian Rohani

Sekarang, akan membaca dan membuat plot lagu himne

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

Avemaria + Lagu Nyanyian Rohani

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




Hasilnya, dari sudut pandang audio, adalah bahwa kedua trek akan terdengar campur aduk.

Produk dari dua Sinyal


Untuk mengalikan dua sinyal, kita harus menggunakan cara yang analog dengan penjumlahan. Mari kita gunakan file yang sama yang dibuat sebelumnya.

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


Catatan:kita harus menggunakan operan  '.*' karena produk ini dibuat, dari nilai ke nilai, pada file argumen. Untuk informasi lebih lanjut, silakan merujuk ke manual operasi produk dengan matriks Oktaf.

Plot Sinyal Produk yang Dihasilkan

Efek grafis dari perkalian dua sinyal dengan perbedaan frekuensi fundamental yang besar (Prinsip Modulasi)

Langkah 1:

Buat sinyal frekuensi audio dengan frekuensi 220Hz.

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


Langkah 2:

Buat sinyal modulasi frekuensi yang lebih tinggi 22000 Hz.

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

Langkah 3:

Mengalikan dan memplot dua sinyal.

>> plot(y1.*y2);


Mengkalikan sinyal dengan skalar

Efek mengalikan fungsi dengan skalar setara dengan memodifikasi ruang lingkupnya dan, dalam beberapa kasus, tanda fase. Diberikan skalar K, produk dari fungsi F(t) dengan skalar didefinisikan sebagai:

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 Sinyal Asli
>> plot(y)

Plot Sinyal berkurang amplitudonya sebesar 0,2

>> plot(res1)


Plot Sinyal berkurang amplitudonya sebesar 0,5

>> plot(res2)


Plot Sinyal dengan fase terbalik

>> plot(res3)

Kesimpulan


Operasi matematika dasar, seperti penjumlahan aljabar, hasilkali, dan perkalian suatu fungsi dengan skalar merupakan tulang punggung dari operasi-operasi lanjutan di antaranya, analisis spektrum, modulasi amplitudo, modulasi sudut, dll. tutorial, kita akan melihat bagaimana membuat operasi tersebut dan efeknya pada sinyal audio.


Ubuntu
  1. Bagaimana cara mengatur Cluster MongoDB menggunakan 3 node dengan Ubuntu 16?

  2. Cara Membuat Server Minecraft dengan Hostinger, Ubuntu, Windows, dan macOS

  3. Cara memonitor file log server dengan Logwatch di Debian dan Ubuntu

  1. Pemrosesan Audio Ilmiah, Bagian III - Cara menerapkan Efek Pemrosesan Matematika Tingkat Lanjut pada file Audio dengan Octave 4.0 di Ubuntu

  2. Pemrosesan Audio Ilmiah, Bagian I - Cara membaca dan menulis file Audio dengan Octave 4.0.0 di Ubuntu

  3. Cara Mengenkripsi File dengan Tomb di Ubuntu 16.04 LTS

  1. Menginstal dan Menggunakan Perangkat Lunak Ilmiah GNU Octave di Ubuntu 15.04

  2. Cara Menangani File dengan Scilab di Ubuntu 15.04

  3. Cara Menyinkronkan File/Folder Menggunakan FreeFileSync di Ubuntu