manipulacion de señles de audio

Upload: william-chavez

Post on 10-Jan-2016

33 views

Category:

Documents


0 download

DESCRIPTION

Manipulacion de Señles de Audio

TRANSCRIPT

  • 1

    Resumeneste proyecto introduce al estudiante en el

    tratamiento de seales continuas y en la aplicacin de las series de

    las transformadas de Fourier, es por eso que se realiz un

    I. INTRODUCCION

    El siguiente conjunto de actividades tienen por

    objetivo aplicar los conceptos estudiados sobre seales

    continuas/discretas y la transformada de Fourier. A lo largo

    de este laboratorio (basado en Octave o Matlab [1] ) se

    generarn y visualizarn seales de audio, se las

    descompondr en sus elementos sinusoidales bsicos, se

    verificarn algunas propiedades de la transformada de

    Fourier [2], y la utilizacin de Fourier en el clculo de

    respuestas de sistemas as como en la generacin de efectos

    de sonido.

    II. VERIFICACION DE OCTAVE/MATLAB

    Ante de generar y visualizar seales de audio,

    necesitamos verificar la instalacin y presencia de

    Funcionalidad adicional en Octave/Matlab. En la mayora de

    configuraciones se requiere la instalacin paquetes extras

    disponibles en

    http://octave.sourceforge.net/packages.php. Para el presente conjunto de actividades requerimos al menos los

    paquetes audio, image y signal. Para verificar la configuracin del software, inicie la

    ejecucin de Octave y digite las siguientes sentencias:

    t=[0:1/8000:1];

    x=sin(2*pi*440*t);

    stem(t(1:40),x(1:40),'*');

    sound(x,8000);

    t=[0:1/8000:1]; es el rango que se le da a una

    grafica con pasos de 1.25*10^4

    x=sin(2*pi*440*t); es la expresin de la

    funcin con los pasos de la escala en t.

    stem(t(1:40),x(1:40),'*'); crea el

    grafico de la seal x con los primeros 40 valores de la

    matriz antes creada, esto da como resultado una seal

    discreta que posee asteriscos en los pontos que

    describen la seal.

    sound(x,8000); crea una funcin sonido que es el

    sonido de la onda.

    III. PERCEPCION AUDITIVA Esta seccin involucra la generacin de seales de audio

    (i.e., sonidos) para posteriormente ilustrar Aspectos

    particulares de la percepcin de sonidos.

    1. Genere y reproduzca una seal de audio de 5 segundos de duracin, consistiendo de la Suma de dos

    sinusoidales de igual amplitud, una con frecuencia de

    440 Hz y otra con frecuencia de 442 Hz. Escuche y

    detecte las pulsaciones. Cuente el nmero de

    oscilaciones.

    CODIGO: t=[0:1/8000:5];

    x=2*sin(2*pi*440*t);

    y=2*sin(2*pi*442*t);

    s=x+y;

    stem((1:50),s(1:50),'g.');

    sound(s,8000);

    En este cdigo se obtiene 16 pulsaciones por periodo.

    2. Repita el procedimiento anterior con la segunda frecuencia siendo 441 Hz. Nuevamente Cuente el

    nmero de oscilaciones. Repita una vez ms, con la

    segunda frecuencia igual a 443 Hz. Qu puede notar al

    respecto?

    CODIGO: t=[0:1/8000:5];

    x=2*sin(2*pi*441*t);

    y=2*sin(2*pi*443*t);

    s=x+y;

    stem((1:50),s(1:50),'g.');

    sound(s,8000);

    En este cdigo se obtiene 14 pulsaciones por periodo.

    3. Repita la parte 1, con la primera frecuencia siendo 220 Hz y la segunda 222 Hz. Qu Puede concluir hasta el

    momento?

    CODIGO: t=[0:1/8000:5];

    x=2*sin(2*pi*220*t);

    y=2*sin(2*pi*222*t);

    s=x+y;

    stem((1:50),s(1:50),'g.');

    sound(s,8000);

    En este cdigo se obtiene 11 pulsaciones por periodo.

    Se puede escuchar que la intensidad del sonido es mas baja

    que las anteriores, esto quiere decir que la intensidad

    disminuye cuando disminuye la frecuencia de las seales

    sumadas, la velocidad de pulsacin es menor a los casos

    anteriores.

    ESCUELA POLITECNICA DEL EJRCITO

    William P. Chvez

    Electrnica en Automatizacin y Control

    Ing. Enrique V. Carrera

    Departamento de Elctrica y Electrnica

    MANIPULACIO DE SEALES DE AUDIO

  • 2

    Se pudo observar que la onda generada el periodo es mas

    grande, lo que permite una mejor apreciacin de la grafica.

    4. Repita la parte 1 una vez ms pero generando una seal estreo, con una sinusoidal en el canal izquierdo y otra

    en el canal derecho. Escuche la seal, que nota?

    CODIGO: f=9000;

    PI=3.1416;

    t=(0:1/9000:5);

    x=2*sin(2*PI*222*t)

    y=2*cos(2*PI*222*t)

    p=[x,y];

    i=p(:,1);

    d=p(:,2);

    soundsc(p,f);

    %%%CANAL IZQUIERDO%%%

    stem((1:50),x(1:50),'g.');

    title('CANAL IZQUIERDO');

    ylabel('2*sin(2*pi*440*t)');

    xlabel('t');

    %%%%CANAL DERECHO%%%

    stem((1:50),y(1:50),'g.');

    title('CANAL DERECHO');

    ylabel('2*cos(2*PI*222*t)');

    xlabel('t');

    a siguiente actividad recrea un estmulo, ilustrando el fenmeno de agrupamiento.

    1. Escriba una funcin que permita generar una sinusoidal de medio segundo de duracin a una frecuencia que sea

    un nmero de semitonos especficos arriba de la nota A

    bajo C-media (i.e., 220 Hz). Verifique que notas

    separadas 12 semitonos suenas de forma similar por

    estar separadas una octava musical.

    De acuerdo a la siguiente tabla podemos ver las frecuencias

    de los semitonos:

    CODIGO: fm=44000; %Frecuencia de muestreo

    fr=220 %frecuencia sonido, nota musical La

    duracion=0.5; %Duracion en segundos

    t=0:1/fm:duracion;

    y=sin(fr*2*pi*t); % Seal senoidal

    sound(y,fm) %sonido

    2. Adapte la actividad del punto anterior para permitir tocar mltiples sinusoidales, una Despus de la otra.

    CODIGO: fm=44000;

    fr=220;

    duracion=0.5;

    t=0:1/fm:duracion;

    % Seales senoidales

    y=sin(fr*2*pi*t);

    z=sin(fr*3*pi*t);

    o=sin(fr*4*pi*t);

    p=sin(fr*5*pi*t);

    q=sin(fr*6*pi*t);

    a=[y,z,o,p,q]

    sound(a,fm)

    t=t(round(68.5*length(t)/100):round(70*length

    (t)/100));

    y=y(round(68.5*length(y)/100):round(70*length

    (y)/100));

    plot(t,y)

    title('grafica de las formas de la seal que

    esta guardada en "y"');

    3. En uno de los canales de audio estreo, reproduzca una secuencia de sinusoidales { 13, 3, 10, 6,6, 10, 3, 13}

    semitonos arriba de la nota A bajo C-media. En el otro

    canal de audio reproduzca (al mismo tiempo) una

    secuencia {1, 12, 5, 8, 8, 5, 12, 1} semitonos arriba de

    A bajo C-media. Escuche el estmulo percibido, qu

    nota?

    CODIGO: fm=44000;

    fr=220;

    t=0:1/fm:0.5;

    w=2*pi*t; %w->Ohmega

    y=sin(w*fr)

    A=[13, 3, 10, 6, 6, 10, 3, 13];

    for(i=1:8)

    Y=y.*A(i);

    end

    Y=Y';

    B=[1, 12, 5, 8, 8, 5, 12, 1];

    for(j=1:8)

    Z=y.*A(j);

    end

    Z=Z';

    n=length(Y);

    W(:,1)=Y;

    W(:,2)=Z;

    sound(W,4000)

    subplot(2,1,1),plot(W,'g'),title('Sonido

    Estereo');

    s=1:1000+floor(fm/100);

    subplot(2,1,2),plot(s,W(s)),title('Primeras

    muestras');

  • 3

    IV. ANALISIS DE FURIER

    IV.A Descomposicin En el siguiente conjunto de actividades, el estudiante

    visualizar y descompondr seales en sus componentes

    sinusoidales fundamentales.

    1. Construya un vector representando un segundo de una seal de onda cuadrada con frecuencia de un Hz y

    amplitud igual a 1, con tasa de muestreo de 44.1 KHz.

    CODIGO: T = 1/44100;

    t = [0:T:1];

    f1 = 1;

    w1 = 2*pi*f1;

    phi = 2*pi*0.75;

    x1 = cos(w1*t + phi);

    cuad=square(x1)

    plot(t, cuad,'m');

    xlabel ('Tiempo (segundos)');

    ylabel ('x1');

    title ('Onda Cuadrada');

    2. Para encontrar el primer coeficiente b1 de la descomposicin por Fourier de la onda cuadrada,

    calcule dos veces la media del producto Hadamard

    de la seal cuadrada por una seal seno de amplitud

    1, frecuencia 1 Hz y tasa de muestreo de 44.1 Hz.

    Anote su respuesta.

    CODIGO: T=0.0025;

    t=[0:T:1];

    cuad1=square(2*pi*t);

    subplot(3,1,1),plot(t,cuad1,'g')

    title('Seal Cuadrada');

    fs = 44.1;

    T = 0.0025;

    t = [0:T:1];

    f1 = 1;

    w1 = 2*pi*f1;

    x1 = sin(w1*t);

    subplot(3,1,2),plot(t,x1,'r')

    title('Seal Senoidal');

    cuad2=x1.*cuad1;

    subplot(3,1,3),plot(t,cuad2,'m')

    title('Producto de Hadamard');

    media=0;

    for i=1: 401

    media=media+cuad2(i);

    end

    r=media/401;

    b1=2*r;

    3. Repita el procedimiento inmediatamente anterior con seales seno de frecuencia 2, 3, 4, 5, Hz, anotando las respuestas correspondientes. Nota

    algn patrn?

    Usando el cdigo anterior pero con f1 variando desde 2

    en adelante.

    Para f1=2Hz Para f1=3Hz

    Para f1=4Hz Para f1=5Hz

    Las crestas del producto de hadamard en frecuencias

    impares en el punto 0.5 generan un par que se dirige para la

    parte superior ya que en medio segundo se generan 2,5

    ciclos y para las frecuencias pares las crestas van al contrario

    porque se generan 2 ciclos exactos por cada 0,5 segundos.

    4. Repita los procedimientos de los puntos 2 y 3 con seales coseno de frecuencia 1, 2, 3, 4,....Hz Detecta algn patrn? CODIGO:

    T=0.0025

    t=[0:T:3];

    cuad1=square(2*pi*t);

    subplot(3,1,1),plot(t,cuad1,'b'),title('Seal

    Cuadrada');

    fs = 44.1; %tasa de muestreo%

    T = 0.0025; %perodo de muestreo%

    t = [0:T:3];o

    f1 = 1; % Frecuencia q va variando

    1,2,...[HZ]

    w1 = 2*pi*f1; x1 = cos(w1*t);

    subplot(3,1,2),plot(t,x1,'r'),title('Seal

    Senoidal');

    cuad2=x1.*cuad1;

    subplot(3,1,3),plot(t,cuad2,'g'),title('Produ

    cto de Hadamard');

    media=0;

    for i=1: 401

    media=media+cuad2(i);

    end

    r=media/401;

    b1=2*r;

    Para f1=1Hz Para f1=2Hz

  • 4

    Para f1=3Hz Para f1=4Hz

    Se puede observar que al aumentar la frecuencia en cada

    seal es decir las veces que se repite la onda en un tiempo

    determinado (periodo) y cada salto de ciclo el producto de

    Hadamar es el inverso a la seal senoidal.

    5. Usando los patrones observados, intente formar la descomposicin completa de la seal de onda

    cuadrada en sus componentes sinusoidales.

    Construya una seal con los primeros cinco

    trminos de la expansin y use Octave/Matlab

    para visualizarla. Parece esta una onda cuadrada?

    CODIGO: fs = 44.1; T = 0.0025; t = [0:T:1]; f1 = 1; omega1 = 2*pi; x1 = sin(omega1*t*1); x2 = sin(omega1*t*2); x3 = sin(omega1*t*3); x5 = sin(omega1*t*5); x7 = sin(omega1*t*7); yt=(2*x1)+(2/3*x3)+(2/5*x5)+(2/7*x7); title('Seal Cuadrada'); plot(t,yt,'o')

    La seal simulada se asemeja a una onda cuadrada con un

    riso u oscilacin en la parte superior e inferior de cada ciclo;

    la sumatoria de las seales descompuestas converge

    puntualmente a una funcin peridica que en este caso es

    una onda cuadrada.

    6. Cuantos trminos recomendar para poder decir que la onda resultante es una onda cuadrada con un

    error menor a 5 %.

    Repita el proceso anterior (descomposicin y sntesis) para

    otras 2 formas de onda simples; como por ejemplo, una

    forma de onda triangular o una diente de sierra.

    Diente de Sierra:

    CODIGO:

    clc

    clear all

    fs = 44.1;

    T = 0.0025;

    t = [0:T:1];

    f1 = 1;

    W = 2*pi;

    x1 = sin(W*t*1);x2 = sin(W*t*2);

    x3 = sin(W*t*3);x4 = sin(W*t*4);

    x5 = sin(W*t*5);x6 = sin(W*t*6);

    x7 = sin(W*t*7);

    yt=((-1)*x1)-(1/2*x2)-(1/3*x3)-(1/4*x4)-

    (1/5*x5)-(1/6*x6)-(1/7*x7);

    plot(yt,T,'g')

    title('Seal Diente de Sierra');

    Triangular:

    IV.B Propiedades El siguiente conjunto de actividades busca mostrar las

    propiedades bsicas de la transformada de Fourier y su uso

    en el clculo de respuestas en sistemas.

    Esta primera parte es referente a la extraccin de informacin sobre una nica frecuencia a partir de una

    seal.

    1. Construya un vector correspondiente a la exponencial compleja con frecuencia igual a 1 Hz y tasa de

    muestreo de 100 Hz, sobre un tiempo de 4 segundos.

    CODIGO: fs = 100;

    T = 1/fs;

    t = [0:T:4];

    f1 = 1;

    w=(2*pi*f1);

    x1 = exp(i*w*t);

    x2=cos(w*t)+ i*sin(w*t);

    plot(t, x1,'g');

    xlabel ('Tiempo (segundos)');

    ylabel ('x1');

    title ('Onda Exponencial Complejo');

    2. Construya un vector correspondiente a la onda coseno con amplitud 1, frecuencia 1 Hz y tasa de muestreo

    de 100 Hz, sobre un tiempo de 4 segundos.

    CODIGO: fs =100;

    T = 1/fs;

    t = [0:T:4];

    f1 = 1;

    w = 2*pi*f1;

    x1 = 1*cos(w*t);

    plot(t, x1);

    xlabel ('Tiempo (segundos)');

    ylabel ('x1');

    title ('Seal Cosenoidal Simple');

    3. Calcule el producto punto de las seales generadas en los puntos 1 y 2. Anote su respuesta.

    ( ) ( )

    ( ) ( ) ( ) ( )

    ( ) ( ) ( ) ( )

    ( ) ( )

  • 5

    CODIGO: fs =100;

    T = 1/fs;

    t = [0:T:4];

    f1 = 1;

    w = 2*pi*f1;

    x1 = 1*cos(w*t);

    x2=cos(w*t)+ i*sin(w*t);

    x3=cos(w*t);

    x4=cos(w*t);

    x5=x3.*x4;

    plot(t, x5);

    xlabel ('Tiempo (segundos)');

    ylabel ('x1');

    title ('Seal Producto de Seales

    Generadas');

    x2=cos(w*t)+ i*sin(w*t);

    4. Repita los procedimientos de los pasos 2 y 3 con una onda seno en lugar de coseno. Verifique que entiende

    la relacin entre ambas respuestas.

    CODIGO: fs =100;

    T = 1/fs;

    t = [0:T:4];

    f1 = 1; %

    w = 2*pi*f1;

    x1 = 1*cos(w*t);

    x2=cos(w*t)+ i*sin(w*t);

    x3=sin(w*t);

    x4=sin(w*t);

    x5=x3.*x4;

    plot(t, x5,'go');

    xlabel ('Tiempo (segundos)');

    ylabel ('x1');

    title ('Seal Producto de Seales Seno');

    5. Repita los procedimientos de los pasos 2, 3 y 4 con ondas coseno y seno cuya frecuencia es 2 Hz (la

    frecuencia de la exponencial compleja no es alterada).

    Comente su respuesta.

    Paso 2:

    CODIGO: fs =100;

    T = 1/fs;

    t = [0:T:4];

    f1 = 2;

    w = 2*pi*f1;

    x1 = 1*cos(w*t);

    x2=1*sin(w*t);

    plot(t, x2,'o');

    xlabel ('Tiempo (segundos)');

    ylabel ('x1');

    title ('Seal Senoidal Simple');

    Paso 3: CODIGO:

    fs =1000;

    T = 1/fs;

    t = [0:T:4];

    f1 = 2;

    w = 2*pi*f1;

    x1 = 1*cos(w*t);

    x2=cos(w*t)+ i*sin(w*t);

    x3=cos(w*t);

    x4=cos(w*t);

    x5=x3.*x4;

    plot(t, x5,'o');

    xlabel ('Tiempo (segundos)');

    ylabel ('x1');

    title ('Seal Producto de Seales

    Generadas');

    Paso 4:

    CODIGO: fs =100;

    T = 1/fs;

    t = [0:T:4];

    f1 = 2;

    w = 2*pi*f1;

    x1 = 1*cos(w*t);

    x2=cos(w*t)+ i*sin(w*t);

    x3=sin(w*t);

    x4=sin(w*t);

    x5=x3+x4;

    plot(t, x5,'r.');

    xlabel ('Tiempo (segundos)');

    ylabel ('x1');

    6. Repita los procedimientos de los pasos 2, 3 y 4 con un vector representando la seal (

    )

    ( )

    ( ) durando 4

    segundos y donde es 1Hz. Paso 2:

    CODIGO: fs =100;

    T = 1/fs;

    t = [0:T:4];

    f1 = 1;

    w = 2*pi*f1;

    x1 =

    sin(w*t)+(1/3)*sin(3*w*t)+(1/5)*sin(5*w+t);%

    seal senoidal

    plot(t, x1,'*');

    xlabel ('Tiempo (segundos)');

    ylabel ('x1');

    title ('Seal

    sin(w*t)+(1/3)*sin(3*w*t)+(1/5)*sin(5*w+t)');

    x2 = 1*cos(w*t);

    plot(t, x2,'o');

    xlabel ('Tiempo (segundos)');

    ylabel ('x2');

    title ('Seal Cosenoidal Simple');

  • 6

    Paso 3: CODIGO:

    fs =100;

    T = 1/fs;

    t = [0:T:4];

    f1 = 1;

    w = 2*pi*f1;

    x1 =

    sin(w*t)+(1/3)*sin(3*w*t)+(1/5)*sin(5*w+t);%

    seal senoidal

    plot(t, x1,'.');

    xlabel ('Tiempo (segundos)');

    ylabel ('x1');

    title ('Seal

    sin(w*t)+(1/3)*sin(3*w*t)+(1/5)*sin(5*w+t)');

    %x2 = 1*sin(w*t);

    %plot(t, x2,'r.');

    %xlabel ('Tiempo (segundos)');

    %ylabel ('x2');

    %title ('Seal Cosenoidal Simple');

    Paso 4:

    CODIGO: fs =1000;

    T = 1/fs;

    t = [0:T:4];

    f1 = 1;

    w = 2*pi*f1;

    x1 = 1*cos(w*t);

    x2=cos(w*t)+ i*sin(w*t);

    x3=sin(w*t);

    x4=sin(w*t);

    x5=x3.*x4;

    x6=sin(w*t)+(1/3)*sin(3*w*t)+(1/5)*sin(5*w+t)

    ;

    plot(t, x5,'g');

    xlabel ('Tiempo (segundos)');

    ylabel ('x1');

    title ('Seal Producto de Seales

    Generadas');

    %plot(t,x6,'r');

    %xlabel ('Tiempo (segundos)');

    %ylabel ('x1');

    %title ('Seal

    sin(w*t)+(1/3)*sin(3*w*t)+(1/5)*sin(5*w+t)');

    La siguiente actividad utiliza la transformada de Fourier y nos permite interpretar los resultados del operador f f t

    en Octave/Matlab.

    1. Tome seal la indicada en el punto 6 del tem anterior y dibuje el mdulo del vector retornado por f

    f t actuando sobre esta seal. Verifique que entiende:

    La localizacin de los primeros 3 picos.

    Las alturas relativas de los primeros 3 picos.

    La intensidad del primer pico.

    La existencia de los segundos 3 picos. CODIGO:

    fs =100;

    T = 1/fs;

    t = [0:T:4];

    f1 = 0;

    w = 2*pi*f1;

    x1 =

    sin(w*t)+(1/3)*sin(3*w*t)+(1/5)*sin(5*w+t);

    X=fft(x1);

    x=sin(2*pi*t)+(1/3)*sin(3*2*pi*t)+(1/5)*sin(5

    *2*pi*t);

    transformada=fft( x );

    plot(t,abs(transformada),'r')

    xlabel ('Tiempo (segundos)');

    ylabel ('x1');

    title ('Seal Senoidal Simple');

    2. Tome la transformada inversa de Fourier (usando i f f t) de la seal transformada por Fourier, y verifique

    que la seal original es recuperada.

    CODIGO: fs =100;

    T = 1/fs;

    t = [0:T:4];

    f1 = 0;

    w = 2*pi*f1;

    x1 =

    sin(w*t)+(1/3)*sin(3*w*t)+(1/5)*sin(5*w+t);

    x=sin(2*pi*t)+(1/3)*sin(3*2*pi*t)+(1/5)*sin(5

    *2*pi*t);

    transformada=ifft( x );

    plot(t,abs(transformada),'k')

    xlabel ('Tiempo (segundos)');

    ylabel ('x1');

    title ('Seal Senoidal Simple');

    Esta ltima parte muestra el uso bsico de la transformada rpida de Fourier para calcular respuestas

    de sistemas a seales.

    1. Calcule y dibuje el mdulo de la transformada de Fourier de un sistema de retardo unitario, usando una

    ventana (segundo parmetro de fft) de tamao 10.

    CODIGO x=[0:1000]

    subplot(2,1,1);

    plot(x,'.');

    title('Grafica de Vector');

    X=fft((x-1),10)

    subplot(2,1,2);

    plot(2*pi*(0:9)/10,abs(X),'r');

    title('El Modulo De la Transormada de

    Fourier');

  • 7

    2. Genere una seal aleatoria de tamao 9 y calcule su transformada de Fourier sobre una ventana de

    tamao 10.

    CODIGO: x=[0:8];subplot(3,1,1);

    plot(x,'r');title('Grafica de Vector');

    X=fft((x-1),10);subplot(3,1,2);

    plot(2*pi*(0:9)/10,abs(X),'g');

    title('El Modulo De la Transormada de

    Fourier');

    3. Verifique que la transformada inversa de Fourier del producto de las respuestas obtenidas en los puntos 1

    y 2 produzca la seal original retrasada por un

    elemento, tal como el uso de una convolucin lo

    habra hecho.

    CODIGO 1: x=[0:10];subplot(3,1,1);

    plot(x,'r');title('Grafica de Vector');

    X=fft((x-1),10);subplot(3,1,2);

    plot(2*pi*(0:9)/10,abs(X),'r');

    title('El Modulo De la Transormada de

    Fourier');y=ifft(X,10)

    subplot(3,1,3);

    plot(2*pi*(0:9)/10,abs(y),'r');

    title('Tranformada Inversa de Fourier');

    CODIGO 2: x=[0:8];subplot(3,1,1);

    plot(x,'m');title('Grafica de Vector');

    X=fft((x-1),10);

    subplot(3,1,2);

    plot(2*pi*(0:9)/10,abs(X),'m');

    title('El Modulo De la Transormada de

    Fourier');

    y=ifft(X,10)

    subplot(3,1,3);

    plot(2*pi*(0:9)/10,abs(y),'m');

    title('Tranformada Inversa de Fourier');

    V. EFECTOS DEL AUDIO Esta ltima seccin cubre la aplicacin de efectos digitales

    de audio.

    Esta parte inicial ayuda a explicar el valor retornado por el operador f f t en Octave/Matlab, usando como

    materia prima una seal de msica real.

    1. Descargue el archivo scale.wav y use las funciones

    wavread and sound para reproducirlo. Cul es la tasa de muestreo de este archivo de sonido?

    2. Dibuje las primeras mil muestras del primer canal. Puede determinar alguna regularidad aparente en el grafico? Si este es el caso, estime el perodo de la regularidad en muestras y por ende la frecuencia de dicha regularidad.

    3. Aplique la transformada de Fourier a las primeras mil muestras del primer canal y dibuje su magnitud. Note

    la simetra alrededor del punto medio.

    4. Dibuje la magnitud de la transformada de Fourier

    obtenida sobre los primeros 100 bins de frecuencia e

    identifique el nmero del bin del pico ms alto.

    5. Los bins estn en orden ascendente de frecuencia y

    cada uno corresponde a un entero mltiplo de 1/T ,

    donde T es el tiempo total de la seal cuya

    transformada fue tomada. Calcule la frecuencia

    correspondiente al bin identificado en el punto 4.

    T=100

    Por lo tanto

  • 8

    6. Repita los puntos 2, 3, 4 y 5 con las mil muestras de

    audio empezando en 39001, 78001, 17001, 156001,

    195001, 234001 y 273001. Es aconsejable escribir

    funciones para automatizar este trabajo. Note todas

    las frecuencias que obtuvo e intente relacionarlas con

    las escalas musicales.

    39001

    78001

    17001

    156001

    195001

    234001

    273001

    Esta segunda parte ilustra los efectos de las tcnicas de ilustrado bsico sobre seales musicales simples.

    1. Usando el mismo archivo scale.wav, tome la transformada de Fourier de la seal de un canal

    completo. Verifique que tomando la transformada

    inversa de Fourier (con i f f t) se produce la seal original.

    En el grafico podemos

    observar claramente que

    sacar la transformad de

    furrier y luego la

    transformad inversa de

    furrier se obtiene la

    misma seal.

    2. La remocin de un componente de frecuencia particular de una seal es equivalente a configurar su

    componente de Fourier a cero. Haga esto para todos

    los bins de frecuencia entre 3001 y 311012

    (inclusive).

    CODIGO: [x, Fs]=wavread('scale');

    sound(x,Fs)

    CanalD=x(:,1);

    subplot(3,1,2)

    FouT=fft(CanalD);

    %%%%%%%%%%%%filtro

    FouT(3001 : 311012)=0;

    iFouT=real(ifft(FouT));

    sound(iFouT,Fs)

    3. Escuche el sonido producido por la transformada inversa de Fourier de su espectro modificado y

    comente sobre las relaciones existentes entre el nuevo

    sonido, el antiguo y los componentes de frecuencia

    removidos.

    Se puede escuchar la pequea seal resultante a pesar de que

    el filtro de Fourier elimina una parte de esta, en el grafico se

    puede observar que son las 3 ultimas notas.

    Esta parte final permite aplicar la acstica de un espacio altamente resonante (York Minster) a una pieza de audio

    musical simple sintetizada.

    1. Primero, necesitamos una respuesta al impulso. Descargue el archivo YorkMinster.wav, escchelo y

    piense como ese sonido se relaciona con una

    respuesta al impulso.

    2. Lea el archivo en Octave mediante wavread. Note la tasa de muestreo utilizada. CODIGO:

    [melo fs NBits]= wavread('YorkMinster.wav');

    wavplay(melo,fs);

    % frecuencia de muestreo del archivo

    siz=wavread('YorkMinster.wav','size');

    subplot(2,1,1),plot(melo,'m'),title('Grafico

    de la YorkMinster');

    La tasa de muestreo es de 4800

    3. Descargue el archivo toccata.wav y lalo en Octave/Matlab. Nuevamente, note su tasa de

    muestreo.

    La tasa de muestreo es de 44100

    4. Como los archivos de audio tienen tasas de muestreo diferentes, para poder tratar el uno como entrada para

    el segundo archivo visto como sistema, use el

    operador de resample para convertir una de las

    seales a la tasa de muestreo de la otra.

    Mediante el comando resample igualamos las tasas de

    muestreo. y=resample(x,fs1,1)

    5. Trate de convolucionar las dos seales juntas para producir la salida del sistema York Minster a partir de

    la seal musical de entrada. Cunto tiempo est usted

    preparado para esperar?

    CODIGO: [melo fs NBits]= wavread('YorkMinster.wav');

    wavplay(melo,fs);

    siz=wavread('YorkMinster.wav','size');

    subplot(3,1,1),plot(melo,'r'),title('Grafico

    de la Melodia YorkMinste');x=fs;

    %segunda seal

    [melo1 fs1 NBits]= wavread('toccata.wav');

    wavplay(melo1,fs1);

    z=fs1;siz1=wavread('toccata.wav','size');

    subplot(3,1,2),plot(melo1,'r'),title('Grafico

    de la Melodia toccata');

    y=resample(x,fs1,1)

    w=resample(z,fs,1)

    %comvolucion de las dos seales

    r=conv(y,w);

    subplot(3,1,3),plot(r,'r'),title('Convolucion

    ');sound(r);

    Se debe esperar aproximadamente 15 minutos demasiado

    tiempo para un procesoincluso con el uso de matlab.

  • 9

    6. Use el mtodo de la transformada de Fourier para implementar la convolucin aplicando el audio York

    Minster a la seal musical. Cunto tiempo tom el

    clculo?

    CODIGO: [melo fs NBits]= wavread('YorkMinster.wav');

    [melo1 fs1 NBits]= wavread('toccata.wav');

    F1=fft(melo(:,1));

    F2=fft(melo1(1:length(melo),1));

    cV=F1.*F2;

    De esta manera Matlab nos ayuda a reducir el tiempo de

    clculo.

    7. Use wavwrite para escribir el resultado como un archivo de audio y escucharlo a travs de un media

    player.

    CODIGO: [melo fs NBits]=

    wavread('YorkMinster.wav'); [melo1 fs1 NBits]=

    wavread('toccata.wav'); F1=fft(melo(:,1)); F2=fft(melo1(1:length(melo),1)); cV=F1.*F2; %generando audio .wav CymT(:,1)=real(ifft(cV)); CymT(:,2)=real(ifft(cV)); wavwrite(CymT,44100,'NUEVO') [con, FsN]=wavread('NUEVO');

    Y se genero el archivo con el nombre de NUEVO

    VI. CONCLUCIONES

    Al finalizar el proyecto se logr con xito realizar la aplicacin de un modem celular con comandos

    AT, la cual permite el envo y recepcin de

    mensajes de texto cortos, adems es importante

    mencionar que los comandos AT son distintos

    para cada marca de telfono.

    Para realizar la consolacin entre dos seales esn necesario que las dos seales tengan la misma

    tasa de muestreo.

    Se comprob la propiedad de la transformada de Fourier; que al aplicar la transformada de fourier

    a una seal y luego aplicar la transformada de

    fourier inversa se obtiene la misma seal.

    La fuerza del sonido depende de la frecuencia a la que estemos creando dicho sonido, dependiendo

    de la frecuencia se pudo crear las diferentes notas

    musicales.

    El archivo de sonido creado en formato MP3 es el resultado de la consolacin de las seales de

    audio de los otros dos archivos tocata y

    YorkMinster; el archivo creado es parecido al

    audio del de tocata pero el sonido es mucho mas

    fuerte que el de tocata.

    Para Poder mostrar una Seal Diente de Sierra tenemos que poner una muestra de 200

    y(t)= -sen wt -1/2 sen 2wt -1/3 sen 3wt -1/4

    sen 4wt -1/5 sen 5wt -1/6 sen 6wt - y1= -sen t

    y2= -1/2sen 2t

    y3=-1/3sen 3t

    yT=-sen t -1/2sen 2t -1/3sen 3t

    Con la elaboracin de este proyecto de reforso todos los conocimientos tericos sodre la

    transformada de Fourier y se verifico que es una

    herramienta muy poderosa para la manipulacin

    de seales de audio.

    Autor:

    William Paul Chvez Chamorro naci la ciudad de

    Tulcn el 14 de abril de 1992, realizo sus estudio

    primarioe en la escuela 11 de Abril, cruzo el

    nivel secundario en el Instituto Tecnolgico

    Bolvar,se graduo en el ao 2009, actualmente

    crusa el quinto semestre de la carrera Ingenieria en

    Automatizacin y Control en la Escuela Plotecnica

    del Ejercito

    VII. BIBLIOGRAFIA

    [1] T. A. Davis, MATLAB primer, 8th ed. Chapman &

    Hall/CRC, 2011.

    [2] A. V. Oppenheim, A. S. Willsky, and S. H. Nawab,

    Signals & Systems, 2nd ed. Upper Saddle River, NJ, USA:

    Prentice-Hall, Inc., 1996.