Matematicas del Audio
viernes, 26 de mayo de 2017
miércoles, 17 de febrero de 2016
Como obtener las características básicas de un archivo de audio digitalizado
Un archivo de audio digitalizado posee ciertos parámetros de interés para su procesamiento. La mayoría de las librerías asociadas a lenguajes que se utilizan para DSP tienen comandos e instrucciones especificas para obtener dichos datos. En GNU Octave / Matlab nosotros podemos visualizar dichos parámetros usando el comando audioinfo el cual nos dará información tal como tasa de muestreo, cantidad de muestras, número de canales, etc. La sintaxis propia para utilizar este comando es la siguiente:
>> info= audioinfo('archivo.ogg');
Lo que se obtiene es lo siguiente:
Info=
Filename: 'S:\'archivo.ogg' CompressionMethod:'Uncompressed NumChannels: 1
SampleRate: 8192
TotalSamples: 73113
Duration: 8.9249
Title: []
Comment: []
Artist: []
BitsPerSample: 16
Con esta información previa ya tendremos una clara idea de como esta estructurado nuestro archivo digitalizado y nos prepara para el siguiente paso. En otras entradas futuras trataremos el caso de la lectura de la información de archivos de audio usando otros lenguajes de programación.
martes, 16 de febrero de 2016
Leer/Escribir archivos de audio digitalizado en Matlab/Octave
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
=============================================
%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.