Mostrando entradas con la etiqueta señales. Mostrar todas las entradas
Mostrando entradas con la etiqueta señales. Mostrar todas las entradas

martes, 16 de febrero de 2016

Leer/Escribir archivos de audio digitalizado en Matlab/Octave

Octave, el equivalente en software para Matlab en Linux, tiene una serie de funciones y comandos que permiten la adquisición, grabación, reproducción y posterior procesamiento de señales de audio que a su vez tienen  muchas aplicaciones de entretenimiento, investigación, médicos, o cualquier otra área de la ciencia que haga uso de estas señales. En esta entrada vamos a utilizar GNU Octave v4.0 en Ubuntu Studio y comenzará con la lectura y escritura de archivos de audio.

Tenga en cuenta que el principal objetivo de este tema  no es aprender a usar un software de procesamiento de audio ya establecido, sino más bien de entender cómo funciona desde el punto de vista matemático, del diseño y la ingeniería de audio.


Paso 1: Ejecutando GNU Octave, hacemos click en el icono ubicado en el menu/educacion/octave





Paso 2: Ubicarse en 'workspace' donde estan guardados los archivos de audio, scripts, etc.

Paso 3: Leer un arcivo de audio a través del comando 'audioread' siguiendo la sintaxis:

>> [y, fs]=audioread('archivo.ogg');

Donde:

y = señal;
fs = frecuencia de muestreo; 

note que utilizamos la extension .ogg que es la mas indicada para trabajar con octave, tanto en linux como en windows


note que en el recuadro workspace nos podemos encontrar los parametros de cada una de las variables tales como el tipo de variable, la dimension, los valores, etc.


Una vez leido el archivo podemos hacer cualquier tipo de operacion matematica con la señal y. También podemos graficarla:


Para esto podemos hacer click derecho sobre la variable a graficar y hacer plot(y)








Paso 4: Escribiendo un archivo de audio: para esto se utilizara el comando audiowrite de la siguiente manera


>> audiowrite('nombredearchivo.ogg', procesamiento, fs);


Donde:


nombredearchivo.ogg = archivo sobre el cual vamos a escribir, si este no existe se creará en el directorio configurado anteriormente, es importante incluir la extensión del archivo.


procesamiento = cualqueir tipo de operación matemática o señal que se desee escribir sobre el archivo.


fs = frecuencia de muestreo (puede variarla a su gusto)




lunes, 15 de febrero de 2016

Efectos digitales

Efecto Tremolo Sinusoidal (Funcion .m para Matlab/Octave)


=============================================
function [x]=tremolo(f,fs,x)

%Tremolo Algorithm function using sinusoidal modulating signal
%The suggested modulating frequency should be between 1 & 4 Hz
% Coded by Ing. David E. Duarte G., Feb 15, 2016
% email: deduarte1@uc.edu.ve denrique.duarte@gmail.com

l=length(x);
t=0:1/fs:(l-1)/fs;
t=t(:);
w=2*pi*f*t;
x=sin(w).*x;

Donde

f: Frecuencia de modulación.
fs: Frecuencia de Muestreo.
x: Señal de audio
=============================================

Dentro de Matlab/Octave debe ser invocado de la siguiente manera:


>> [y,fs]=audioread('yourfilename.ogg');
>> audiowrite('yourfiletremolo.ogg', tremolo(4, fs, y), fs);

Nota: el archivo .m debe ser guardado en el mismo workspace actual.