66.74 { senales~ y sistemas trabajo pr actico...

45
Universidad de Buenos Aires Facultad de Ingenier´ ıa 66.74 – Se˜ nales y Sistemas Trabajo pr´ actico especial Barrios, Federico – 91954 [email protected] 2. do cuatrimestre de 2012

Upload: others

Post on 11-Apr-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

Universidad de Buenos AiresFacultad de Ingenierıa

66.74 – Senales y Sistemas

Trabajo practico especial

Barrios, Federico – [email protected]

2.do cuatrimestre de 2012

Page 2: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

Indice

1. Introduccion 2

2. Sonidos musicales 22.1. Ejercicio 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22.2. Ejercicio 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3. Ejercicio 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.4. Ejercicio 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.5. Ejercicio 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.6. Ejercicio 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.7. Ejercicio 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3. El sonido de la guitarra 153.1. Ejercicio 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.2. Ejercicio 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4. Sıntesis de sonidos generados por una cuerda vibrante 214.1. Ejercicio 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.2. Ejercicio opcional 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.3. Ejercicio opcional 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.4. Ejercicio opcional 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.5. Ejercicio opcional 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

5. Efectos musicales digitales 305.1. Ejercicio opcional 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 305.2. Ejercicio opcional 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . 335.3. Ejercicio 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345.4. Ejercicio 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.5. Ejercicio 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

6. Bibliografıa 41

Apendice: codigo adicional 42

1

Page 3: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

1. Introduccion

En el presente trabajo practico se realiza un analisis de sonidos musicales me-diante el uso de tecnicas y herramientas relacionadas con modelos matematicos desenales.

Este proyecto se enfoco en los sonidos producidos por la pulsacion de cuerdasde una guitarra. Despues de repasar las caracterısticas principales de los espectrosy formas de onda de varios sonidos, se estudiaron los producidos por instrumentosde cuerda; de esta manera se alcanzo una base teorica para intentar sintetizarsonidos de guitarra.

Finalmente se aplicaron los conocimientos adquiridos a lo largo de la cursa-da para implementar efectos musicales como delay o flanger a traves de filtrosdigitales.

Para la realizacion de este trabajo fue necesario codificar rutinas para analizary generar sonidos. Estas fueron implementadas usando GNU Octave como herra-mienta de calculo numerico.1 Ademas, se uso la herramienta pgfplots para generarlos graficos que se muestran en este informe.2

2. Sonidos musicales

En la primera seccion de este proyecto se resuelven ejercicios relacionados conel contenido armonico y la forma de onda de algunas grabaciones de instrumentos,para poder comparar sus caracterısticas de tono y timbre.

2.1. Ejercicio 1

Enunciado: genere una senal de audio x[n] como:

x1[n] = sen(2πf0·nT )+1

2sen(2·2πf0·nT )+

1

3sen(3·2πf0·nT )+

1

4sen(4·2πf0·nT )

x2[n] = sen(2πf0·nT )+1

3sen(3·2πf0·nT )+

1

5sen(5·2πf0·nT )+

1

7sen(7·2πf0·nT )

con f0 = 370 Hz, T = 1/44100 s y 0 ≤ n ≤ 3/T . Escuche la senal, grafique laforma de onda y obtenga su espectro de frecuencia.

Nuestro cerebro distingue nıtidamente entre ondas periodicas y ondas aperiodi-cas. Las primeras son percibidas como tonos y las segundas como ruido. Un sonidomusical esta caracterizado por tener una composicion armonica de frecuencias, es-to es, que las frecuencias de sus componentes guarden una relacion entera entreellas.3 En este primer ejercicio se pide muestrear con perıodo de muestreo T dossenales con contenido armonico diferente.

Podemos observar varias cosas con respecto a las senales antes de graficar-las. Ambas funciones se pueden considerar como sonidos musicales dado que su

1Sitio web oficial: http://www.gnu.org/software/octave/2Sitio web oficial: http://pgfplots.sourceforge.net/3Roederer 2002, p. 240

2

Page 4: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

contenido en frecuencia esta fuertemente relacionado. Ademas las dos tienen unafrecuencia fundamental de f0 = 370Hz, por lo tanto podemos afirmar que corres-ponden a notas F]4.4

Se muestran en la figura 1 las formas de onda de las senales y los modulos desus espectros, y en el codigo 1 el codigo GNU Octave utilizado para generarlas.56

Codigo 1: implementacion del ejercicio 1.1 % E j e r c i c i o 1 .2 close a l l ;3 clear a l l ;45 % Declaro cons tantes .6 f0 = 370 ;7 T = 1 / 44100;8 n = 0 : ( 3 / T) ;9 w0 = 2 ∗ pi ∗ f 0 ;

10 k = n / T / numel (n) ;11 % Defino l a cant idad de muestras que se g r a f i c a n .12 nGraf = 15000;1314 % Grafico l a primera funci on . . .15 x1 = sin (w0 ∗ T .∗ n) + (1/2) ∗ sin ( 2∗w0 ∗ T .∗ n) + \16 (1/3) ∗ sin (3∗w0 ∗ T .∗ n) + (1/4) ∗ sin (4∗w0 ∗ T .∗ n) ;17 g r a f i c a r t p ( ’ 1 x1 . tex ’ , T .∗ n , x1 , ’ $t [ s ] $ ’ , ’ $x {1}( t ) $ ’ , ’ b lue ’ ) ;1819 % . . . y g r a f i c o l a primera par te de su e s p e c t r o .20 X1 = abs ( f f t ( x1 ) ) ;21 g r a f i c a r t p ( ’ 1 X1 . tex ’ , k ( 1 : nGraf ) , X1 , ’ $ f [ Hz ] $ ’ , ’ $ |X {1}( f ) | $ ’ , ’ red ’ ) ;222324 % Grafico l a segunda funci on . . .25 x2 = sin (w0 ∗ T .∗ n) + (1/3) ∗ sin (3∗w0 ∗ T .∗ n) + \26 (1/5) ∗ sin (5∗w0 ∗ T .∗ n) + (1/7) ∗ sin (7∗w0 ∗ T .∗ n) ;27 g r a f i c a r t p ( ’ 1 x2 . tex ’ , T .∗ n , x2 , ’ $t [ s ] $ ’ , ’ $x {2}( t ) $ ’ , ’ b lue ’ ) ;2829 % . . . y g r a f i c o l a primera par te de su e s p e c t r o .30 X2 = abs ( f f t ( x2 ) ) ;31 g r a f i c a r t p ( ’ 1 X2 . tex ’ , k ( 1 : nGraf ) , X2 , ’ $ f [ Hz ] $ ’ , ’ $ |X {2}( f ) | $ ’ , ’ red ’ ) ;

4Dado que por convencion la nota A4 tiene una frecuencia de 440 Hz y que la relacion entrenotas consecutivas es de 12

√2 resulta 440Hz/( 12

√2)n = 370Hz y despejando para n resulta n = 3.

Se puede afirmar, entonces, que la nota con frecuencia 370 Hz esta tres notas por debajo de A4y es F]4 o G[4.

5Como en este trabajo nos interesa solo el modulo de la respuesta en frecuencia, de ahora enmas se hablara simplemente de “espectro” para referirse a su valor absoluto.

6En la mayorıa de los ejercicios de esta primera parte se utiliza una funcion de GNU Octavedesarrollada especialmente para este trabajo (graficar tp) que exporta graficos en un formatovectorial compatible con el utilizado por LATEXpara escribir este informe. Se incluye el codigo delas funciones auxiliares en el apendice.

3

Page 5: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

0 0,2 0,4 0,6 0,8 1 1,2 1,4 1,6 1,8 2 2,2 2,4 2,6 2,8 3

−1

0

1

t[s]

x1(t)

0 500 1000 1500 2000 2500 3000 3500 4000 4500

0

20000

40000

60000

f [Hz]

|X1(f)|

0 0,2 0,4 0,6 0,8 1 1,2 1,4 1,6 1,8 2 2,2 2,4 2,6 2,8 3

−1

−0,5

0

0,5

1

t[s]

x2(t)

0 500 1000 1500 2000 2500 3000 3500 4000 4500

0

20000

40000

60000

f [Hz]

|X2(f)|

Figura 1: formas de onda y espectros en frecuencia de x1 y x2 respectivamente.

4

Page 6: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

2.2. Ejercicio 2

Enunciado: repita el ejercicio 1 con las senales contenidas en los archi-vos guitarra 370.wav, flauta 370.wav y piano 370.wav. Observe y comentesobre la configuracion de las frecuencias presentes para cada uno de los instru-mentos.

Se muestran en la figura 2 las formas de onda de las senales pedidas y en lafigura 3 sus espectros.7

0,5 1 1,5 2 2,5 3 3,5

−1

−0,5

0

0,5

t[s]

xguitarra(t)

0,2 0,4 0,6 0,8 1 1,2 1,4 1,6 1,8 2−0,02

−0,01

0

0,01

0,02

t[s]

xflauta(t)

0,5 1 1,5 2 2,5 3 3,5 4

−0,05

0

0,05

t[s]

xpia

no(t)

Figura 2: formas de onda de las senales guitarra 370.wav, flauta 370.wav ypiano 370.wav, respectivamente.

7Como la senal del sonido del piano era de dos canales, solo se analizo el izquierdo.

5

Page 7: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

1000 2000 3000 4000 5000 6000 7000 8000

0

500

1000

1500

f [Hz]

|Xguitarra(f)|

1000 2000 3000 4000 5000 6000 7000 8000

0

50

100

f [Hz]

|Xflauta(f)|

1000 2000 3000 4000 5000 6000 7000 8000

0

100

200

f [Hz]

|Xpia

no(f)|

Figura 3: espectros de frecuencia de las senales guitarra 370.wav,flauta 370.wav y piano 370.wav, respectivamente.

Como muestra el codigo 2, las tres DFT se calcularon con la misma cantidadde puntos, mayor a la cantidad de puntos de la senal mas larga y una potencia dedos para que la FFT se compute rapidamente.8 Ademas, dado que para frecuenciasaltas la amplitud de las muestras es muy baja, se tomaron en cuenta solamentelos primeros valores de la DFT.

Bajo estas especificaciones se pueden obtener conclusiones a simple vista de losresultados. En primer lugar se observa que las configuraciones de los armonicos

8Oppenheim, Schafer 1999, p. 635.

6

Page 8: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

son diferentes en las tres senales. Esta diferencia espectral es percibida por el oıdohumano y por eso se dice que los instrumentos musicales tienen diferente timbre.9

Tambien podemos ver como en los tres instrumentos musicales se ejecuta lamisma nota al ser la frecuencia fundamental igual en las tres senales (salvo unospicos aislados alrededor de la muestra numero 100 del espectro de la senal de gui-tarra que considero que son resultado de la baja calidad de la grabacion), alrededorde 373 Hz, siendo la nota ejecutada un F]4.

Codigo 2: implementacion del ejercicio 2.1 % E j e r c i c i o 2 .2 clear a l l ;3 close a l l ;45 % Declaro cons tantes .6 f s = 44100 ;7 % Defino l a cant idad de puntos con l a que se c a l c u l a l a DFT.8 npunto s f f t = 2ˆ18 ;9 ngra f = 50000 ;

1011 % Importo l o s t r e s a r c h i v o s .12 xg = wavread( ’ . / son idos / gu i t a r r a 370 . wav ’ ) ;13 x f = wavread( ’ . / son idos / f l a u t a 370 . wav ’ ) ;14 xp = wavread( ’ . / son idos / piano 370 . wav ’ ) ;1516 % Grafico l a forma de l a s e n a l de g u i t a r r a . . .17 n = 1 : numel ( xg ) ;18 x = n / f s ;19 g r a f i c a r t p ( ’ 2 xg . tex ’ , x , xg , ’ $t [ s ] $ ’ , ’ $x { gu i t a r r a }( t ) $ ’ , ’ b lue ’ ) ;2021 % . . . y su e s p e c t r o .22 Xg = abs ( f f t ( xg , npunto s f f t ) ) ;23 Xgw = Xg( 1 : npuntosgra f ) ;24 x = 1 : numel (Xgw) ;25 k = x .∗ f s / npunto s f f t ;26 g r a f i c a r t p ( ’ 2 Xg . tex ’ , k , Xgw, ’ $ f [ Hz ] $ ’ , ’ $ |X { gu i t a r r a }( f ) | $ ’ , ’ red ’ ) ;2728 % Grafico l a forma de onda de l a s e n a l de f l a u t a . . .29 n = 1 : numel ( x f ) ;30 x = n / f s ;31 g r a f i c a r t p ( ’ 2 x f . tex ’ , x , xf , ’ $t [ s ] $ ’ , ’ $x { f l a u t a }( t ) $ ’ , ’ b lue ’ ) ;3233 % . . . y su e s p e c t r o .34 Xf = abs ( f f t ( xf , npunto s f f t ) ) ;35 Xfw = Xf ( 1 : npuntosgra f ) ;36 x = 1 : numel (Xfw) ;37 k = x .∗ f s / npunto s f f t ;38 g r a f i c a r t p ( ’ 2 Xf . tex ’ , k , Xfw , ’ $ f [ Hz ] $ ’ , ’ $ |X { f l a u t a }( f ) | $ ’ , ’ red ’ ) ;3940 % Conservo s o l o un canal d e l audio d e l piano .41 xpm = xp ( : , 1 ) ;4243 % Grafico l a forma de onda de l a s e n a l de piano . . .44 n = 1 : numel (xpm) ;45 x = n / f s ;46 k = x .∗ f s / npunto s f f t ;47 g r a f i c a r t p ( ’ 2 xp . tex ’ , x , xpm, ’ $t [ s ] $ ’ , ’ $x {piano }( t ) $ ’ , ’ b lue ’ ) ;4849 % . . . y su e s p e c t r o .50 Xp = abs ( f f t (xp , npunto s f f t ) ) ;51 Xpw = Xp( 1 : npuntosgra f ) ;52 x = 1 : numel (Xpw) ;53 k = x .∗ f s / npunto s f f t ;54 g r a f i c a r t p ( ’ 2 Xp . tex ’ , k , Xpw, ’ $ f [ Hz ] $ ’ , ’ $ |X {piano }( f ) | $ ’ , ’ red ’ ) ;

9Roederer 2002, p. 242.

7

Page 9: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

2.3. Ejercicio 3

Enunciado: obtenga la amplitud de los armonicos de las tres primeras notascontenidas en el archivo cancion.wav.

Se grafican en la figura 4 la primera parte de los espectros de frecuencia co-rrespondientes a las primeras tres notas de la senal dada y en el codigo 3 la rutinautilizada para generarlos.

500 1000 1500 2000 2500 3000 3500 4000

0

200

400

600

800

f [Hz]

|X1(f)|

500 1000 1500 2000 2500 3000 3500 4000

0

200

400

f [Hz]

|X2(f)|

500 1000 1500 2000 2500 3000 3500 4000

0

200

400

f [Hz]

|X3(f)|

Figura 4: espectros de frecuencia de las primeras tres notas de la senal sonoracancion.wav.

En este caso podemos hacer un analisis similar al hecho en el ejercicio 2. Obser-vando los espectros de los sonidos se puede encontrar un patron en las amplitudes

8

Page 10: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

de los armonicos del instrumento: los dos primeros armonicos tienen una magni-tud mayor a la de la fundamental, siendo el tercero y el cuarto un poco menoselevados. El quinto armonico en los tres casos de menor amplitud que el resto, ylos subsiguientes de una magnitud similar.

Codigo 3: implementacion del ejercicio 3.1 % E j e r c i c i o 3 .2 clear a l l ;3 close a l l ;45 % Declaro cons tantes .6 f s = 44100 ;7 npunto s f f t = 2ˆ14 ;8 npuntosgra f = 1500 ;9

10 % Cargo en memoria l a s s e c c i o n e s d e l arch ivo correspond ien te .11 x1 = wavread( ’ . / son idos / canc ion . wav ’ , [1531 14509 ] ) ;12 x2 = wavread( ’ . / son idos / canc ion . wav ’ , [15050 23337 ] ) ;13 x3 = wavread( ’ . / son idos / canc ion . wav ’ , [26706 35425 ] ) ;1415 % Obtengo l o s e s p e c t r o s . . .16 X1 = f f t ( x1 , npunto s f f t ) ;17 X2 = f f t ( x2 , npunto s f f t ) ;18 X3 = f f t ( x3 , npunto s f f t ) ;1920 % . . . y g r a f i c o l a primera par te de su e s p e c t r o de f r e c u e n c i a s .21 x = 1 : npuntosgra f ;22 k = x .∗ f s / npunto s f f t ;23 X1 = abs (X1 ( 1 : npuntosgra f ) ) ;24 X2 = abs (X2 ( 1 : npuntosgra f ) ) ;25 X3 = abs (X3 ( 1 : npuntosgra f ) ) ;2627 g r a f i c a r t p ( ’ 3 1 . tex ’ , k , X1 , ’ $ f [ Hz ] $ ’ , ’ $ |X {1}( f ) | $ ’ , ’ red ’ ) ;28 g r a f i c a r t p ( ’ 3 2 . tex ’ , k , X2 , ’ $ f [ Hz ] $ ’ , ’ $ |X {2}( f ) | $ ’ , ’ red ’ ) ;29 g r a f i c a r t p ( ’ 3 3 . tex ’ , k , X3 , ’ $ f [ Hz ] $ ’ , ’ $ |X {3}( f ) | $ ’ , ’ red ’ ) ;

2.4. Ejercicio 4

Enunciado: en las formas de onda del ejercicio 2 marque las zonas deinicio del ataque, sostenido y decaimiento de cada senal.

En este ejercicio se pide analizar la evolucion temporal de los sonidos teniendoen cuenta la variacion de las intensidades en el tiempo.

Se muestran en la figura 5 las zonas pedidas, en la que podemos observar comolas caracterısticas temporales son diferentes de instrumento a instrumento. Tantola guitarra como el piano presentan zonas de ataque y de sostenido muy cortasen contraste con las zonas de decaimiento que son prominentes; mientras que laflauta tiene una zona de sostenido mas larga que la zona de decaimiento. Esto sedebe a la naturaleza de los instrumentos: tanto la guitarra como el piano emitensonidos al pulsar o golpear cuerdas. La flauta, en cambio, es un instrumento deviento y el tiempo de sostenido esta controlado completamente por el ejecutor.

9

Page 11: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

Figura 5: formas de onda de las senales analizadas en el ejercicio 2 con las zonas deataque (en verde), sostenido (en amarillo) y decaimiento (rosa) marcadas. (Arriba)senal de guitarra; (medio) senal de flauta; (abajo) senal de piano.

2.5. Ejercicio 5

Enunciado: a las ondas del ejercicio 2 realice un analisis tiempo–frecuenciay compare entre ellas la variacion temporal de los armonicos.

Se muestra en la figura 6 los espectrogramas realizados con el codigo 4 de lassenales del ejercicio 2. Como se puede ver en la implementacion, los graficos setrazaron usando la ventana que usa por defecto Octave (una ventana de Han-ning) pero de 211 puntos. Considero que con estas especificaciones se pueden vercomodamente las caracterısticas de las senales.

10

Page 12: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

Figura 6: espectrogramas de los sonido del ejercicio 2. (Arriba) guitarra; (medio)flauta; (abajo) piano.

11

Page 13: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

Se pueden hacer varias observaciones con respecto a los resultados obtenidos.En primer lugar, ası como cuando se analizaron las formas de onda, se vuelvea visualizar cierto parecido entre los espectrogramas del sonido generado por laguitarra y el generado por el piano; sin embargo hay varias diferencias. La primeraes que los primeros armonicos del sonido de la guitarra se desvanecen rapidamente,mientras que en la grabacion del audio se mantienen hasta el final. Tambien seve como desde el primer momento, en el sonido de la guitarra hay muchos masarmonicos presentes que en el de piano, sin embargo estos no duran mucho.

El espectro de la flauta es muy diferente. Durante toda la duracion de la senalsuenan con mucha amplitud sus primeros armonicos, que permanecen de esa ma-nera en la totalidad de la zona de sostenido. Este fenomeno esta relacionado conea forma de la onda, en la que su zona de sostenido es grande en comparacion conlos otros dos audios.

Codigo 4: implementacion del ejercicio 5.1 % E j e r c i c i o 5 .2 clear a l l ;3 close a l l ;45 % Defino cons tan tes .6 pr in t opc = ’−dpng ’ ;7 tam vent = 2ˆ11 ;89 % Importo l o s t r e s a r c h i v o s .

10 [ xg , f s g ] = wavread( ’ . / son idos / gu i t a r r a 370 . wav ’ ) ;11 [ xf , f s f ] = wavread( ’ . / son idos / f l a u t a 370 . wav ’ ) ;12 [ xp , f sp ] = wavread( ’ . / son idos / piano 370 . wav ’ ) ;1314 % Grafico e l espectrograma de l a s e n a l de g u i t a r r a .15 xg spec = figure ;16 specgram (xg , tam vent , f s g ) ;17 print ( xg spec , pr int opc , ’ 5 xg . png ’ )1819 % Grafico e l espectrograma de l a s e n a l de f l a u t a .20 x f s p e c = figure ;21 specgram ( xf , tam vent , f s f ) ;22 print ( x f spec , pr int opc , ’ 5 x f . png ’ )2324 % Conservo s o l o un canal d e l audio d e l piano .25 xpm = xp ( : , 1 ) ;2627 % Grafico e l espectrograma de l a s e n a l de f l a u t a .28 xp spec = figure ;29 specgram (xpm, tam vent , f sp ) ;30 print ( xp spec , pr int opc , ’ 5 xp . png ’ )

2.6. Ejercicio 6

Enunciado: repita el ejercicio anterior para la senal que se encuentra enel archivo cancion.wav.

Se muestra a continuacion el codigo 5, que genero los espectrogramas de lafigura 7, implementados con la misma configuracion que en el ejercicio anterior.Para ver con mayor facilidad la evolucion en el tiempo de los armonicos se dividio elarchivo de entrada en dos segmentos, obteniendo dos graficos.

Podemos ver como en todas las notas la evolucion de los armonicos es simi-lar: durante el tiempo de ataque del instrumento se ven muchos armonicos con

12

Page 14: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

mucha amplitud. Las frecuencias mas altas bajan su intensidad muy rapidamente,mientras que los primeros armonicos estan presentes durante la mayor parte de laduracion de la nota.

Codigo 5: implementacion del ejercicio 6.1 % E j e r c i c i o 6 .2 clear a l l ;3 close a l l ;45 % Defino cons tan tes .6 pr in t opc = ’−dpng ’ ;7 tam vent = 2ˆ11 ;89 % Importo e l arch ivo en dos p a r t e s .

10 [ x1 , f s 1 ] = wavread( ’ . / son idos / canc ion . wav ’ , [ 0 270000 ] ) ;11 [ x2 , f s 2 ] = wavread( ’ . / son idos / canc ion . wav ’ , [270001 425088 ] ) ;1213 % Grafico l o s espectrogramas c o r r e s p o n d i e n t e s .14 spec1 = figure ;15 specgram (x1 , tam vent , f s 1 ) ;16 print ( spec1 , pr int opc , ’ 6 2 . png ’ )1718 spec2 = figure ;19 specgram (x2 , tam vent , f s 2 ) ;20 print ( spec2 , pr int opc , ’ 6 1 . png ’ )

Figura 7: espectrogramas de la senal cancion.wav; (arriba) primer segmento, (aba-jo) segundo segmento.

13

Page 15: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

2.7. Ejercicio 7

Enunciado: encuentre los formantes del tracto vocal al emitir la vocal [a]que fue registrada en el archivo a.wav.

La resonancia es un fenomeno fısico relacionado con la modificacion de la am-plitud de los armonicos de un sonido. Este fenomeno se da cuando un cuerpo vibraa causa de una fuerza externa periodica. Definimos como formantes de un soni-do a aquellas frecuencias, naturales, que se ven aumentadas en un fenomeno deresonancia.10

En el caso del habla, las ondas sonoras generadas en la laringe son de pocaintensidad y serıan inaudibles si no fuera por las cavidades del craneo, responsablesde la resonancia.11

En este ejercicio se uso la aplicacion Wavesurfer12 para analizar los formantesdel tracto vocal al pronunciar la vocal [a]. Se muestra en la figura 8 una capturadel programa, en donde se puede ver el la forma de onda de la senal (arriba) yun espectrograma, con los primeros cuatro formantes resaltados de varios colores(abajo).

Viendo la salida de Wavesurfer podemos concluir que el primer formante dela vocal [a] en la grabacion dada esta cerca de la frecuencia 750 Hz. El segundoformante se encuentra cerca de la frecuencia 1300 Hz, mientras que el tercero y elcuarto se ubican cerca de las frecuencias 2350 Hz y 3200 Hz, respectivamente.

Figura 8: captura de pantalla del programa Wavesurfer analizando el archivoa.wav. Se muestra en la parte superior la forma de onda de la senal y en la inferiorel espectrograma con sus primeros cuatro formantes marcados en colores.

10Oppenheim, Schafer 1999, p. 725.11Kent, Read 2001, p. 43.12Sitio web oficial: http://sourceforge.net/projects/wavesurfer/

14

Page 16: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

3. El sonido de la guitarra

En esta seccion del informe se va a centrar la atencion en el sonido generado porlas cuerdas de una guitarra, primero llevando a cabo un analisis fısico y despuesaplicandolo para hacer una primera aproximacion para modelarlo.

Para hacer esto es conveniente recordar la ecuacion diferencial de las ondasplanas:

∂2y(y, x)

∂t2= c2

∂2y(t, x)

∂x2

siendo c la velocidad de la onda.Partiendo de esta ecuacion es posible obtener mediante un desarrollo matemati-

co la expresion fundamental de la propagacion de ondas transversales, elasticas yplanas en medios homogeneos e isotropos:13

K∂2y(y, x)

∂x2= ε

∂2y(t, x)

∂t2(1)

siendo K la tension aplicada a la cuerda y ε su densidad, y con velocidad:

c =

√K

ε(2)

3.1. Ejercicio 8

Enunciado: en el archivo cuerdas.wav se almaceno el audio generado alpulsar las cuerdas de una guitarra, una a continuacion de otra. Si todas lascuerdas estan sometidas a la misma tension, ordene de mayor a menor lossonidos segun el peso de las cuerdas que los origino.

Resolviendo la ecuacion 1 y teniendo en cuenta la velocidad de la onda de laecuacion 2, se puede deducir que la frecuencia fundamental del sonido producidopor una cuerda sera:

f0 =1

2L

√K

ε

Dado que se define a la densidad de un material como la relacion entre su masay su volumen:

ε =m

v

podemos obtener una expresion para la masa de la cuerda:

m =vK

4L2f 20

(3)

y queda claro que esta depende a la inversa del cuadrado de la frecuencia funda-mental.

13Roederer 2002, pp. 219–226.

15

Page 17: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

Se muestra en la figura 9 el espectro de las primeras dos cuerdas y en la 10 elespectro de las ultimas cuatro. Estudiando los graficos podemos encontrar la fre-cuencia fundamental de cada sonido y gracias a la relacion obtenida en la ecuacion3, ordenarlas por masa.

En el cuadro 1 se presentan los resultados del analisis para cada una de lascuerdas, ordenadas de manera creciente por su masa considerando que las tensionesaplicadas a cada una son identicas, al igual que sus largos y volumenes.

Cuerda grabada Frecuencia [Hz] Nota musicalPrimera 330 E4Tercera 247 B3Quinta 197 G3Sexta 145 D3

Cuarta 111 A2Segunda 83 E2

Cuadro 1: resultados del analisis de los espectros de cuerdas.wav, ordenados pormasa ascendente.

Podemos ver que los sonidos registrados corresponden a una guitarra afinadade manera estandar, pero grabados en desorden.

500 1000 1500 2000 2500 3000

0

200

400

600

f [Hz]

|X1(f)|

500 1000 1500 2000 2500 3000

0

200

400

600

f [Hz]

|X2(f)|

Figura 9: espectros de frecuencia de las primeras dos cuerdas de cuerdas.wav.

16

Page 18: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

Se muestra en el codigo 6 la implementacion en Octave que permitio realizarlos graficos de este ejercicio.

500 1000 1500 2000 2500 3000

0

200

400

600

800

f [Hz]

|X3(f)|

500 1000 1500 2000 2500 3000

0

200

400

600

f [Hz]

|X4(f)|

500 1000 1500 2000 2500 3000

0

500

1000

f [Hz]

|X5(f)|

200 400 600 800 1000 1200 1400 1600

0

500

f [Hz]

|X6(f)|

Figura 10: espectros de frecuencia de las ultimas cuatro cuerdas de cuerdas.wav.

17

Page 19: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

Codigo 6: implementacion del ejercicio 8.1 % E j e r c i c i o 8 .2 clear a l l ;3 close a l l ;45 % Separo l o s sonidos de cada cuerda .6 x1 = wavread( ’ . / son idos / cuerdas . wav ’ , [4412 30945 ] ) ;7 x2 = wavread( ’ . / son idos / cuerdas . wav ’ , [30946 57408 ] ) ;8 x3 = wavread( ’ . / son idos / cuerdas . wav ’ , [57409 83802 ] ) ;9 x4 = wavread( ’ . / son idos / cuerdas . wav ’ , [83803 110326 ] ) ;

10 x5 = wavread( ’ . / son idos / cuerdas . wav ’ , [110327 136724 ] ) ;11 x6 = wavread( ’ . / son idos / cuerdas . wav ’ , [136724 190213 ] ) ;1213 % Calcu lo l a s DFT de cada sonido para obtener e l14 % e s p e c t r o de cada nota . . .15 X1 = abs ( f f t ( x1 ) ) ;16 X2 = abs ( f f t ( x2 ) ) ;17 X3 = abs ( f f t ( x3 ) ) ;18 X4 = abs ( f f t ( x4 ) ) ;19 X5 = abs ( f f t ( x5 ) ) ;20 X6 = abs ( f f t ( x6 ) ) ;2122 % . . . y g r a f i c o sus primeras p a r t e s .23 x = 1 : 2000 ;24 f s = 44100 ;2526 n1 = x ∗ f s / numel ( x1 ) ;27 g r a f i c a r t p ( ’ 8 1 . tex ’ , n1 , X1 , ’ $ f$ [Hz ] ’ , ’ $ |X {1}( f ) | $ ’ , ’ red ’ ) ;2829 n2 = x ∗ f s / numel ( x2 ) ;30 g r a f i c a r t p ( ’ 8 2 . tex ’ , n2 , X2 , ’ $ f$ [Hz ] ’ , ’ $ |X {2}( f ) | $ ’ , ’ red ’ ) ;3132 n3 = x ∗ f s / numel ( x3 ) ;33 g r a f i c a r t p ( ’ 8 3 . tex ’ , n3 , X3 , ’ $ f$ [Hz ] ’ , ’ $ |X {3}( f ) | $ ’ , ’ red ’ ) ;3435 n4 = x ∗ f s / numel ( x4 ) ;36 g r a f i c a r t p ( ’ 8 4 . tex ’ , n4 , X4 , ’ $ f$ [Hz ] ’ , ’ $ |X {4}( f ) | $ ’ , ’ red ’ ) ;3738 n5 = x ∗ f s / numel ( x5 ) ;39 g r a f i c a r t p ( ’ 8 5 . tex ’ , n5 , X5 , ’ $ f$ [Hz ] ’ , ’ $ |X {5}( f ) | $ ’ , ’ red ’ ) ;4041 n6 = x ∗ f s / numel ( x6 ) ;42 g r a f i c a r t p ( ’ 8 6 . tex ’ , n6 , X6 , ’ $ f$ [Hz ] ’ , ’ $ |X {6}( f ) | $ ’ , ’ red ’ ) ;

3.2. Ejercicio 9

Enunciado: encontrar la funcion de transferencia del filtro. Graficar el dia-grama de polos y ceros y la respuesta en frecuencia para r = 0,9995 y K = 119.Obtener 3 segundos de la respuesta al impulso con una frecuencia de muestreode 44100 Hz. Escuchar y graficar la evolucion temporal. ¿Cual es su frecuenciafundamental?

El filtro mencionado en el enunciado es un peine IIR de la forma:

y[n] = x[n] + rky[n−K]

cuya transferencia es, reemplazando por los valores provistos en el enunciado,

H(z) =z119

z119 − 19992000

119 (4)

Se muestra en el grafico 11 el diagrama de polos y ceros correspondiente.

18

Page 20: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

−1 −0,8 −0,6 −0,4 −0,2 0 0,2 0,4 0,6 0,8 1

−1

−0,8

−0,6

−0,4

−0,2

0

0,2

0,4

0,6

0,8

1

Re(z)

Im(z)

Figura 11: diagrama de polos y ceros de la transferencia de la ecuacion 4.

Al escuchar la respuesta al impulso del filtro se puede notar una similitud alsonido generado por una cuerda, aunque tambien se puede apreciar que esta sin-tetizado; sin embargo es un excelente resultado para una primera aproximacion.

Se muestra en la figura 12 la forma de onda y el espectro de las senales obte-nidas. Viendo el grafico espectral podemos afirmar que la frecuencia fundamentaldel sonido generado es de aproximadamente 362 Hz.

En el codigo 7 se muestra la implementacion en Octave correspondiente a losgraficos de este ejercicio.14

Codigo 7: implementacion del ejercicio 9.1 % E j e r c i c i o 9 .2 clear a l l ;3 close a l l ;45 % Defino cons tan tes .6 r = 1999/2000;7 k = 119 ;8 f s = 44100 ;9 ngra f = 5999 ;

10 nGraf = 11000;1112 % H( z ) = z ˆk / ( z ˆk − rˆk )13 % Creo l a t r a n s f e r e n c i a como H( z ) = n/d14 n = zeros (1 , k+1) ;15 n (1 ) = 1 ;16 d = n ;17 d(k + 1) = −(r ˆk ) ;1819 % Obtengo l o s p o l o s y ceros . . .20 [ ceros , polos , ganancia ] = t f 2 zp (n , d) ;2122 % . . . y l o s g r a f i c o .

14Para exportar diagramas de polos y ceros se utiliza otra funcion desarrollada especialmentepara este trabajo practico (graficarcp tp). Su codigo tambien se muestra en el apendice.

19

Page 21: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

23 g r a f i c a r c p t p ( ’ 9 1 . tex ’ , ceros , po lo s ) ;2425 % Respuesta a l impulso .26 % H( z ) = 1 / (1 − zˆ(−k ) rˆk ) = b / a27 a = zeros (1 , k + 1) ;28 a (1 ) = 1 ;29 a (k + 1) = −(r ˆk ) ;30 b = 1 ;3132 % Obtengo l o s primeros 3 s muestreados a f s . . .33 n = zeros (1 , f s ∗ 3) ;34 n (1 ) = 1 ;3536 h = f i l t e r (b , a , n ) ;3738 % . . . g r a f i c o l a primera par te . . .39 n = 1 : ngra f ;40 t = n / f s ;41 g r a f i c a r t p ( ’ 9 2 . tex ’ , t , h , ’ $t [ s ] $ ’ , ’ $h ( t ) $ ’ , ’ b lue ’ ) ;4243 % . . . y obtengo e l e s p e c t r o .44 H = abs ( f f t (h) ) ;45 n = 1 : nGraf ;46 k = n / 3 ;47 g r a f i c a r t p ( ’ 9 3 . tex ’ , k , H, ’ $ f [ Hz ] $ ’ , ’ $ |H( f ) | $ ’ , ’ red ’ ) ;

0,02 0,04 0,06 0,08 0,1 0,12

0

0,5

1

t[s]

h(t)

500 1000 1500 2000 2500 3000 3500

0

5

10

15

f [Hz]

|H(f)|

Figura 12: (arriba) forma de onda de la senal obtenida; (abajo) espectro en fre-cuencias.

20

Page 22: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

4. Sıntesis de sonidos generados por una cuerda

vibrante

El objetivo de esta seccion es crear modelos matematicos que permitan simularsonidos generados por instrumentos musicales. El metodo que usaremos para sin-tetizar consiste en generar sonidos por el filtrado de un sonido base mas complejoy se conoce como sıntesis sustractiva.

4.1. Ejercicio 10

Enunciado: encontrar la funcion de transferencia del sistema de la figura.Graficar el diagrama de polos y ceros. Obtener tres segundos de la respuesta alimpulso para una frecuencia de muestreo de fs = 44100Hz, con una frecuenciafundamental de f0 = 370Hz. Escuchar y graficar la evolucion temporal y elespectro de frecuencias de la salida. ¿Por que no se logra obtener la frecuenciafundamental deseada?

Se muestra en la figura 13 la representacion en diagrama de bloques del sistemade Karplus y Strong, el especificado por el enunciado. Este modelo utiliza unalınea de retardo digital de longitud variable acoplado a un filtro pasa bajos, queinduce resonancias similares a las de una cuerda en vibracion. Este retardo N seestima como round(fs/f0) siendo fs la frecuencia de muestreo y f0 la frecuenciafundamental que se desea obtener.

Figura 13: esquema del algoritmo de Karplus–Strong.

La transferencia de este sistema esta descripta segun:

H(z) =1

1− 12z−N − 1

2z−(N+1)

(5)

y para obtener una frecuencia fundamental de 370 Hz usando una frecuencia demuestreo de 44100 Hz, es necesario fijar al retardo N igual a 119.

Se muestra en la figura 14 el diagrama de ceros y polos de la transferencia conN = 119 y en la figura 15 la forma de onda de la respuesta al impulso junto conel espectro y en el codigo 8 la implementacion del ejercicio.

21

Page 23: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

−1 −0,8 −0,6 −0,4 −0,2 0 0,2 0,4 0,6 0,8 1

−1

−0,8

−0,6

−0,4

−0,2

0

0,2

0,4

0,6

0,8

1

Re(z)

Im(z)

Figura 14: diagrama de polos y ceros de la transferencia de la ecuacion 5 conN = 119.

0,2 0,4 0,6 0,8 1 1,2 1,4 1,6 1,8 2 2,2 2,4 2,6 2,8 3

0

0,2

0,4

t[s]

h(t)

200 400 600 800 1000 1200 1400 1600 1800 2000 2200 2400 2600 2800 3000

0

500

1000

f [Hz]

|H(f)|

Figura 15: (arriba) forma de onda de la respuesta al impulso de la transferenciade la ecuacion 5 con N = 119; (abajo) espectro en frecuencias.

22

Page 24: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

Codigo 8: implementacion del ejercicio 10.1 % E j e r c i c i o 10.2 clear a l l ;3 close a l l ;45 % Defino cons tan tes .6 f s = 44100 ;7 f0 = 370 ;8 N = round( f s / f 0 ) ;9

10 % H( z ) = z ˆ(N+1) / ( z ˆ(N+1) − (1/2) ( z ) − 1/2)11 % Creo l a t r a n s f e r e n c i a como H( z ) = n/d12 n = zeros (1 , N + 2) ;13 n (1 ) = 1 ;14 d = n ;15 d(N + 1) = −1/2;16 d(N + 2) = −1/2;1718 % Obtengo l o s p o l o s y ceros . . .19 [ ceros , polos , ganancia ] = t f 2 zp (n , d) ;2021 % . . . y l o s g r a f i c o .22 g r a f i c a r c p t p ( ’ 10 1 . tex ’ , ceros , po lo s ) ;2324 % Respuesta a l impulso .25 % H( z ) = 1 / (1 − (1/2) zˆ−n − (1/2) zˆ−(n+1)) = b / a26 a = zeros (1 , N + 2) ;27 a (1 ) = 1 ;28 a (N + 1) = −1/2;29 a (N + 2) = −1/2;30 b = 1 ;3132 % Obtengo l o s primeros 3 s muestreados a f s . . .33 n = zeros (1 , f s ∗ 3) ;34 n (1 ) = 1 ;3536 h = f i l t e r (b , a , n ) ;3738 % . . . l o s g r a f i c o . . .39 n = 1:3∗ f s ;40 t = n / f s ;41 g r a f i c a r t p ( ’ 10 2 . tex ’ , t , h , ’ $t [ s ] $ ’ , ’ $h ( t ) $ ’ , ’ b lue ’ ) ;4243 % . . . y g r a f i c o l a primera par te d e l e s p e c t r o .44 H = abs ( f f t (h) ) ;45 n = 1 : 9000 ;46 k = n / 3 ;47 g r a f i c a r t p ( ’ 10 3 . tex ’ , k , H, ’ $ f [ Hz ] $ ’ , ’ $ |H( f ) | $ ’ , ’ red ’ ) ;

4.2. Ejercicio opcional 1

Enunciado: graficar la respuesta en frecuencia del filtro HP(z), f = 370,fs = 44100 para p = 0,5, 0,7, 0,9.

El filtro al que se refiere el enunciado es un peine FIR de orden M que modelala posicion del punteo de una cuerda de una guitarra, y tiene la forma:

y[n] = x[n]− x[n−M ] (6)

estando M definida como

M = round(p · fsf

) (7)

23

Page 25: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

siendo p la posicion relativa del punteo, fs la frecuencia del muestreo y f la fre-cuencia de la nota que se desea emitir.

La funcion de transferencia del sistema resulta

HP (z) = 1− z−M (8)

En el codigo 9 se muestra la implementacion del filtro pedido, en donde se vecomo para obtener la respuesta en frecuencia de lo sistemas se utilizo la funcionfreqz, que recibe como parametros dos vectores que representan los polinomiosdel numerador y denominador respectivamente. En la figura 16 se muestran losresultados obtenidos.15

Codigo 9: implementacion del ejercicio opcional 1.1 % E j e r c i c i o opc iona l 1 .2 clear a l l ;3 close a l l ;45 % Defino cons tan tes .6 p = [ 0 . 5 0 .7 0 . 9 ] ;7 f s = 44100 ;8 f = 370 ;9 cant puntos = 2ˆ18 ;

10 M = round( f s .∗ p / f ) ;11 nom = { ’ o1 1 . tex ’ , ’ o1 2 . tex ’ , ’ o1 3 . tex ’ } ;1213 % HP( z ) = 1 − Zˆ(−M)14 for j = 1 : numel (M) ,15 num = zeros (1 , M( j ) + 1) ;16 num(1) = 1 ;17 num(M( j ) + 1) = −1;18 den = 1 ;19 % Calcu lo r e s p u e s t a en f r e c u e n c i a .20 [ h , f ] = f r e q z (num, den , cant puntos , f s ) ;21 hdB = 20 ∗ log10 (h) ;22 hdB(1) = 0 ;2324 g r a f i c a r t p (nom{ j } , f , hdB , ’ f [ Hz ] ’ , ’Magnitud [dB ] ’ , ’ v i o l e t ’ ) ;25 end

15Como en el caso de los espectros, solo se muestran los modulos de las respuestas en frecuenciay en todos los casos se expresa como ganancia en dB.

24

Page 26: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

0 2000 4000 6000 8000 10000 12000 14000 16000 18000 20000 22000

−60

−40

−20

0

f [Hz]

Magnitud[dB]

0 2000 4000 6000 8000 10000 12000 14000 16000 18000 20000 22000

−50

0

f [Hz]

Magnitud[dB]

0 2000 4000 6000 8000 10000 12000 14000 16000 18000 20000 22000

−60

−40

−20

0

f [Hz]

Magnitud[dB]

Figura 16: respuesta en frecuencia del filtro de la ecuacion 8 para distintos parame-tros p: (arriba) p = 0, 5; (medio) p = 0, 7; (abajo) p = 0, 9.

4.3. Ejercicio opcional 2

Enunciado: encontrar los valores de los parametros N y D para obteneruna nota con una frecuencia fundamental f = 370, con fs = 44100. Graficar larespuesta en frecuencia del filtro HS(z) para dichos valores.

Este ejercicio se basa en el filtro HS(z) que se encarga de afinar una notadeseada, corrigiendo el retardo. Este sistema esta implementado en un filtro FIR

25

Page 27: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

de tercer orden:

HS(z) = −1

6(D − 1)(D − 2)(D − 3) +

1

2D(D − 2)(D − 3)z−1

−1

2D(D − 1)(D − 3)z−2 +

1

6D(D − 1)(D − 2)z−3

(9)

siendo D la fraccion de retardo a corregir. Para un retardo dado por T = fs/f , Dse calcula como D = T − N − NB, fijando N = fix(T ) − 1 y con NB el retardode un filtro que se analizara en secciones posteriores y que aproximamos en estemomento como 0,5.

Bajo las condiciones propuestas por el enunciado, resultaN = 118 yD = 0, 68919;se muestra en la figura 17 la respuesta en frecuencia obtenida por el codigo 10.

0 2000 4000 6000 8000 10000 12000 14000 16000 18000 20000 22000

0

0,5

1

1,5

f [Hz]

Magnitud[dB]

Figura 17: respuesta en frecuencia del filtro HS(z) descripto en la ecuacion 9 paraD = 0, 68919.

Codigo 10: implementacion del ejercicio opcional 2.1 % E j e r c i c i o opc iona l 2 .2 clear a l l ;3 close a l l ;45 % Fijo cons tan tes .6 f = 370 ;7 f s = 44100 ;8 T = f s / f ;9 N = f ix (T) − 1 ;

10 Nb = 1/2 ;11 D = T − N − Nb;12 cant puntos = 2ˆ18 ;1314 % HS( z ) = a0 + a1 zˆ−1 + a2 zˆ−2 + a3 zˆ−315 a0 = (−1/6) ∗ (D − 1) ∗ (D − 2) ∗ (D − 3) ;16 a1 = (1/2) ∗ D ∗ (D − 2) ∗ (D − 3) ;17 a2 = (−1/2) ∗ D ∗ (D − 1) ∗ (D − 3) ;18 a3 = (1/6) ∗ D ∗ (D − 1) ∗ (D − 2) ;1920 num = [ a0 a1 a2 a3 ] ;21 den = 1 ;2223 % Calcu lo l a r e s p u e s t a en f r e c u e n c i a .24 [ h , f ] = f r e q z (num, den , cant puntos , f s ) ;25 hdB = 20 ∗ log10 (h) ;

26

Page 28: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

26 hdB(1) = 0 ;2728 g r a f i c a r t p ( ’ o2 1 . tex ’ , f , hdB , ’ f [ Hz ] ’ , ’Magnitud [dB ] ’ , ’ v i o l e t ’ ) ;

4.4. Ejercicio opcional 3

Enunciado: graficar la respuesta en frecuencia del filtro HB(z) para unafrecuencia de muestreo de fs = 44100.

Este filtro modela el amortiguamiento de los armonicos de la guitarra, mejo-rando su timbre. Su funcion de transferencia es

HB(z) =0, 8995 + 0, 1087z−1

1 + 0, 0136z−1(10)

Se muestra en el codigo 11 el usado para generar los graficos de la figura 18.

0 2000 4000 6000 8000 10000 12000 14000 16000 18000 20000 22000

−2

−1

0

f [Hz]

Magnitud[dB]

Figura 18: respuesta en frecuencia del filtro HB(z).

Podemos ver en el grafico que el filtro atenua las altras frecuencias, por lo tantoes razonable que se utilice para amortiguar los armonicos de una sıntesis.

Codigo 11: implementacion del ejercicio opcional 3.1 % E j e r c i c i o opc iona l 3 .2 clear a l l ;3 close a l l ;45 % Defino cons tan tes .6 f s = 44100 ;7 cant puntos = 2ˆ18 ;89 % HB( z ) = (0.8995 + 0.1087 zˆ−1) / (1 + 1.0136 zˆ−1)

10 num = [0 . 8 995 0 . 1 0 8 7 ] ;11 den = [1 0 . 0 1 3 6 ] ;1213 % Calcu lo l a r e s p u e s t a en f r e c u e n c i a .14 [ h , f ] = f r e q z (num, den , cant puntos , f s ) ;15 hdB = 20 ∗ log10 (h) ;16 hdB(1) = 0 ;1718 g r a f i c a r t p ( ’ o3 1 . tex ’ , f , hdB , ’ f [ Hz ] ’ , ’Magnitud [dB ] ’ , ’ v i o l e t ’ ) ;

27

Page 29: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

4.5. Ejercicio opcional 4

Enunciado: implementar el sistema de la figura. Obtener tres segundos dela respuesta al impulso para una frecuencia de muestreo de fs = 44100Hz yuna frecuencia fundamental de f0 = 370Hz. Escuchar y graficar la evoluciontemporal y el espectro de frecuencias de la salida.

El sistema del que habla el enunciado es el esquema de un modelo del punteode una cuerda de guitarra mas completo, que usa los filtros que se analizaron enlos ejercicios anteriores. En la figura 19 se muestra dicho esquema, en donde laentrada x[n] representa el estımulo al puntear la cuerda. El valor de retardo N secalcula como N = round(fs/f) siendo f la frecuencia fundamental de la nota aemitir.

Figura 19: esquema de un modelo del punteo de una guitarra.

El sistema indicado tiene la siguiente transferencia:

H(z) =HP (z)HS(z)

zN −HS(z)HB(z)(11)

Para obtener una frecuencia fundamental de 370 Hz a una frecuencia de mues-treo de 44100 Hz fue necesario fijar el valor de N a 119. Se usaron el resto delos filtros con los parametros calculados anteriormente, y en el caso del HP seestablecio en 0,5 el parametro p usado para simular la posicion del punteo.

El codigo 12 se uso para implementar el sistema de la ecuacion 11. Se muestraen la figura 20 la forma de onda de la salida y[n] y su espectro.

Codigo 12: implementacion del ejercicio opcional 4.1 % E j e r c i c i o opc iona l 4 .2 clear a l l ;3 close a l l ;45 % Defino cons tan tes .6 f s = 44100 ;7 f = 370 ;8 a0 = 0 . 15691 ;9 a1 = 1 . 0438 ;

10 a2 = −0.2475;11 a3 = 0 .046798 ;12 b0 = 0 . 8995 ;13 b1 = 0 . 1087 ;14 b2 = 0 . 0136 ;15 nGraf = 25000;1617 % Creo l a t r a n s f e r e n c i a .18 num = zeros (1 , 165) ;19 den = num;20 num(121) = a0 ;

28

Page 30: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

21 num(122) = a1 + a0 ∗ b2 ;22 num(123) = a2 + a1 ∗ b2 ;23 num(124) = a3 + a2 ∗ b2 ;24 num(125) = a3 ∗ b2 ;25 num(161) = − a0 ;26 num(162) = − a1 − a0 ∗ b2 ;27 num(163) = − a2 − a1 ∗ b2 ;28 num(164) = − a3 − a2 ∗ b2 ;29 num(165) = − a3 ∗ b2 ;30 den (1 ) = 1 ;31 den (2 ) = b2 ;32 den (121) = − a0 ∗ b0 ;33 den (122) = − a1 ∗ b0 − a0 ∗ b1 ;34 den (123) = − a2 ∗ b0 − a1 ∗ b1 ;35 den (124) = − a3 ∗ b0 − a2 ∗ b1 ;36 den (125) = − a3 ∗ b1 ;3738 % Obtengo l o s primeros 3 s muestreados a f s . . .39 n = zeros (1 , f s ∗ 3) ;40 n (1 ) = 1 ;41 h = f i l t e r (num, den , n) ;4243 % . . . y l o s g r a f i c o .44 n = 1:3∗ f s ;45 t = n / f s ;46 g r a f i c a r t p ( ’ o4 1 . tex ’ , t , h , ’ $t [ s ] $ ’ , ’ $h ( t ) $ ’ , ’ b lue ’ ) ;4748 % Y obtengo l a primera par te d e l e s p e c t r o .49 H = abs ( f f t (h) ) ;50 n = 1 : nGraf ;51 k = n / 3 ;52 g r a f i c a r t p ( ’ o4 2 . tex ’ , k , H, ’ $ f [ Hz ] $ ’ , ’ $ |H( f ) | $ ’ , ’ red ’ ) ;

0,2 0,4 0,6 0,8 1 1,2 1,4 1,6 1,8 2 2,2 2,4 2,6 2,8 3

−0,2

0

0,2

t[s]

h(t)

1000 2000 3000 4000 5000 6000 7000 8000

0

50

100

150

f [Hz]

|H(f)|

Figura 20: salida del sistema de la figura 19 cuya transferencia se describe en laecuacion 11: (arriba) forma de onda; (abajo) espectro en frecuencias.

29

Page 31: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

5. Efectos musicales digitales

Los efectos musicales son dispositivos que permiten alterar el sonido de uninstrumento y son los responsables del sonido de la musica popular moderna.

En esta ultima seccion del trabajo se estudiaron dichos efectos y se implemen-taron usando filtros digitales similares a los que se estudiaron durante el curso.

5.1. Ejercicio opcional 5

Enunciado: obtener dos versiones moduladas en amplitud del sonido alma-cenado en el archivo nota.wav. Utilizar una portadora senoidal de frecueniasfc = 5Hz y fc = 50Hz, y de amplitud α = 0, 5. Compare los resultados conla senal original, en el dominio del tiempo y de las frecuencias. Identificar ymarcar las bandas laterales.

La modulacion en amplitud es un esquema muy simple de efecto musical quesimplemente altera el volumen de la senal original usando otra llamada portadora.Esto se puede representar como un sistema segun

y[n] = (1 + αm[n]) · x[n] (12)

siendo α una constante que controla la intensidad de la modulacion.Hay dos variantes de uso de este efecto y estan relacionadas a la frecuencia de

la senal portadora. El primer caso se da cuando esta no pertenece al rango audible,esto es, para frecuencias inferiores a 20 Hz. Ası, se percibe que el volumen varıalentamente de manera ondulatoria en la senal resultante.

El segundo caso es cuando la frecuencia de la senal portadora es superior a20 Hz, y dado que los cambios de volumen son tan rapidos, el efecto que se oyees el del agregado de color al tono original. Esto se debe a que se crean “bandaslaterales” en el espectro de frecuencias.

Se muestra en el codigo 13 la implementacion del efecto de modulacion enamplitud con portadoras sinusoidales de frecuencias diferentes al archivo de sonidonota.wav.

En la figura 21 se muestra la forma y onda y el espectro de la senal original yen la figura 22 las senales procesadas.

Codigo 13: implementacion del ejercicio opcional 5.1 % E j e r c i c i o opc iona l 5 .2 clear a l l ;3 close a l l ;45 % Leo e l arch ivo de entrada . . .6 [ x , f s ] = wavread( ’ . / son idos /nota . wav ’ ) ;7 % . . . y conservo s o l o un canal .8 x = x ( : , 1 ) ;9

10 % Declaro cons tantes .11 f c = [ 5 , 5 0 ] ;12 a l f a = 0 . 5 ;13 cant puntos = 2ˆ18 ;14 s a l = { ’ o5 1 . tex ’ , ’ o5 2 . tex ’ } ;15 Sa l = { ’ o5 3 . tex ’ , ’ o5 4 . tex ’ } ;16 nomgraf = { ’ $x {1}( t ) $ ’ , ’ $x {2}( t ) $ ’ } ;

30

Page 32: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

17 nomGraf = { ’ $ |X {1}( f ) | $ ’ , ’ $ |X {2}( f ) | $ ’ } ;18 nGraf = 40000;1920 % Proceso l a s e n a l .21 for j = 1 : numel ( f c ) ,22 wc = 2 ∗ pi ∗ f c ( j ) / f s ;23 n = 1 : numel ( x ) ;2425 y = cos (wc ∗ n) ;26 y = 1 + a l f a .∗ y ;27 y = y .∗ x ’ ;2829 % Y g r a f i c o .30 g r a f i c a r t p ( s a l { j } , n / f s , y , ’ $t [ s ] $ ’ , nomgraf{ j } , ’ b lue ’ ) ;3132 Y = abs ( f f t (y , cant puntos ) ) ;33 k = n .∗ f s / cant puntos ;34 g r a f i c a r t p ( Sa l { j } , k ( 1 : nGraf ) , Y, ’ $ f [ Hz ] $ ’ , nomGraf{ j } , ’ red ’ ) ;35 end ;

0,2 0,4 0,6 0,8 1 1,2 1,4 1,6 1,8 2

−0,4

−0,2

0

0,2

0,4

t[seg]

x(t)

1000 2000 3000 4000 5000 6000 7000 8000 9000

−200

0

200

400

f [Hz]

|X(f)|

Figura 21: senal nota.wav. (Arriba) forma de onda; (abajo) espectro en frecuen-cias.

Podemos observar en la figura 22 tanto el efecto en la forma de onda de modularen amplitud con una frecuencia debajo del rango audible como la aparicion en elespectro de bandas laterales debido a que el producto en tiempo se traslada aldominio de frecuencia como una convolucion de espectros:

y(t) = x(t) + αm(t)x(t)⇒ Y (ω) = X(ω) +α

2πM(ω) ∗X(ω)

31

Page 33: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

0,5 1 1,5 2 2,5 3 3,5

−0,4

−0,2

0

0,2

0,4

t[s]

x1(t)

1000 2000 3000 4000 5000 6000 7000 8000

0

200

400

600

800

f [Hz]

|X1(f)|

0,5 1 1,5 2 2,5 3 3,5

−0,5

0

t[s]

x2(t)

1000 2000 3000 4000 5000 6000 7000 8000

0

200

400

600

800

f [Hz]

|X2(f)|

Figura 22: formas de onda y espectros en frecuencia de la senal nota.wav moduladaen amplitud segun la ecuacion 12 con una senal portadora sinusoidal de frecuenciafc. (Arriba) para fc = 5Hz; (abajo) para fc = 50Hz.

32

Page 34: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

5.2. Ejercicio opcional 6

Enunciado: modular en anillo el sonido almacenado en el archivonota.wav. Utilizar una portadora senoidal de frecuencia fc = 440. Compareel resultado con la senal original, en el dominio del tiempo y de las frecuencias.

En esta forma de modulacion se suprime la senal moduladora, reproduciendosolo las bandas laterales. Se puede expresar como:

y[n] = m[n]x[n] (13)

siendo m[n] la senal portadora.Se muestra en el codigo 14 el utilizado para generar la figura 23, en donde se

muestra la senal de entrada modulada en anillo.

0,5 1 1,5 2 2,5 3 3,5

−0,4

−0,2

0

0,2

0,4

t[s]

y(t)

500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500

0

200

400

600

f [Hz]

|Y(f)|

Figura 23: senal nota.wav modulada en anillo segun la ecuacion 13 con una senalportadora sinusoidal de frecuencia fc = 440Hz. (Arriba) forma de onda; (abajo)espectro en frecuencias.

33

Page 35: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

Codigo 14: implementacion del ejercicio opcional 6.1 % E j e r c i c i o opc iona l 6 .2 clear a l l ;3 close a l l ;45 % Leo e l arch ivo de entrada . . .6 [ x , f s ] = wavread( ’ . / son idos /nota . wav ’ ) ;7 % . . . y conservo s o l o un canal .8 x = x ( : , 1 ) ;9

10 % Declaro cons tantes .11 f c = 440 ;12 wc = 2 ∗ pi ∗ f c / f s ;13 cant puntos = 2ˆ18 ;14 nGraf = 35000;1516 % Proceso l a entrada .17 n = 1 : numel ( x ) ;18 y = cos (wc ∗ n) ;19 y = y .∗ x ’ ;2021 % Y g r a f i c o .22 g r a f i c a r t p ( ’ o6 1 . tex ’ , n / f s , y , ’ $t [ s ] $ ’ , ’ $y ( t ) $ ’ , ’ b lue ’ ) ;2324 Y = abs ( f f t (y , cant puntos ) ) ;25 k = n .∗ f s / cant puntos ;26 g r a f i c a r t p ( ’ o6 2 . tex ’ , k ( 1 : nGraf ) , Y, ’ $ f [ Hz ] $ ’ , ’ $ |Y( f ) | $ ’ , ’ red ’ ) ;

5.3. Ejercicio 11

Enunciado: implemente el efecto de distorsion. Pruebe con distintos valoresde saturacion y analice utilizando espectrogramas que sucede con el espectro dela senal de salida.

El efecto de distorsion surgio cuando los primeros amplificadores de guitarrarecibıan senales de amplitud mas grande que las que estaban disenadas para operar,haciendo que las caracterısticas de la entrada cambiaran. Actualmente la distorsionse logra comprimiendo los picos de los sonidos musicales, agregando de esta manerafrecuencias nuevas a los espectros.16

Se puede implementar este efecto cuando se genera una no linealidad al usar,por ejemplo, una funcion arcotangente:

y(t) = atan(S · x(t)) (14)

siendo S el grado de saturacion de la senal.En este ejercicio se simulo el efecto usando la ecuacion 14 y se lo aplico al

archivo nota.wav. Se muestra en el codigo 15 la implementacion realizada y enlas figuras 24 y 25 los espectrogramas de la senal original y luego de aplicarle ladistorsion variando el parametro S.

16Menasche, 2007, p. 80.

34

Page 36: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

Figura 24: espectrograma de la senal nota.wav. (Arriba) senal original; (medio)habiendole aplicado la distorsion de la ecuacion 14 con S = 25; (abajo) con S = 50.

35

Page 37: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

Figura 25: espectrograma de la senal nota.wav habiendole aplicado la distorsionde la ecuacion 6 con S = 100.

Codigo 15: implementacion del ejercicio 11.1 % E j e r c i c i o 11.2 clear a l l ;3 close a l l ;45 % Declaro cons tantes .6 pr in t opc = ’−dpng ’ ;7 tam vent = 2ˆ11 ;89 % Leo e l arch ivo a l que se l e va a a p l i c a r l a d i s t o r s i o n .

10 [ x , f s ] = wavread( ’ . / son idos /nota . wav ’ ) ;11 % Descarto l a informaci on de un canal .12 x = x ( : , 1 ) ;1314 % Imprimo e l espectrograma d e l sonido o r i g i n a l . . .15 o r i g i n a l = figure ;16 specgram (x , tam vent , f s ) ;17 print ( o r i g i n a l , p r int opc , ’ 11 1 . png ’ ) ;1819 % . . . y de l o s d i s t o r s i o n a d o s con t r e s S d i f e r e n t e s .20 S = [25 , 50 , 1 0 0 ] ;21 s a l = { ’ 11 2 . png ’ , ’ 11 3 . png ’ , ’ 11 4 . png ’ } ;2223 for i i = 1 : 3 ,24 y = atan (S( i i ) .∗ x ) ;25 d i s t = figure ;26 specgram (y , tam vent , f s ) ;27 print ( d i s t , p r int opc , s a l { i i }) ;28 end

36

Page 38: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

5.4. Ejercicio 12

Enunciado: implemente mediante un filtro de tiempo discreto el efectodelay. Pruebe con distintos juegos de parametros, por ejemplo, T = 250ms,K = 3, A0 = 1, A1 = 0, 32, A2 = 0, 24 y A3 = 0, 2.

El efecto delay se basa en almacenar temporalmente una senal para ser reprodu-cida una o mas veces con diferentes amplitudes despues de un perıodo de tiempo.Implementar este efecto digitalmente es muy sencillo pues matematicamente sepuede describir como

y(t) =K∑k=0

Akx(t− kT ) (15)

en donde se ve claramente que la senal resultante esta compuesta de copias de laoriginal pero multiplicadas por un factor de escala y desplazada en el tiempo.

Se muestra en el codigo 16 la rutina de Octave que se uso para aplicarle delayal archivo nota.wav; tambien se muestran las senales de entrada y salida, en lafigura 26, para que se pueda apreciar como cambia la forma de onda al aplicarleun delay.

0,2 0,4 0,6 0,8 1 1,2 1,4 1,6 1,8 2

−0,4

−0,2

0

0,2

0,4

t[seg]

x(t)

0,2 0,4 0,6 0,8 1 1,2 1,4 1,6 1,8 2

−0,4

−0,2

0

0,2

0,4

t[seg]

y(t)

Figura 26: resultado de aplicar el efecto de delay al archivo de sonido nota.wav.(Arriba) senal original; (abajo) senal modificada.

37

Page 39: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

Codigo 16: implementacion del ejercicio 12.1 % E j e r c i c i o 12.2 clear a l l ;3 close a l l ;45 % Leo e l arch ivo de entrada . . .6 [ x , f s ] = wavread( ’ . / son idos /nota . wav ’ ) ;7 % . . . y conservo s o l o un canal .8 x = x ( : , 1 ) ;9

10 % Declaro cons tantes .11 T = 250e−3;12 K = 3 ;13 A = [1 0 .32 0 .24 0 . 2 ] ;14 ngra f = 2 ∗ f s ;1516 % Creo un v e c t o r en donde almaceno l a s a l i d a .17 y = zeros (1 , numel ( x ) ) ;1819 for i = 1 : numel (A) ,20 re ta rdo = ( i − 1) ∗ T ∗ f s ;21 % Le a p l i c o e l re tardo .22 h = numel ( x ) − r e ta rdo ;23 z = zeros (1 , r e ta rdo ) ;24 y d = [ z x ( 1 : h) ’ ] ;25 % Y l o sumo a l a s a l i d a atenuandolo .26 y = y + A( i ) .∗ y d ;27 end2829 % Grafico l a s s e n a l e s .30 n = 1 : ngra f ;31 g r a f i c a r t p ( ’ 12 1 . tex ’ , n / f s , x ( 1 : ngra f ) , ’ $t [ seg ] $ ’ , ’ $x ( t ) $ ’ , ’ b lue ’ ) ;32 g r a f i c a r t p ( ’ 12 2 . tex ’ , n / f s , y ( 1 : ngra f ) , ’ $t [ seg ] $ ’ , ’ $y ( t ) $ ’ , ’ b lue ’ ) ;

5.5. Ejercicio 13

Enunciado: aplicar el sonido almacenado en el archivo nota.wav un efectode flanger, con una variacion del retardo de 1 Hz, y retardo maximo de 3 ms.Compare el resultado con la senal original, en el dominio del tiempo y de lasfrecuencias.

El efecto de flanger se basa en la reproduccion simultanea de dos senales: laoriginal junto a una copia a la que se le aplica un retraso de duracion cambiante.

Una aproximacion digital del efecto se puede implementar segun

y[n] = αx[n] + (1− α)x[n− round(|Tmax

Tscos(2πfflangernTs)|)] (16)

con Ts la frecuencia de muestreo, fflanger la frecuencia de variacion del retardo yα una constante tal que 0 < α < 1.

Se muestra en el codigo 17 el usado para aplicar este efecto al sonido almacenadoen nota.wav y en la figura 27 la comparacion entre la entrada y salida.

38

Page 40: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

Codigo 17: implementacion del ejercicio 13.1 % E j e r c i c i o 132 clear a l l ;3 close a l l ;45 % Leo e l arch ivo de entrada . . .6 [ x , f s ] = wavread( ’ . / son idos /nota . wav ’ ) ;7 % . . . y conservo s o l o un canal .8 x = x ( : , 1) ;9

10 % Declaro cons tantes .11 a l f a = 3/4 ;12 beta = 1 − a l f a ;13 Tmax = 3e−3;14 f f l a n g e r = 1 ;15 wf langer = 2 ∗ pi ∗ f f l a n g e r ;16 RT = Tmax ∗ f s ;17 Ts = 1 / f s ;18 ngra f = 2 ∗ f s ;19 nGraf = 35000;2021 % Aplico e l e f e c t o .22 y1 = a l f a .∗ x ;23 y2 = zeros ( numel ( y1 ) , 1) ;24 for n = 1 : numel ( x ) ,25 desp = round(abs (RT ∗ cos ( wf langer ∗ n ∗ Ts) ) ) ;26 i f desp < n27 y2 (n) = x(n − desp ) ;28 end29 end30 y = y1 + beta .∗ y2 ;3132 % Grafico l a s e n a l modif icada . . .33 n = 1 : ngra f ;34 g r a f i c a r t p ( ’ 13 1 . tex ’ , n / f s , y ( 1 : ngra f ) , ’ $t [ seg ] $ ’ , ’ $y ( t ) $ ’ , ’ b lue ’ ) ;3536 % . . . y l o s e s p e c t r o s de ambas .37 Y = f f t ( y ) ;38 X = f f t ( x ) ;39 k = 1 : nGraf ;40 g r a f i c a r t p ( ’ 13 2 . tex ’ , f s .∗ k / numel (Y) , X( 1 : nGraf ) , ’ $ f [ Hz ] $ ’ , ’ $ |X( f ) | $ ’ ,

’ red ’ ) ;41 g r a f i c a r t p ( ’ 13 3 . tex ’ , f s .∗ k / numel (Y) , Y( 1 : nGraf ) , ’ $ f [ Hz ] $ ’ , ’ $ |Y( f ) | $ ’ ,

’ red ’ ) ;

39

Page 41: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

0,2 0,4 0,6 0,8 1 1,2 1,4 1,6 1,8 2

−0,4

−0,2

0

0,2

0,4

t[seg]

x(t)

0,2 0,4 0,6 0,8 1 1,2 1,4 1,6 1,8 2

−0,4

−0,2

0

0,2

t[seg]

y(t)

Figura 27: efecto en la forma de onda de aplicar flanger al sonido del archivonota.wav. (Arriba) senal original; (abajo) senal procesada.

40

Page 42: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

6. Bibliografıa

Kent, Raymond D., Read, Charles, 2001. Acoustic Analysis of Speech, segun-da edicion. Cap. 3: “Introduction to the analysis of speech”.

Menasche, Emile D., 2007. Home Studio Clinic: A musicians guide to pro-fessional recording, primera edicion. Cap. 7: “Effects and signal processors”.

Roederer, Juan G., 2002. Mecanica Elemental, primera edicion. Cap. 7: “Pro-pagacion de ondas”.

Oppenheim, Alan V., Schafer, Ronald W., Buck, John R., 1999. Discrete-time Signal Processing, segunda edicion.

Oppenheim, Alan V., Willsky, Alan S., Nawab, S. Hamid, 1997. Senales ySistemas, segunda edicion.

41

Page 43: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

Apendice: codigo adicional

Se incluyen en este apendice las implementaciones de las funciones usadas paragraficar con la herramienta pgfplots.

../graficar tp.m1 % Funcion a u x i l i a r usada para expor tar g r a f i c o s v e c t o r i a l e s2 % usando l a herramienta p g f p l o t s .3 % Usa e l s c r i p t p r i n t f pg f m od .4 %5 % Recibe :6 % − e l nombre d e l arch ivo de s a l i d a .7 % − e l v e c t o r x a g r a f i c a r .8 % − e l v e c t o r y a g r a f i c a r .9 % − e l nombre d e l e j e x ( puede tener c od igo LaTeX) .

10 % − e l nombre d e l e j e y ( puede tener c od igo LaTeX) .11 % − e l c o l o r d e l g r a f i c o .1213 function g r a f i c a r t p (nom, x , y , nom x , nom y , c o l o r )14 c . f i l ename = nom;15 c . xlabel = nom x ;16 c . ylabel = nom y ;17 c . a x i s g e n e r i c = ’minor t i c k num=1 ’ ;18 c . xmin = x (1) ;19 c . xmax = x( numel ( x ) ) ;20 c . width = ’ 13cm ’ ;21 c . he ight = ’ 6cm ’ ;2223 p . x = x ;24 p . y = y ;25 p . c o l o r = co l o r ;26 p . mark = ’ ’ ;27 p . smooth = 1 ;28 P{1} = p ;2930 printpgf mod ( c , P) ;31 end

../graficarcp tp.m1 % Funcion a u x i l i a r usada para expor tar diagramas de p o l o s2 % y ceros v e c t o r i a l e s usando l a herramienta p g f p l o t s .3 % Usa e l s c r i p t p r i n t f pg f m od .4 %5 % Recibe :6 % − e l nombre d e l arch ivo de s a l i d a .7 % − e l v e c t o r de ceros a g r a f i c a r .8 % − e l v e c t o r de p o l o s a g r a f i c a r .9

10 function g r a f i c a r t p (nom, ceros , po lo s )11 c . f i l ename = nom;12 c . xlabel = ’Re( z ) ’ ;13 c . ylabel = ’Im( z ) ’ ;14 c . a x i s g e n e r i c = ’ ’ ;15 c . width = ’ 13cm ’ ;16 c . he ight = ’ 13cm ’ ;1718 p1 . x = real ( c e r o s ) ;19 p1 . y = imag( c e r o s ) ;20 p1 . c o l o r = ’ blue ’ ;21 p1 . mark = ’ o ’ ;22 p1 . onlymarks = 1 ;2324 p2 . x = real ( po lo s ) ;25 p2 . y = imag( po lo s ) ;26 p2 . c o l o r = ’ red ’ ;27 p2 . mark = ’x ’ ;28 p2 . onlymarks = 1 ;

42

Page 44: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

2930 P{1} = p1 ;31 P{2} = p2 ;3233 printpgf mod ( c , P) ;34 end

../printpgf mod.m1 %% printpg f mod2 %% Basado en l a herramienta p r i n t p g f por Miguel Bazdresch .3 %%4 %% Codi f icado exc lus ivamente para e l uso en e l Trabajo5 %% p r a c t i c o e s p e c i a l de Se na les y Sistemas .67 function printpgf mod ( c , P)89 % Abro arch ivo para e s c r i t u r a .

10 [ f i d msg ] = fopen ( c . f i l ename , ’wt ’ ) ;11 i f f i d == −112 error ( msg ) ;13 end1415 % Neces i ta e l e s t i l o ” s tanda lone ” .16 f d i s p ( f i d , ’ \documentclass { s tanda lone } ’ ) ;17 f d i s p ( f i d , ’ \usepackage { pg f p l o t s } ’ ) ;18 f d i s p ( f i d , ’ \begin {document} ’ ) ;1920 f d i s p ( f i d , ’ \begin { t i k z p i c t u r e } [ ’ ) ;2122 % a x i s .23 f d i s p ( f i d , ’ ]\ begin { ax i s } [ ’ )2425 % Estamos en Argentina , uso comas como separadores dec imales .26 f d i s p ( f i d , ’ / pgf /number format / . cd , ’ ) ;27 f d i s p ( f i d , ’ use comma,1000 sep={} , ’ ) ;2829 % Nombres de e j e s .30 fpr intf ( f i d , ’ x l ab e l={%s } ,\n ’ , c . xlabel ) ;31 fpr intf ( f i d , ’ y l ab e l={%s } ,\n ’ , c . ylabel ) ;3233 % xmin , xmax , ymix , ymax , width , h e i g h t .34 i f i s f i e l d ( c , ’ xmin ’ )35 fpr intf ( f i d , ’ xmin={%f } ,\n ’ , c . xmin ) ;36 end37 i f i s f i e l d ( c , ’xmax ’ )38 fpr intf ( f i d , ’xmax={%f } ,\n ’ , c . xmax ) ;39 end40 i f i s f i e l d ( c , ’ ymin ’ )41 fpr intf ( f i d , ’ ymin={%f } ,\n ’ , c . ymin ) ;42 end43 i f i s f i e l d ( c , ’ymax ’ )44 fpr intf ( f i d , ’ymax={%f } ,\n ’ , c . ymax ) ;45 end46 i f i s f i e l d ( c , ’ width ’ )47 fpr intf ( f i d , ’ width={%s } ,\n ’ , c . width ) ;48 end49 i f i s f i e l d ( c , ’ he ight ’ )50 fpr intf ( f i d , ’ he ight={%s } ,\n ’ , c . he ight ) ;51 end5253 f d i s p ( f i d , ’ g r i d=major , ’ ) ;5455 f d i s p ( f i d , ’ s c a l ed x t i c k s = f a l s e , ’ ) ;56 f d i s p ( f i d , ’ x t i c k l a b e l s t y l e = {/ pgf /number format / f i x ed } , ’ ) ;57 f d i s p ( f i d , ’ s c a l ed y t i c k s = f a l s e , ’ ) ;58 f d i s p ( f i d , ’ y t i c k l a b e l s t y l e = {/ pgf /number format / f i x ed } , ’ ) ;5960 f d i s p ( f i d , ’ minor t i c k num=1, ’ ) ;61

43

Page 45: 66.74 { Senales~ y Sistemas Trabajo pr actico especialweb.fi.uba.ar/~fbarrios/tps/6674/informe.pdfflauta 370.wav y piano 370.wav, respectivamente. Como muestra el c odigo 2, las tres

62 f d i s p ( f i d , ’ ] ’ ) ;6364 for i = 1 : numel (P)65 v = P{ i } ;6667 % Submuestreo s i son muchos l o s puntos a g r a f i c a r .68 i f numel ( v . x ) > 6000 ,69 sub = ce i l ( numel ( v . x ) / 6000) + 7 ;70 v . y = downsample (v . y , sub ) ;71 v . x = downsample (v . x , sub ) ;72 end7374 fpr intf ( f i d , ’ %s ’ , ’ \ addplot [ ’ ) ;7576 % Suavizar .77 i f i s f i e l d (v , ’ smooth ’ ) && v . smooth != 078 fpr intf ( f i d , ’ %s , ’ , ’ smooth ’ ) ;79 end8081 % E s t i l o de l ı n e a .82 i f i s f i e l d (v , ’ s t y l e ’ )83 fpr intf ( f i d , ’ %s , ’ , v . s t y l e ) ;84 end8586 % Color .87 i f i s f i e l d (v , ’ c o l o r ’ )88 fpr intf ( f i d , ’ c o l o r=%s , ’ , v . c o l o r ) ;89 end9091 % Tamano y forma de t i c s .92 i f i s f i e l d (v , ’mark ’ )93 fpr intf ( f i d , ’mark=%s , ’ , v . mark ) ;94 end95 i f i s f i e l d (v , ’ marks ize ’ )96 fpr intf ( f i d , ’mark s i z e=%s , ’ , v . marks ize ) ;97 end9899 % Solo marcas .

100 i f i s f i e l d (v , ’ onlymarks ’ )101 i f v . onlymarks == 1102 fpr intf ( f i d , ’ %s , ’ , ’ only marks ’ ) ;103 end104 end105106 fpr intf ( f i d , ’ %s \n ’ , ’ ] c oo rd ina t e s { ’ ) ;107 for j = 1 : numel ( v . x )108 fpr intf ( f i d , ’ (%1.10 f , %1.10 f ) \n ’ , v . x ( j ) , v . y ( j ) ) ;109 end110 f d i s p ( f i d , ’ } ; ’ ) ;111112 end113 fpr intf ( f i d , ’ \\end{%s } ’ , ’ a x i s ’ ) ;114 f d i s p ( f i d , ’ \end{ t i k z p i c t u r e } ’ ) ;115116 f d i s p ( f i d , ’ \end{document} ’ ) ;117 fc lose ( f i d ) ;118119 % Compilo LaTeX .120 disp (system ( [ ’ pd f l a t ex ’ c . f i l ename ] ) ) ;121122 % Ejecuto e l comando ”mover”123 disp (system ( [ ’ . / mover . sh ’ ] , ’ async ’ ) ) ;124 end

44