You are on page 1of 24

UNIVERSIDAD PRIVADA BOLIVIANA INGENIERIA ELECTRONICA Y TELECOMUNICACIONES

Procesamiento digital de seales

Proyecto 1

Estudiante: Ivn Gabriel Terceros Vidal Carrera: Ing. Electrnica y Telecomunicaciones Cdigo: 19665 Cochabamba, 2 de septiembre de 2013

INTRODUCCIN: Se desea caracterizar los sonidos de las cuerdas de guitarra mediante su frecuencia, As mismo poder Afinarcomparando y aproximando a las frecuencias establecidas. OBJETIVOS Desarrollar habilidades para realizar el procesamiento digital de seales con MatLab, as mismo graficar en dominio del tiempo y de la frecuencia.

MARCO TEORICO:

Transformada rpida de Fourier FFT es la abreviatura usual (del ingls Fast Fourier Transform) de un eficiente algoritmo que permite calcular la transformada de Fourier discreta (DFT) y su inversa. La FFT es de gran importancia en una amplia variedad de aplicaciones, desde el tratamiento digital de seales y filtrado digital en general a la resolucin de ecuaciones en derivadas parciales o los algoritmos de multiplicacin rpida de grandes enteros. El algoritmo pone algunas limitaciones en la seal y en el espectro resultante. Por ejemplo: la seal de la que se tomaron muestras y que se va a transformar debe consistir de un nmero de muestras igual a una potencia de dos. La mayora de los analizadores TRF permiten la transformacin de 512, 1024, 2048 o 4096 muestras. El rango de frecuencias cubierto por el anlisis TRF depende de la cantidad de muestras recogidas y de la proporcin de muestreo. Uno de los algoritmos aritmticos ms ampliamente utilizados es la transformada rpida de Fourier, un medio eficaz de ejecutar un clculo matemtico bsico y de frecuente empleo. La transformada rpida de Fourier es de importancia fundamental en el anlisis matemtico y ha sido objeto de numerosos estudios. La aparicin de un algoritmo eficaz para esta operacin fue una piedra angular en la historia de la informtica. Las aplicaciones de la transformada rpida de Fourier son mltiples. Es la base de muchas operaciones fundamentales del procesamiento de seales, donde tiene amplia utilizacin. Adems, proporciona un medio oportuno para mejorar el rendimiento de los algoritmos para un conjunto de problemas aritmticos comunes.

Las frecuencias de las notas al aire son


1ra (E): 329,63 Hz 2da (B): 246,94 Hz 3ra (G): 196,00 Hz 4ta (D): 146,83 Hz 5ta (A): 110,00 Hz 6ta (E): 82,41 Hz

DESARROLLO: Se afinaron las cuerdas de guitarra, para esto usamos programas o equipos. Se procedi a realizar la captura de seales con la ayuda de una grabadora. Se copi los datos a la computadora. Se desarroll un pequeo programa en MatLab para el procesamiento digital de las seales y su respectiva grafica en el dominio del tiempo y la frecuencia. Una vez obtenidas las grficas caractersticas de la frecuencia de cada cuerda, se aument o se baj la frecuencia desafinando cada cuerda. Se realiz el procesamiento digital de la seal, se obtuvo sus respectivas graficas en dominio de la frecuencia y se compar con la frecuencia caracterstica respectiva. CODIGO FUENTE en MatLab: Se Adjunta los Archivos de sonido .WAV

%% Cargar en Matlab los sonidos de la cuerda 1 E4(Mi) 330 Hz clear; clc; cuerda= wavread('guitarE4- 001'); cuerda_mas = wavread('guitarE4- 002'); cuerda_men = wavread('guitarE4- 003');

fs= 44100; %%frecuencia de muestreo elegida %%Graficamos en funcion del tiempo%%%% figure(1) subplot(3,1,1) plot(cuerda) xlabel('Samples') ylabel('Amplitud'); title('Cuerda 1: Frecuencia 330Hz Letra [Mi]') subplot(3,1,2) plot(cuerda_mas) xlabel('Samples') ylabel('Amplitud'); title('Cuerda 1: Frecuencia subida Letra [Mi]') subplot(3,1,3) plot(cuerda_men) xlabel('Samples') ylabel('Amplitud'); title('Cuerda 1: Frecuencia bajada Letra [Mi]') %%% Grafiamos en funcion de la frecuencia%% figure(2) max_freq= 400; X = abs(fft(cuerda)); N = length(cuerda); f = 0:fs/length(cuerda):fs; num_bins = find(f> max_freq); X = X(1:num_bins(1)); f = f(1:num_bins(1)); plot(f, X/(N)*2+0.0001) axis([300 400 0 0.025]); xlabel('frequency (Hz)') ylabel('Magnitude'); title('Cuerda 1: Frecuencia 330Hz Letra [Mi]')

%%% Grafiamos en funcion de la frecuencia%% %% cuerda desplazada adelante figure(3) X = abs(fft(cuerda_mas)); N = length(cuerda_mas); f = 0:fs/length(cuerda_mas):fs; num_bins = find(f> max_freq); X = X(1:num_bins(1)); f = f(1:num_bins(1)); plot(f, X/(N)*2+0.0001) axis([300 400 0 0.025]); xlabel('frequency (Hz)') ylabel('Magnitude'); title('Cuerda 1 deplazada adelante: Frecuencia original 330Hz Letra [Mi]') %%% Grafiamos en funcion de la frecuencia%% %% cuerda desplazada atras figure(4) X = abs(fft(cuerda_men)); N = length(cuerda_men);

f = 0:fs/length(cuerda_men):fs; num_bins = find(f> max_freq); X = X(1:num_bins(1)); f = f(1:num_bins(1)); plot(f, X/(N)*2+0.0001) axis([300 400 0 0.025]); xlabel('frequency (Hz)') ylabel('Magnitude'); title('Cuerda 1 desplazada atras: Frecuencia original 330Hz Letra [Mi]')

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Cargar en Matlab los sonidos de la cuerda 2 B3(Mi) 247 Hz clear; clc; cuerda= wavread('guitarB3- 001'); cuerda_mas = wavread('guitarB3- 002'); cuerda_men = wavread('guitarB3- 003'); fs= 44100; %%frecuencia de muestreo elegida %%Graficamos en funcion del tiempo%%%% figure(1) subplot(3,1,1) plot(cuerda) xlabel('Samples') ylabel('Amplitud'); title('Cuerda 2: Frecuencia 247 Hz Letra [Si]') subplot(3,1,2) plot(cuerda_mas) xlabel('Samples') ylabel('Amplitud'); title('Cuerda 2: Frecuencia subida Letra [Si]') subplot(3,1,3) plot(cuerda_men) xlabel('Samples') ylabel('Amplitud'); title('Cuerda 2: Frecuencia bajada Letra [Si]') %%% Grafiamos en funcion de la frecuencia%% figure(2) max_freq= 300; X = abs(fft(cuerda)); N = length(cuerda); f = 0:fs/length(cuerda):fs; num_bins = find(f> max_freq); X = X(1:num_bins(1)); f = f(1:num_bins(1)); plot(f, X/(N)*2+0.0001) axis([200 300 0 0.018]); xlabel('frequency (Hz)') ylabel('Magnitude'); title('Cuerda 2: Frecuencia 247 Hz Letra [Si]')

%%% Grafiamos en funcion de la frecuencia%%

%% cuerda desplazada adelante figure(3) X = abs(fft(cuerda_mas)); N = length(cuerda_mas); f = 0:fs/length(cuerda_mas):fs; num_bins = find(f> max_freq); X = X(1:num_bins(1)); f = f(1:num_bins(1)); plot(f, X/(N)*2+0.0001) axis([200 300 0 0.018]); xlabel('frequency (Hz)') ylabel('Magnitude'); title('Cuerda 2 deplazada adelante: Frecuencia original 247 Hz Letra [Si]') %%% Grafiamos en funcion de la frecuencia%% %% cuerda desplazada atras figure(4) X = abs(fft(cuerda_men)); N = length(cuerda_men); f = 0:fs/length(cuerda_men):fs; num_bins = find(f> max_freq); X = X(1:num_bins(1)); f = f(1:num_bins(1)); plot(f, X/(N)*2+0.0001) axis([200 300 0 0.018]); xlabel('frequency (Hz)') ylabel('Magnitude'); title('Cuerda 2 desplazada atras: Frecuencia original 247 Hz Letra [Si]')

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% Cargar en Matlab los sonidos de la cuerda 3 G3(Sol) 196 Hz clear; clc; cuerda= wavread('guitarG3- 001'); cuerda_mas = wavread('guitarG3- 002'); cuerda_men = wavread('guitarG3- 003'); fs= 44100; %%frecuencia de muestreo elegida %%Graficamos en funcion del tiempo%%%% figure(1) subplot(3,1,1) plot(cuerda) xlabel('Samples') ylabel('Amplitud'); title('Cuerda 3: Frecuencia 196 Hz Letra [Sol]') subplot(3,1,2) plot(cuerda_mas) xlabel('Samples') ylabel('Amplitud'); title('Cuerda 3: Frecuencia subida Letra [Sol]')

subplot(3,1,3) plot(cuerda_men) xlabel('Samples') ylabel('Amplitud'); title('Cuerda 3: Frecuencia bajada Letra [Sol]')

%%% Grafiamos en funcion de la frecuencia%% figure(2) max_freq= 250; X = abs(fft(cuerda)); N = length(cuerda); f = 0:fs/length(cuerda):fs; num_bins = find(f> max_freq); X = X(1:num_bins(1)); f = f(1:num_bins(1)); plot(f, X/(N)*2+0.0001) axis([150 250 0 0.025]); xlabel('frequency (Hz)') ylabel('Magnitude'); title('Cuerda 3: Frecuencia 196 Hz Letra [Sol]') %% Grafiamos en funcion de la frecuencia%% %% cuerda desplazada adelante figure(3) X = abs(fft(cuerda_mas)); N = length(cuerda_mas); f = 0:fs/length(cuerda_mas):fs; num_bins = find(f> max_freq); X = X(1:num_bins(1)); f = f(1:num_bins(1)); plot(f, X/(N)*2+0.0001) axis([150 250 0 0.018]); xlabel('frequency (Hz)') ylabel('Magnitude'); title('Cuerda 3 deplazada adelante: Frecuencia original 196 Hz Letra [Sol]') %%% Grafiamos en funcion de la frecuencia%% %% cuerda desplazada atras figure(4) X = abs(fft(cuerda_men)); N = length(cuerda_men); f = 0:fs/length(cuerda_men):fs; num_bins = find(f> max_freq); X = X(1:num_bins(1)); f = f(1:num_bins(1)); plot(f, X/(N)*2+0.0001) axis([150 250 0 0.018]); xlabel('frequency (Hz)') ylabel('Magnitude'); title('Cuerda 3 desplazada atras: Frecuencia original 196 Hz Letra [Sol]') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Cargar en Matlab los sonidos de la cuerda 4 D3(Re) 147 Hz clear; clc;

cuerda= wavread('guitarD3- 001'); cuerda_mas = wavread('guitarD3- 002'); cuerda_men = wavread('guitarD3- 003'); fs= 44100; %%frecuencia de muestreo elegida %%Graficamos en funcion del tiempo%%%% figure(1) subplot(3,1,1) plot(cuerda) xlabel('Samples') ylabel('Amplitud'); title('Cuerda 4: Frecuencia 147 Hz Letra [Re]')

subplot(3,1,2) plot(cuerda_mas) xlabel('Samples') ylabel('Amplitud'); title('Cuerda 4: Frecuencia subida Letra [Re]') subplot(3,1,3) plot(cuerda_men) xlabel('Samples') ylabel('Amplitud'); title('Cuerda 4: Frecuencia bajada Letra [Re]') %%% Grafiamos en funcion de la frecuencia%% figure(2) max_freq= 200; X = abs(fft(cuerda)); N = length(cuerda); f = 0:fs/length(cuerda):fs; num_bins = find(f> max_freq); X = X(1:num_bins(1)); f = f(1:num_bins(1)); plot(f, X/(N)*2+0.0001) axis([100 200 0 0.035]); xlabel('frequency (Hz)') ylabel('Magnitude'); title('Cuerda 4 Frecuencia 147 Hz Letra [Re]') %%% Grafiamos en funcion de la frecuencia%% %% cuerda desplazada adelante figure(3) X = abs(fft(cuerda_mas)); N = length(cuerda_mas); f = 0:fs/length(cuerda_mas):fs; num_bins = find(f> max_freq); X = X(1:num_bins(1)); f = f(1:num_bins(1)); plot(f, X/(N)*2+0.0001) axis([100 200 0 0.06]); xlabel('frequency (Hz)') ylabel('Magnitude'); title('Cuerda 4 deplazada adelante: Frecuencia original 147 Hz Letra [Re]') %%% Grafiamos en funcion de la frecuencia%% %% cuerda desplazada atras

figure(4) X = abs(fft(cuerda_men)); N = length(cuerda_men); f = 0:fs/length(cuerda_men):fs; num_bins = find(f> max_freq); X = X(1:num_bins(1)); f = f(1:num_bins(1)); plot(f, X/(N)*2+0.0001) axis([100 200 0 0.06]); xlabel('frequency (Hz)') ylabel('Magnitude'); title('Cuerda 4 desplazada atras: Frecuencia original 147 Hz Letra [Re]') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Cargar en Matlab los sonidos de la cuerda 5 A2(La) 110 Hz clear; clc; cuerda= wavread('guitarA2- 001'); cuerda_mas = wavread('guitarA2- 002'); cuerda_men = wavread('guitarA2- 003'); fs= 44100; %%frecuencia de muestreo elegida %%Graficamos en funcion del tiempo%%%% figure(1) subplot(3,1,1) plot(cuerda) xlabel('Samples') ylabel('Amplitud'); title('Cuerda 5: Frecuencia 110 Hz Letra [La]') subplot(3,1,2) plot(cuerda_mas) xlabel('Samples') ylabel('Amplitud'); title('Cuerda 5: Frecuencia subida Letra [La]') subplot(3,1,3) plot(cuerda_men) xlabel('Samples') ylabel('Amplitud'); title('Cuerda 5: Frecuencia bajada Letra [La]') %%% Grafiamos en funcion de la frecuencia%% figure(2) max_freq= 150; X = abs(fft(cuerda)); N = length(cuerda); f = 0:fs/length(cuerda):fs; num_bins = find(f> max_freq); X = X(1:num_bins(1)); f = f(1:num_bins(1)); plot(f, X/(N)*2+0.0001) axis([80 140 0 0.045]); xlabel('frequency (Hz)') ylabel('Magnitude'); title('Cuerda 5: Frecuencia 110 Hz Letra [La]')

%%% Grafiamos en funcion de la frecuencia%% %% cuerda desplazada adelante figure(3) X = abs(fft(cuerda_mas)); N = length(cuerda_mas); f = 0:fs/length(cuerda_mas):fs; num_bins = find(f> max_freq); X = X(1:num_bins(1)); f = f(1:num_bins(1)); plot(f, X/(N)*2+0.0001) axis([80 140 0 0.025]); xlabel('frequency (Hz)') ylabel('Magnitude'); title('Cuerda 5 deplazada adelante: Frecuencia original 110 Hz Letra [La]')

%%% Grafiamos en funcion de la frecuencia%% %% cuerda desplazada atras figure(4) X = abs(fft(cuerda_men)); N = length(cuerda_men); f = 0:fs/length(cuerda_men):fs; num_bins = find(f> max_freq); X = X(1:num_bins(1)); f = f(1:num_bins(1)); plot(f, X/(N)*2+0.0001) axis([80 140 0 0.04]); xlabel('frequency (Hz)') ylabel('Magnitude'); title('Cuerda 5 desplazada atras: Frecuencia original 110 Hz Letra [La]') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Cargar en Matlab los sonidos de la cuerda 6 E2(Mi) 82 Hz clear; clc; cuerda= wavread('guitarE2- 001'); cuerda_mas = wavread('guitarE2- 002'); cuerda_men = wavread('guitarE2- 003'); fs= 44100; %%frecuencia de muestreo elegida %%Graficamos en funcion del tiempo%%%% figure(1) subplot(3,1,1) plot(cuerda) xlabel('Samples') ylabel('Amplitud'); title('Cuerda 6: Frecuencia 82 Hz Letra [Mi]') subplot(3,1,2) plot(cuerda_mas) xlabel('Samples') ylabel('Amplitud'); title('Cuerda 6: Frecuencia subida Letra [Mi]')

subplot(3,1,3) plot(cuerda_men) xlabel('Samples') ylabel('Amplitud'); title('Cuerda 6: Frecuencia bajada Letra [Mi]') %%% Grafiamos en funcion de la frecuencia%% figure(2) max_freq= 100; X = abs(fft(cuerda)); N = length(cuerda); f = 0:fs/length(cuerda):fs; num_bins = find(f> max_freq); X = X(1:num_bins(1)); f = f(1:num_bins(1)); plot(f, X/(N)*2+0.0001) axis([60 100 0 0.012]); xlabel('frequency (Hz)') ylabel('Magnitude'); title('Cuerda 6: Frecuencia 82 Hz Letra [Mi]') %%% Grafiamos en funcion de la frecuencia%% %% cuerda desplazada adelante figure(3) X = abs(fft(cuerda_mas)); N = length(cuerda_mas); f = 0:fs/length(cuerda_mas):fs; num_bins = find(f> max_freq); X = X(1:num_bins(1)); f = f(1:num_bins(1)); plot(f, X/(N)*2+0.0001) axis([60 100 0 0.006]); xlabel('frequency (Hz)') ylabel('Magnitude'); title('Cuerda 6 deplazada adelante: Frecuencia original 82 Hz Letra [Mi]')

%%% Grafiamos en funcion de la frecuencia%% %% cuerda desplazada atras figure(4) X = abs(fft(cuerda_men)); N = length(cuerda_men); f = 0:fs/length(cuerda_men):fs; num_bins = find(f> max_freq); X = X(1:num_bins(1)); f = f(1:num_bins(1)); plot(f, X/(N)*2+0.0001) axis([60 100 0 0.012]); xlabel('frequency (Hz)') ylabel('Magnitude'); title('Cuerda 6 desplazada atras: Frecuencia original 82 Hz Letra [Mi]')

GRAFICOS:
1ra Mi (E): 329,63 Hz

Grafica en Dominio del Tiempo

Grafica en Dominio de la Frecuencia (Frecuencia Principal)

Grafica en Dominio de la Frecuencia (Frecuencia Desplazada adelante)

Para la resolucin de ese caso se debe soltar la cuerda, as la frecuencia se aproximara ms a la principal.

Grafica en Dominio de la Frecuencia (Frecuencia desplazado atrs)

Para la resolucin de ese caso se debe tensionar la cuerda, as la frecuencia se aproximara ms a la principal.

2da Si (B): 246,94 Hz Grafica en Dominio del Tiempo

Grafica en Dominio de la Frecuencia (Frecuencia Principal)

Grafica en Dominio de la Frecuencia (Frecuencia Desplazada adelante)

Para la resolucin de ese caso se debe soltar la cuerda, as la frecuencia se aproximara ms a la principal.

Grafica en Dominio de la Frecuencia (Frecuencia desplazado atrs)

Para la resolucin de ese caso se debe tensionar la cuerda, as la frecuencia se aproximara ms a la principal.

3ra Sol (G): 196,00 Hz Grafica en Dominio del Tiempo

Grafica en Dominio de la Frecuencia (Frecuencia Principal)

Grafica en Dominio de la Frecuencia (Frecuencia Desplazada adelante)

Para la resolucin de ese caso se debe soltar la cuerda, as la frecuencia se aproximara ms a la principal.

Grafica en Dominio de la Frecuencia (Frecuencia desplazado atrs)

Para la resolucin de ese caso se debe tensionar la cuerda, as la frecuencia se aproximara ms a la principal.

4ta Re (D): 146,83 Hz Grafica en Dominio del Tiempo

Grafica en Dominio de la Frecuencia (Frecuencia Principal)

Grafica en Dominio de la Frecuencia (Frecuencia Desplazada adelante)

Para la resolucin de ese caso se debe soltar la cuerda, as la frecuencia se aproximara ms a la principal.

Grafica en Dominio de la Frecuencia (Frecuencia desplazado atrs)

Para la resolucin de ese caso se debe tensionar la cuerda, as la frecuencia se aproximara ms a la principal. 5ta La (A): 110,00 Hz Grafica en Dominio del Tiempo

Grafica en Dominio de la Frecuencia (Frecuencia Principal)

Grafica en Dominio de la Frecuencia (Frecuencia Desplazada adelante)

Para la resolucin de ese caso se debe soltar la cuerda, as la frecuencia se aproximara ms a la principal.

Grafica en Dominio de la Frecuencia (Frecuencia desplazado atrs)

Para la resolucin de ese caso se debe tensionar la cuerda, as la frecuencia se aproximara ms a la principal.

6ta Mi (E): 82,41 Hz Grafica en Dominio del Tiempo

Grafica en Dominio de la Frecuencia (Frecuencia Principal)

Grafica en Dominio de la Frecuencia (Frecuencia Desplazada adelante)

Para la resolucin de ese caso se debe soltar la cuerda, as la frecuencia se aproximara ms a la principal.

Grafica en Dominio de la Frecuencia (Frecuencia desplazado atrs)

Para la resolucin de ese caso se debe tensionar la cuerda, as la frecuencia se aproximara ms a la principal.

CONCLUSIONES Se logr realizar el procesamiento digital de seales haciendo uso de MatLab. Se logr Caracterizar las cuerdas de la guitarra segn su graficas en el dominio de la frecuencia y as pudimos comparar con la informacin encontrada e Internet. Se desarroll habilidades para el uso del programa MatLab, as mismo se aprendi la utilizacin de nuevos comandos.

BIBLIOGRAFIA Wikipedia, enciclopedia libre. Cambridge, APPLIED SPEECH AND AUDIO PROCESSING with MatLab Examples. MatLab Documentation. Pginas Web: http://www.guitaracordes.com/cursoguitarra/5-Afinar_Guitarra.php http://www.guitarfiero.com/2013/02/las-frecuencias-de-las-cuerdas-de-la.html http://www.youtube.com/watch?v=ie7iREcYBPU